iOS內購實現及測試Check List
免費+在應用程式內購買的模式已經被證明了是最有效盈利模式,所以實現內購功能可能是很多開發人員必做的工作和必備的技能了。但是鑒於內購這塊坑不算少, 另外因為sandbox測試所需要特定的配置也很多,所以對於經驗不太多的開發人員來說很容易就遇到各種問題,並且測試時出錯Apple給出的也只有 “Can not connect iTunes Store”或者"Invalid Product IDs"之類毫無價值的錯誤提示,並沒有詳細的錯誤說明,因此調試起來往往沒有方向。有老前輩在這裡整理過一個相對完整的check list了,但是因為年代已經稍微久遠,所以內容上和現在的情況已經有一些出入。趁著在最近兩個項目裡做內購這塊遇到的新問題,順便在此基礎上總結整理了一份比較新的中文Check list,希望能幫到後來人。
如果您在實現和測試iOS應用內購的時候遇到問題,可以逐一對照下面所列出的條目,並逐一進行檢查。相信可以排除大部分的錯誤。如果您遇到的問題不在這個列表範圍內,歡迎在評論中指出,我會進行更新。
- 您是否在iOS Dev Center中開啟了對應應用AppID的
In-App Purchases功能?登陸 iOS Dev Center的Certificates, Identifiers & Profiles下,在Identifiers中找到正在開發的App,In-App Purchase一項應當顯示Enabled如果使用Xcode5,可以直接在Xcode的Capabilities頁面中開啟In-App Purchases)。
- 您是否在iTunes Connect中註冊了您的IAP項目,並將其設為Cleared for Sale?
- 您的plist中的
Bundle identifier的內容是否和您的AppID一致?
- 您是否正確填寫了VersionCFBundleVersion)和BuildCFBuildNumber)兩個數字?兩者缺一不可。
- 您用代碼向Apple申請售賣物品列表時是否使用了完整的在iTC註冊的Product ID?使用在IAP管理中內購項目的Product ID一欄中的字串)
- 您是否在開啟IAP以後重建過包含IAP許可的provisioning profile?
- 你是否重新匯入了新的包含IAP的provisioning profile?建議在Organizer中先刪掉原來裝置上的老的provisioning profile。
- 您是否在用包含IAP的provisioning profile在部署測試程式?在Xcode5中,建議使用General中的Team選項來自動管理。
- 您是否是在模擬器中測試IAP?雖然理論上說模擬器在某些情況下可以測試IAP,但是條件很多也不讓人安心,因此您確實需要一台真機來做IAP測試。
- 您是在企業版發布中測試IAP嗎?因為企業版沒有iTC進行內購專案管理,也無法發布AppStore應用,所以您在企業版的build中不能使用IAP。
- 您是否將裝置上原來的app刪除了,並重新進行了安裝?記得在安裝前做一下Clean和Clean Build Folder。
- 您是否在運行應用前將裝置上實際的Apple ID登出了?建議在設定->iTunes Store和App Stroe中將使用中的Apple ID登出,以未登入狀態進入應用進行測試。
- 你是否使用的是Test User?如果你還沒有建立Test User,你需要到iTC中建立。
- 您使用的測試帳號是否是美國區帳號?雖然不是一定需要,但是鑒於其他地區的測試帳號經常抽風,加上美國區帳號一直很穩定,因此強烈建議使用美國區 帳號。正常情況下IAP不需要進行信用卡綁定和其他資訊填寫,如果你遇到了這種情況,可以試試刪除這個測試帳號再建立一個其他地區的。
- 您是否有建立賬戶進行測試?可能的話,可以使用建立測試賬戶試試看,因為某些特定情況下測試賬戶會被Apple鎖定。
- 您的應用是否是被拒狀態Rejected)或自己拒絕Developer Rejected)了?被拒絕狀態的應用的話對應還未通過的內購項目也會一起被拒,因此您需要重新將IAP項目設為Cleared for Sale。
- 您的應用是否處於等待開發人員發布Pending Developer Release)狀態?等待發布狀態的IAP是無法測試的。
- 您的內購項目是否是最近才建立的,或者進行了更改?內購項目需要一段時間才能反應到所有伺服器上,這個過程一般是一兩小時,也可能再長一些達到若干小時。
- 您在iTC中Contracts, Tax, and Banking Information項目中是否有還沒有設定或者到期了的項目?不完整的財務資訊無法進行內購測試。
- 您是在越獄裝置上進行內購測試嗎?越獄裝置不能用於正常內購,您需要重裝或者尋找一台沒有越獄的裝置。
- 您是否能正常串連到Apple的伺服器,你可以訪問Apple開發人員論壇關於IAP的板塊,如果蘋果伺服器正down掉,那裡應該有熱烈的討論。
原文:http://onevcat.com/2013/11/ios-iap-checklist/