0
我有三個應用程序的應用程序購買。一年多以來,第一個工作正常。我有這個例程:在應用程序購買崩潰偶爾
-(void)purchaseProUpgrade{
SKPayment *payment = [SKPayment paymentWithProductIdentifier: inAppProductId];
if ([SKPaymentQueue canMakePayments]) [[SKPaymentQueue defaultQueue] addPayment:payment];
else [self purchaseFailedWithError:nil];
}
但paymentWithProductIdentifier已折舊。因此,在接下來的兩個應用程序我把它改爲(代碼的其餘部分是相同的):
-(void)purchaseProUpgrade{
SKPayment *payment =[SKPayment paymentWithProduct: self.upgradeProduct];
if ([SKPaymentQueue canMakePayments]) [[SKPaymentQueue defaultQueue] addPayment:payment];
else [self purchaseFailedWithError:nil];
}
其中「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.
這正常在沙箱中,即使設置我試圖通過跳轉到購買視圖,取消購買等來挑動它。如果我從應用商店購買我的應用,它會起作用。由於有銷售登記,我似乎也爲大多數用戶工作。
但是,我幾乎每天都收到崩潰報告,說[[SKPaymentQueue defaultQueue] addPayment:payment]已經與'無效的產品標識符:(null)'一起墜毀。在某些情況下,似乎人們已經崩潰,立即重新啓動應用程序,並試圖再次購買和崩潰。
任何輸入表示讚賞。
感謝。但是,它基本上與我正在使用的代碼相同。 – Sten 2013-04-30 09:31:18