IAP 코인 구매 앱이 있습니다. 최근 몇 명의 사용자로부터 동전을 구입할 수 없다는 메일을 받았습니다. 세션 로그를보고 실패한 IAP 이벤트를 보았습니다. 실패한 이유는 기록되지 않았습니다. 여기에 관련 코드입니다 : logFailIAP 내부SKPaymentTransactionStateFailed, NSError 없음
- (void)_purchaseRequestFailed:(SKPaymentTransaction *)transaction state:(StoreTransactionState)state error:(NSError *)error
{
IAPProduct *product = [self getProductWithId:transaction.payment.productIdentifier];
if (error.code==SKErrorPaymentCancelled) {
[_metricsManager logFailIAP:product failReason:@"Payment canceled"];
} else {
[_metricsManager logFailIAP:product failReason:error.localizedDescription];
}
if ([_delegate respondsToSelector:@selector(didSucceedPurchasingProduct:)]) {
[_delegate didFailPurchasingProduct:product];
}
}
, 내가 시간 같은 것들을 기록, UDID, 이벤트 이름 및 error.localizedDescription.
if (failReason != nil && failReason.length > 0) {
[metricsDictionary setObject:failReason forKey:MetricsEventParameterFailReason];
}
로그에 IAP 실패 이벤트가 표시되지만 실패한 기록 된 이유가 없습니다. 어떤 경우에 "SKPaymentTransactionStateFailed"가 표시되지만 빈 error.localizedDescription이 있습니까? 로그가 작동하고 "결제 취소됨", "다른 사람의 기기에 로그인 중입니다", "iTunes에 연결할 수 없습니다"와 같은 오류를 확인했습니다. 이 문제는 기기 나 iOS에만 국한되지 않습니다.
paymentQueue : updatedTransactions : method는 어떻게 보이나요? 특히 트랜잭션 배열을 어떻게 트래버스합니까? – neoneye