无法从iOS 7中的App Store Receipt获取original_application_version

uso*_*n1x 9 iphone in-app-purchase ios ios7

我正在尝试为我当前的客户实现从付费模式到免费增值模式的无缝过渡,但是在收据中获取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字段类型19中寻找这个值,也许还有另一个字段我可以用于我的目的?

hpi*_*que 5

这可能是与 iTunes/Apple 帐户相关的沙盒怪癖,特别是当它发生在各种库中时。为了更加安全,我还会尝试使用https://github.com/rmaddy/VerifyStoreReceiptiOS 。

从“设置”中注销也可能有帮助。

另外,测试生产案例。从 App Store 安装当前版本,然后安装新版本并查看该original_application_version字段是否仍然为 nil。

  • 从“设置”中注销很有帮助。之后所有必要的字段都神奇地出现了。只是为了说明,我最后使用了 RMStore 并通过“original_application_version”字段进行检查。部署到 App Store 后一切正常,到目前为止没有用户抱怨。 (2认同)