2009-06-25 51 views
33

我正在嘗試在沙箱環境中測試應用內購買。iPhone StoreKit - 無效的產品ID

爲了測試代碼中,我做了以下內容:

  1. 在iTunes Connect下的「管理用戶」創建一個應用程序內購買測試用戶帳戶

  2. 創造了一些在應用程序內購買的產品下'管理您的應用內購買'。我爲產品ID使用了數字值和字母數字值。

  3. 加載的應用程序到iPhone,去設置 - >存儲和註銷正規商店,並進入步驟1

  4. 創建的測試帳戶在 (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 回調

    設置斷點

全部上報產品ID是在response.invalidProductIdentifiers財產。 當提交我第一次嘗試步驟2。我也試圖與麪包前綴來時產生的確切產品ID請求dle ID:

NSString *id2 = @"com.super.duper.8"; 
NSSet *productList = [NSSet setWithObjects:id2, @"8", nil]; 

SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:productList]; 

我是否缺少明顯的東西? 任何幫助表示讚賞。

阿希姆

+0

就我而言,以前的銀行賬戶不再有效。 – 2016-12-10 00:48:50

回答

1

這是你要去哪裏錯了,你需要在這個代碼:

NSSet *productList = [NSSet setWithObjects:product id]

你可以從iTunes這款產品ID連接。

而你需要確保你已經創建了一個測試用戶,並簽署了原來的iTunes賬號的。請參閱不要使用測試用戶帳戶登錄,無論蘋果說明文件如何,只需在出現彈出窗口時使用。

3

我們結束了創建一個新的供應配置文件,有一個地方線(不記得在哪裏,沒有在應用程序內購買的文檔的),其指出,必須在供應配置文件應用程序內購買啓用。我們不能用我們現有的配置文件來做到這一點,所以我們創建了一個新的配置文件,然後我們可以啓用它

0

它採用存儲一些時間,使產品提供給所有服務器(見文檔)。因此,在iTunes Connect中創建產品和在設備上測試時將產品ID視爲有效產品時,您可能會遇到延遲。對我來說,花了大約12個小時,直到我的產品出現。

2

爲別人有這些問題,我強烈建議在蘋果論壇閱讀this thread

15

我花了兩天時間用我所有的productsRequest(爲的AppID)掙扎在response.invalidProductIdentifiers列表結束了,而不是在response.products列表。蘋果公司確實在處理他們的商店包裝方面做了F級的工作。它令人困惑,交織和複雜。

我終於解決了它。我在論壇中學到了一個非常重要的經驗教訓,很少有人提到:您可能需要花費很多時間才能在itunesconnect.apple.com上輸入什麼內容才能生效。

有兩部分:xcode中的應用程序名稱和AppID以及您在itunesconnection中輸入的內容,它們必須完全匹配(區分大小寫)。如果您註冊或修改了您的應用程序AppleID(我也完成了我所有的合同和銀行信息,正如某些人所建議的那樣,如果沒有完成此部分,採購行爲將無法正常工作),那麼您最好在再次測試之前上牀睡覺因爲我的情況真的需要幾個小時才能產生效果。在我9歲的孩子拖着我上牀睡覺的故事之前,我非常沮喪地與這個問題作鬥爭,然後驚訝地發現當我醒來時問題消失了。

我發現Eddy71在http://www.iphonedevsdk.com/forum/iphone-sdk-development/21035-problems-creating-test-user-app-purchase.html的建議真的很有幫助。在解決之前,我做了我可能在Eddy的檢查清單中做的所有事情,並且仍然沒有產品,我擔心的一個問題是,如果沒有上傳二進制代碼以完成itunesconnect中的應用程序註冊,那麼可以(不需要按照http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/)。確實沒問題。確保「清空出售」是檢查並且圖標是綠色的(填寫表格後需要額外的步驟批准)。另一個擔心是我能否在調試模式下使用開發者臨時版(暫不分發版),這也確實沒問題。我希望這可以幫助你們中的一些人。祝你好運,有信心。它最終會起作用。

53

如果你仍然得到無效的產品ID,我已經積累所有的各種原因的清單:

http://troybrant.net/blog/2010/01/invalid-product-ids/

+12

令人驚訝的是,從我的設備上刪除應用程序並重新安裝修復了問題。謝謝特洛伊! – 2010-12-12 22:38:02

+1

也適用於我。謝謝你的詳細清單,特洛伊! – taber 2011-02-28 06:17:13

+0

這也適用於我。這是不會發生在iap生活正確的時候?它目前在沙盒中。 – marchinram 2011-11-19 01:36:58

0

別人的注意事項:不使用的NSMutableSet的產品ID 。它必須是NSSet!

2

我嘗試了蘋果論壇和這裏提出的所有建議,但仍然無法實現。找到解決方案 - 您的應用程序需要通過Xcode傳輸才能啓用沙箱。

很明顯,對嗎?那麼,如果您正在使用現有應用程序的更新,則該設備仍會將其視爲已安裝App Store的應用程序。

因此,從您的設備上刪除應用程序。然後使用Build &將應用程序安裝回設備上使用連接到Mac的設備運行。它應該現在工作:)

1

我的另一個問題是,我必須去Xcode中的Window> Organizer,並刪除我的應用程序和配置文件(s),並重新添加我的開發配置文件。我重新啓動設備和Xcode作爲額外的措施。

0

如果你想保留你的應用程序數據,但你想嘗試刪除你的應用程序來解決這個問題,首先同步你的設備。然後刪除你的應用程序並從Xcode重新安裝 - 這解決了我的問題。一旦它正常工作,您可以從備份中恢復設備 - 這隻需要幾分鐘的時間,並且恢復後產品請求仍然有效。

3

嘗試重置iPhone設置,並從iPhone刪除應用程序,並直接使用要求的產品ID,而不捆綁ID

1

我都想盡解決方案,它在互聯網上可用的,並沒有什麼工作,絕對沒有。我的問題:我的設備已經越獄,並有Cydia。我將設備恢復爲出廠默認設置(未越獄),並且它第一次運行並返回了產品ID沒有問題。

0

不完全確定爲什麼,但是當我將請求的產品ID從'com.mycompany.myapp.product'更改爲'product'時,它開始工作。也許這是因爲我在iTunes Connect中配置了產品。

試試看,可能適用於一些你...

7

我們的問題是,從蘋果公司的常見問題,「Why are my product identifiers being returned in the invalidProductIdentifiers array?」最後一顆子彈點:

  • 你沒有完成所有的金融要求(請參閱本文檔的「合同,稅收和銀行信息」部分)。
  • 您沒有使用明確的應用程序ID。
  • 您沒有使用與您的顯式應用ID關聯的配置文件。
  • 您的代碼中沒有使用正確的產品標識符。有關產品標識符的更多信息,請參見技術問答Q & A,QA1329「應用內購買產品標識符」。
  • 您並未清除iTunes Connect中待售的In App Purchase產品。
  • 您可能已經修改了您的產品,但這些更改尚未提供給所有App Store服務器。
  • 如果您或App Review在iTunes Connect中拒絕了您最近的二進制文件。

我點擊「準備上傳二進制」在iTunes Connect改變了最新版本(已被拒絕),以「等待上傳」,問題得到了大約10分鐘後得到解決。

5

沒關係,手機是越獄,你只需要卸載的AppSync在Cydia,然後它

0

取代:

NSSet *productList = [NSSet setWithObjects:id2, @"8", nil]; 

有:

NSSet *productList = [NSSet setWithObjects:@"8", nil]; 
0

,可能是另一個問題。如果您的xCode項目的名稱不是用英文書寫的,或者其中包含其他字符,那麼捆綁ID的名稱應該是「------」。我認爲這只是一個捆綁id的約定,在xCode中有這個約定。原來,這是我的問題,所以命名您的xCode項目英語)我知道這是不是最多的情況下,但無論如何)

0

我試過每個人都在談論。我最終首先創建了一個訪客帳戶,以查看是否可以找到產品ID ....是的。於是我開始退出活動監視器中的所有內容並發現問題。我不得不退出下面的「商店」流程。突然之間,我停止收到無效的產品ID。希望能幫助那裏的人。

Quit these if you're getting the invalid product id null error

1

對我來說,問題是,我選擇了「打開的內容託管」成立了應用程序內購買的時候。所以我不得不關掉它,問題就解決了。

1

在我的情況下,我沒有完成銀行信息,稅務信息和聯繫信息。一旦完成此操作,我可以獲得我的產品ID,希望這可以幫助某人。