background image

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 一致?

  您是否正确填写了

Version(CFBundleVersion)和 Build(CFBuildNumber)两个数字?两者缺

一不可。
  您用代码向

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 中创建。

  您使用的测试账号是否是美国区账号

?虽然不是一定需要,但是鉴于其他地区的测试账