2016-10-03 60 views
0

我們公司正在收到很多關於應用內購買和應用內購買恢復無法做任何事情的報告。大多數報告都提到,購買完成時或點擊恢復按鈕時,應用程序內不會發生任何操作。應用內購買報告不起作用

我們所有的沙箱和實時應用測試都顯示IAP功能完美無缺。此外,絕大多數我們的用戶報告該功能沒有問題。儘管如此,大量用戶報告問題仍然很奇怪。

我們最近不得不從頭開始重建我們的.xcodeproj文件,失去了先前的副本,但所有其他文件保持不變。這可能會導致問題嗎?

根據我們的報告提供的調試信息,該問題似乎影響幾乎所有設備和每個iOS版本。唯一的共同點是它會影響我們重建Xcode項目文件後產生的應用程序版本。

這是更高層次的問題,看看其他人是否面臨或面臨此問題。正因爲如此,並且代碼看起來工作正常,所以沒有提供任何代碼,但請讓我知道特定的代碼示例是否有用。

根據註釋下面,這裏是與恢復過程中的一些相關的代碼:

- (void)restoreCompletedTransactions { 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
} 

- (void)restoreTransaction:(SKPaymentTransaction *)transaction { 
    NSString *product_identifier = transaction.originalTransaction.payment.productIdentifier; 
    if(product_identifier == nil) 
     product_identifier = @"PRODUCT_IDENTIFIER"; 
    [self provideContentForProductIdentifier:product_identifier]; 
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
} 
+0

應用內購買代碼應該可以工作,並且iOS 9.0的應用恢復部分發生了變化。你可以張貼一些資料來源,你如何稱呼你的購買和恢復方法? –

+0

@ jamshed-我在上面添加了代碼。但是,在沙箱和實時測試期間,代碼的運行沒有任何錯誤,而且使用7-10版本的每個iOS版本的人員都會報告此問題。 –

+0

好的。看到答案。希望它能幫助你。我最近爲我的客戶做了這件事。 –

回答

0

有在App購買從的iOS 9.0恢復的問題。 使用這一堆代碼進行恢復。

- (void)restoreCompletedTransactions { 
    [[SKPaymentQueue defaultQueue] addTransactionObserver:[yourclass sharedHelper]]; // Yourclass can be self, or can be where did you initialise your helper. 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
} 
+0

我真的很感激,我會盡快試用。這可能需要一段時間才能報告是否有效,因爲我需要推出更新並等待用戶反饋。 –

+0

好的。做一個沙箱測試。如果你獲得成功,它應該是適合現場應用程序。讓我知道你已經成功完成了。 –

+0

問題的一部分是它在沙盒模式和實時測試中都已經正常工作。它對絕大多數用戶來說也很好。只有一個看似沒有共同線索的小細分市場正在經歷問題。 –