我正在尝试为我当前的客户实现从付费模式到免费增值模式的无缝过渡,但是在收据中获取original_application_version时遇到了问题.
我的应用程序仅适用于iOS 7,如您所知,Apple在iOS 7中引入了Unified Receipt,如上所述,它应包含有关用户原始购买的信息.所以我的想法如下:
1.解码收据.
2.检查是否在此新的免费增值版本之前购买了原始产品.
3.如果是 – 解锁所有IAP.
如文档中所述,收据应具有此“原始应用程序版本”字段(“最初购买的应用程序的版本”.).它还说“在沙盒环境中,这个字段的值总是”1.0“.”但由于某些原因,对我来说情况并非如此.
所以,我的问题是:有人有运气获得这个价值吗?
我试图使用DHAppleReceiptParser(https://github.com/DarkHorseComics/DHAppleReceiptParser)和RMStore(https://github.com/robotmedia/RMStore)来解析收据,两者都给我这个字段的空值.我也在寻找ASN.1 Field Type 19中的这个值,也许我可以用另一个字段用于我的目的?
解决方法
它可能是与iTunes / Apple帐户相关的沙箱怪癖,特别是如果它发生在各种库中.我也会尝试使用
https://github.com/rmaddy/VerifyStoreReceiptiOS,以确保安全.
从“设置”注销也可能有所帮助.
另外,测试生产案例.从App Store安装当前版本,然后在其上安装新版本,并查看original_application_version字段是否仍为零.