转自onevcat的博客
免费+应用内购买的模式已经被证明了是最有效的盈利模式,所以实现内购功能可能是很多开发者必做的工作和必备的技能了。但是鉴于内购这块坑不算少,另外因为sandbox测试所需要特定的配置也很多,所以对于经验不太多的开发者来说很容易就遇到各种问题,并且测试时出错Apple给出的也只有“Can not connect iTunes Store”或者”Invalid Product IDs”之类毫无价值的错误提示,并没有详细的错误说明,因此调试起来往往没有方向。有老前辈在这里整理过一个相对完整的check list了,但是因为年代已经稍微久远,所以内容上和现在的情况已经有一些出入。趁着在最近两个项目里做内购这块遇到的新问题,顺便在此基础上总结整理了一份比较新的中文Check list,希望能帮到后来人。
如果您在实现和测试iOS应用内购的时候遇到问题,可以逐一对照下面所列出的条目,并逐一进行检查。相信可以排除大部分的错误。如果您遇到的问题不在这个列表范围内,欢迎在评论中指出,我会进行更新。
1.您是否在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)。
2.您是否在iTunes Connect中注册了您的IAP项目,并将其设为Cleared for Sale?
3.您的plist中的Bundle identifier的内容是否和您的AppID一致?
4.您是否正确填写了Version(CFBundleVersion)和Build(CFBuildNumber)两个数字?两者缺一不可。
5.您用代码向Apple申请售卖物品列表时是否使用了完整的在iTC注册的Product ID?(使用在IAP管理中内购项目的Product ID一栏中的字符串)
6.您是否在打开IAP以后重新生成过包含IAP许可的provisioning profile?
7.您是否重新导入了新的包含IAP的provisioning profile?建议在Organizer中先删掉原来设备上的老的provisioning profile。
8.您是否在用包含IAP的provisioning profile在部署测试程序?在Xcode5中,建议使用General中的Team选项来自动管理。
9.您是否是在模拟器中测试IAP?虽然理论上说模拟器在某些情况下可以测试IAP,但是条件很多也不让人安心,因此您确实需要一台真机来做IAP测试。
10.您是在企业版发布中测试IAP么?因为企业版没有iTC进行内购项目管理,也无法发布AppStore应用,所以您在企业版的build中不能使用IAP。
11.您是否将设备上原来的app删除了,并重新进行了安装?记得在安装前做一下Clean和Clean Build Folder。
12.您是否在运行应用前将设备上实际的Apple ID登出了?建议在设置->iTunes Store和App Stroe中将使用中的Apple ID登出,以未登录状态进入应用进行测试。
13.您是否使用的是Test User?如果你还没有创建Test User,你需要到iTC中创建。
14.您使用的测试账号是否是美国区账号?虽然不是一定需要,但是鉴于其他地区的测试账号经常抽风,加上美国区账号一直很稳定,因此强烈建议使用美国区账号。正常情况下IAP不需要进行信用卡绑定和其他信息填写,如果你遇到了这种情况,可以试试删除这个测试账号再新建一个其他地区的。
15.您是否有新建账户进行测试?可能的话,可以使用新建测试账户试试看,因为某些特定情况下测试账户会被Apple锁定。
16.您的应用是否是被拒状态(Rejected)或自己拒绝(Developer Rejected)了?被拒绝状态的应用的话对应还未通过的内购项目也会一起被拒,因此您需要重新将IAP项目设为Cleared for Sale。
17.您的应用是否处于等待开发者发布(Pending Developer Release)状态?等待发布状态的IAP是无法测试的。
18.您的内购项目是否是最近才新建的,或者进行了更改?内购项目需要一段时间才能反应到所有服务器上,这个过程一般是一两小时,也可能再长一些达到若干小时。
19.您在iTC中Contracts, Tax, and Banking Information项目中是否有还没有设置或者过期了的项目?不完整的财务信息无法进行内购测试。
20.您是在越狱设备上进行内购测试么?越狱设备不能用于正常内购,您需要重装或者寻找一台没有越狱的设备。
21.您是否能正常连接到Apple的服务器,你可以访问Apple开发者论坛关于IAP的板块,如果苹果服务器正down掉,那里应该有热烈的讨论。
如果您正在寻找一份手把手教你实现IAP的教程的话,这篇文章不是您的菜。关于IAP的实现和步骤,可以参考下面的教程:
苹果官方IAP指南和相应的Technical Note
Ray Wenderlich的iOS 6 IAP教程
一篇图文并茂的中文教程
直接使用大神们封好的Store有关的库,比如mattt/CargoBay,robotmedia/RMStore或者MugunthKumar/MKStoreKit。推荐前两个,因为MKStoreKit有一些恼人的小bug。

iOS内购实现及测试排查错误列表相关推荐

  1. IOS内购自动续费订阅测试

    一.IOS 内购类型 1.消耗型商品: 只可使用一次的产品,使用之后即失效,必须再次购买. 示例:抽奖券. 2.非消耗型商品: 只需购买一次,不会过期或随着使用而减少的产品. 示例:游戏 App 的赛 ...

  2. iOS内购-防越狱破解刷单

    ---------------------------2018.10.16更新--------------------------- 最近我们公司丢单率上涨,尤其是10月份比9月份来说丢单率翻了3倍, ...

  3. IOS内购验证 (Java版)

    此处给各位贴出apple官方文档 App 内购买项目配置流程 apple 收据文档 apple 收据responseBody字段释义 IOS内购逻辑图 IOS内购验证相关代码 package xxxx ...

  4. 记一次ios内购开发中踩的坑

    记一次ios内购开发中踩的坑 前段时间好不容易把APP中的非续期内购上架成功了,过程也是一波三折,各种问题,但最终还是内购审核通过了 通过后我以为就没问题了,但第二天打开xcode运行应用后,准备验证 ...

  5. iOS 内购(In-App Purchase)详解

    iOS 内购(In-App Purchase)详解 概述 IAP 全称:In-App Purchase,是指苹果 App Store 的应用内购买,是苹果为 App 内购买虚拟商品或服务提供的一套交易 ...

  6. IOS 内购IAP 自动订阅收据验证文档服务端翻译

    将收据数据发送到App Store: 提交此JSON对象作为HTTP POST请求的有效负载. 中文文档:https://help.apple.com/app-store-connect/#/dev7 ...

  7. iOS内购(IAP)自动续订订阅

    一.介绍 iOS 的 App 内购类型有四种: 消耗型商品:只可使用一次的产品,使用之后即失效,必须再次购买. 示例:钓鱼 App 中的鱼食. 非消耗型商品:只需购买一次,不会过期或随着使用而减少的产 ...

  8. java集成ios内购\与ios退款通知处理

    使用ios内购,需在项目数据库建立虚拟币相关表(虚拟币余额表.充值面额表.充值订单表等)上代码 苹果IAP内购验证工具类 IosVerifyUtil import javax.net.ssl.*; i ...

  9. [IOS] 内购碰见的一个坑 (无法连接到 iTunes Store)

    今天测试IOS 内购的时候,SKPaymentTransaction 的 transactionState 一直是 SKPaymentTransactionStateFaild 的状态. 通过打印SK ...

  10. ios内购二次验证安全性问题_iOS 内购遇到的坑

    一.内购沙盒测试账号在支付成功后,再次购买相同 ID 的物品,会提示如下内容的弹窗.您以购买过此APP内购项目,此项目将免费恢复 您以购买过此APP内购项目,此项目将免费恢复.PNG 原因: 当使用内 ...

最新文章

  1. 干货丨手把手带你玩转机器学习和深度学习
  2. 初学Java的那段日子
  3. 记住,你现在的操作是什么
  4. 【C/C++11】天气APP:txt/xml文件处理入库(psurfdata.cpp,_shqx.h),数据结构设计(PowerDesigner)
  5. python requests库作用_python Requests库入门
  6. 【转】UITableView详解(UITableViewCell
  7. 人工智能将进入能源生产领域
  8. 机器学习算法各个击破
  9. 计算广告——introduction
  10. 设计模式---观察者模式(Observer)和委托事件模型(DEM)
  11. 李飞飞计算机视觉课CS231n第二天
  12. 方舟服务器延迟n a什么意思,留存分析
  13. TX1储存空间装满不能正常进入系统问题的解决
  14. 网站优化和SEO的差别
  15. 《程序员》精彩推荐:如何为新员工找到团队“归属感”
  16. ECharts入门——折线图与柱状图
  17. c语言水仙花数素数,【C语言】斐波那契分数数列和、水仙花数、素数
  18. java 控制台scanner的中文输入问题
  19. PDF Search 10.3 PDF文档搜索工具
  20. 【渝粤题库】广东开放大学 大学英语2 形成性考核

热门文章

  1. CDN是什么?如何用Cloudflare CDN加速网站
  2. React制作简易小名片
  3. 深圳app上架-2021年上半年android ios app上架价格一览
  4. DOOM3 源码分析笔记(1)
  5. BUGS 小胡的学习日志
  6. nyoj145 聪明的小柯
  7. google注册账号使用手机号提示注册此号码无法用于验证
  8. 30分钟了解PAC学习理论——计算学习理论第一讲
  9. CentOS 7重启网卡出现RTNETLINK answers:File exists
  10. 【JavaWeb】在office word中使用merge field出现空行问题