2012年11月7日 星期三

IOS - IAP的那些鳥事

為了搞IAP經歷了許多痛苦和鳥事,深深覺得Apple也不是那麼人性化嘛= =

以下是開發IAP的注意事項

1.記得要加入StoreKit.framework (這不是廢話嗎?)

2.在iTunes Connect建立App (就算單純測試也要建立,建立了並不會馬上出現在AppStore),填寫資料時Bundle ID必須跟你的App Bundle ID一樣,最麻煩的是要提供一堆符合規定Size的圖檔,請善用command + shift + 4截圖吧。

3.建立完App之後一樣在iTunes Connect那點進App的詳細設定,右上角有個Manage In App Purchases,在裡面建立IAP的商品。

4.IAP的Product ID可以隨便設,要注意的是這是唯一性的,就算刪除了也無法再重用一樣的Product ID。

5.設定完之後在App頁面那裡點進View Detail,下方有個IAP設定,進去把剛才建立的IAP都加進去吧。(當App進入等待上傳Binary檔的流程時此設定將無法更改,切記!)

6.Xcode Build的時候記得Code Signing要選對,也就是對應App Bundle ID那個,我連Any IOS SDK的Code Signing也改了。(IAP必須用實際測試哦)

7.接下來,只要code沒寫錯Product ID也沒錯的話,但是在撈IAP產品資訊的時候卻頻頻出現invalidProductIdentifiers,你就只能擇日再測了。(沒錯!完全猜不透哪個環節出錯,不斷反覆檢查各個環節都找不出原因,就只能看著這個訊息發呆!但過兩天你甚麼都不用改它就突然可以撈到資料了...)

8.需要注意的還有一點,就在我測試沒問題之後過了幾天我把code移到正式專案時發生了慘劇,它突然又invalidProductIdentifiers了!就這樣又瞎忙了兩天發現問題出現在測試IAP用的Bundle ID跟正式專案是一樣的,而這兩個App居然同時存在於機器上,我天真的以為它會因為Bundle ID一樣而被覆蓋,但顯然它沒有......於是死馬當活馬醫將機器上的這兩個App都刪除重Build正式專案,結果資料又撈出來了= =(如果等個兩天還是invalidProductIdentifiers,請檢查看看機器上有沒有跟你專案一樣Bundle ID的App存在吧!)