세 가지 앱에서 앱을 구매했습니다. 첫 번째 작품은 1 년 넘게 정상적으로 작동합니다. 이 루틴을 가지고 :가끔씩 앱 구매시 충돌이 발생합니다.
-(void)purchaseProUpgrade{
SKPayment *payment = [SKPayment paymentWithProductIdentifier: inAppProductId];
if ([SKPaymentQueue canMakePayments]) [[SKPaymentQueue defaultQueue] addPayment:payment];
else [self purchaseFailedWithError:nil];
}
하지만 paymentWithProductIdentifier가 상각되었습니다. 그래서 다음 두 개의 응용 프로그램에서 나는 (나머지 코드가 동일)이 변경 :
"upgradeProduct는"- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
NSArray *products = response.products;
if([products count]>0) self.upgradeProduct = products[0];
// the user is warned if upgradeProduct not is set
}
// upgradeProduct is declared as Strong and I am using ARC.
이 경우에도 샌드 박스에 잘 작동에 의해 설정된다
-(void)purchaseProUpgrade{
SKPayment *payment =[SKPayment paymentWithProduct: self.upgradeProduct];
if ([SKPaymentQueue canMakePayments]) [[SKPaymentQueue defaultQueue] addPayment:payment];
else [self purchaseFailedWithError:nil];
}
내가 구매 점보기로 앞뒤로 점프하여 그것을 자극하려고, 구매 등을 취소합니다. 만약 내가 애플 리케이션 스토어에서 내 애플 리케이션을 구입하면 작동합니다. 나는 또한 판매 등록이 있기 때문에 사용자의 대다수를 위해 일하는 것처럼 보인다.
그러나 [SKPaymentQueue defaultQueue] addPayment : payment]에 '잘못된 제품 식별자 : (null)'이 (가) 충돌했다는보고가 거의 매일 발생합니다. 사람들이 추락하여 한 번에 앱을 다시 시작한 후 다시 구매하려고 시도하고 추락 한 것으로 보이는 경우도 있습니다.
모든 의견을 환영합니다. Github에서의 샘플이
감사를 찾아 보게한다. 그러나, 그것은 본질적으로 제가 사용하고있는 코드와 같습니다. – Sten