2012-02-06 162 views
0

我使用本教程http://www.raywenderlich.com/2797/introduction-to-in-app-purchases在我的應用程序中創建購買。在應用程序購買不工作

此代碼不時工作或不工作。我知道這聽起來很有趣,但這是我的問題。

例如:首先啓動的應用程序(所有項目下載並表顯示,我有可以購買任何的這一點),但在接下來的時間(例如秒開始),我得到一個錯誤在這條線:

SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 

該錯誤是

終止應用程序由於未捕獲的異常 'NSRangeException' 索引0超出界限爲空數組

+1

哪個代碼?哪個錯誤? – 2012-02-06 10:33:54

+1

除了Vince的評論:請提供更多關於錯誤發生的更多信息,並且描述您迄今爲止所嘗試的內容,因此沒有人會浪費自己的時間在您已經嘗試過的方面。 – 2012-02-06 10:38:15

+0

「未購買:com.company.sb.pack5」中的消息(但此消息會不時顯示) – 2012-02-06 10:49:02

回答

0

我的設備硬重置後解決此問題。

+0

「爲我的設備硬重置後」是什麼意思?設置 - >重置 - >重置所有設置? – Jacky 2013-07-21 11:26:28

1

使用此代碼,當您使用的付款方式.....像付款按鈕按下

NSLog(@"Products - %@",[IAPClockDietHelper sharedHelper].products); 

你發現,當你啓動應用程序第一次然後,您對我們的產品閥門......而當你使用應用程序第二次然後產品有NULL值....所以,你的應用程序崩潰了... ..檢查

+0

NSLog(@「Products - %@」,[IAPClockDietHelper sharedHelper] .products);現在 - 對於這個日誌我沒有在NSArray產品中獲得任何項目。但爲什麼這不總是崩潰? – 2012-02-06 10:57:42

+0

在某一時刻,我獲得了我的物品的全部陣列,並且在下一次我的產品陣列中沒有任何元素。 – 2012-02-06 10:59:19

+0

看到這個網址http://stackoverflow.com/questions/3324596/storekit-skroductsrequest-crash – Deepesh 2012-02-06 10:59:30

2

如果你想避免這種崩潰的只是把一個條件加工產品如在此之前:

if ([[InAppRageIAPHelper sharedHelper].products count] >0) 
{ 
    SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 
    //product processing goes here 
} 
else 
{ 
    NSLog (@"Warning: no products returned"); 
} 
+0

你好!是的,這是正確的檢查,但爲什麼我沒有產品後調用方法 - (void)productsRequest:(SKProductsRequest *)請求didReceiveResponse:(SKProductsResponse *)響應? – 2012-02-06 15:21:49

+0

這很難說沒有更多的背景。也許如果你發佈委託方法的代碼和創建請求的方法。在做之前一定要確保所有產品標識符都不可讀 - 用FFFFFF或其他東西覆蓋它們。另外請務必檢查本指南,它不應超過15分鐘:https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/StoreKitGuide/StoreKitGuide.pdf – 2012-02-07 09:07:56

+0

謝謝大家。是的,我的問題很常見。ray wenderlich的教程通常工作得很好(而且它也很棒,但時間久了)。我認爲這是我的錯誤。感謝您的參考! – 2012-02-07 10:18:56