当前位置: 首页 > 科技观察

iOS内购实现与测试CheckList

时间:2023-03-13 20:07:01 科技观察

免费+内购模式已被证明是最有效的盈利模式,因此实现内购功能可能是必做的工作,也是一个必备技能许多开发商。但是鉴于内购是个不小的坑,而且因为沙盒测试需要很多具体的配置,经验不多的开发者很容易遇到各种问题,苹果在测试的时候就报错了。只有“无法连接iTunesStore”或“InvalidProductIDs”等毫无价值的错误提示,没有详细的错误描述,调试往往没有方向。这里有前辈整理了一份比较完整的检查表,但是因为年龄大了一些,内容和现状有些出入。趁着最近两个项目内购遇到的新问题,顺便在此基础上总结了一个比较新的中文Checklist,希望对后人有所帮助。如果您在实施和测试iOSIAP时遇到问题,您可以逐一查看下面列出的项目。相信可以排除大部分错误。如果您遇到的问题不在此列表中,请随时在评论中指出,我会进行更新。是否在iOSDevCenter中开启了对应AppID的In-AppPurchases功能?登录iOSDevCenterCertificates,Identifiers&Profiles下,在Identifiers中找到正在开发的app,In-AppPurchase项应该显示Enabled(如果你使用Xcode5,可以直接在Capabilities页面打开In-AppPurchasesX代码)。您是否在iTunesConnect中注册了您的IAP项目并将其设置为已清算待售?你的plist中的Bundleidentifier和你的AppID一致吗?Version(CFBundleVersion)和Build(CFBuildNumber)这两个数字你填对了吗?两者缺一不可。您使用代码向Apple申请销售商品清单时是否使用了在iTC注册的完整ProductID?(使用IAP管理中内购项目ProductID栏的字符串)打开IAP后是否重新生成了provisioningprofile包括IAPlicense?您是否重新导入了包含IAP的新配置文件?建议在管理器中删除原始设备上的旧配置文件。您是否正在使用包含IAP的配置文件部署测试程序?在Xcode5中,推荐使用General中的Team选项进行自动管理。你在模拟器中测试IAP吗?虽然理论上模拟器在某些情况下可以测试IAP,但是有很多情况并不让人放心,所以你确实需要一台真机来进行IAP测试。您是否在企业版本中测试IAP?因为企业版没有内购项目管理的iTC,无法发布AppStore应用,所以在企业版构建中不能使用IAP。您是否删除了设备上的原始应用程序并重新安装?请记住在安装前执行Clean和CleanBuildFolder。在运行应用程序之前,您是否在设备上注销了实际的AppleID?建议在设置->iTunesStore和AppStore注销正在使用的AppleID,不登录进入应用进行测试。您在使用测试用户吗?如果您还没有创建测试用户,您需要在iTC中创建它。您使用的测试账户是美国账户吗?虽然不是绝对必要,但鉴于其他地区的测试账户经常抽动,强烈建议使用美国账户,而美国账户始终稳定。一般情况下,IAP不需要绑定信用卡和填写其他信息。如果遇到这种情况,可以尝试删除这个测试账号,在其他地区新建一个。你有一个新的测试帐户吗?如果可以,您可以尝试使用新的测试账号,因为测试账号在某些情况下会被苹果锁定。你的申请是被拒绝(Rejected)还是被自己拒绝(DeveloperRejected)?处于rejected状态的app对于尚未通过的内购商品也会被reject,所以需要将IAPitem重置为ClearedforSale。您的应用程序是否处于待开发者发布状态?无法测试处于待发布状态的IAP。您的应用内购买是最近创建或更改的吗?内购商品需要一段时间才能反映到所有服务器上。这个过程通常需要一两个小时,也可能需要几个小时。您在iTC的Contracts,Tax,andBankingInformation项目中是否有任何未设置或过期的项目?不完整的财务信息不能用于应用内购买测试。您是否在越狱设备上测试应用内购买?越狱设备不能用于正常的应用内购买,您需要重新安装或寻找非越狱设备。能否正常连接到苹果的服务器,可以访问苹果开发者论坛的IAP版块。如果Apple的服务器宕机,那里应该会有热烈的讨论。原文:http://onevcat.com/2013/11/ios-iap-checklist/