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

标签 ios iphone ios7 in-app-purchase

我正在尝试为我当前的客户实现从付费到免费增值模式的无缝过渡,但在从收据中获取 original_application_version 时遇到问题。

我的应用仅适用于 iOS 7,您可能知道,Apple 在 iOS 7 中引入了统一收据,如前所述,其中应包含有关用户原始购买的信息。所以我的想法如下: 1.解码收据。 2. 检查原始购买是否在此新的免费增值版本之前进行。 3. 如果是 - 解锁所有 IAP。

如文档中所述,收据应包含此“原始应用程序版本”字段(“最初购买的应用程序版本。”)。也有说“在沙箱环境下,这个字段的值总是‘1.0’”。但出于某种原因,我不是这种情况。

所以,我的问题是:是否有人幸运地获得了这个值?

我尝试使用 DHAppleReceiptParser ( https://github.com/DarkHorseComics/DHAppleReceiptParser ) 和 RMStore ( https://github.com/robotmedia/RMStore ) 来解析收据,两者都为我提供了该字段的空值。我也在 ASN.1 字段类型 19 中寻找这个值,也许还有另一个字段可以用于我的目的?

最佳答案

这可能是与 iTunes/Apple 帐户相关的沙盒问题,特别是如果它发生在各种库中。我也会尝试 https://github.com/rmaddy/VerifyStoreReceiptiOS , 为了更加安全。

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

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

关于ios - 无法从 iOS 7 中的 App Store Receipt 获取 original_application_version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629205/

相关文章:

iphone - 解析 NSData 对象以获取信息

ios - ECDSA secp256k1 key 对在 Swift 上签名

iphone - 如何从 iOS 连接到 Web 服务(SOAP + DES)?

ios - 展开 CLLocation 位置坐标时出现 fatal error

objective-c - 如何在 iOS 应用程序中捕获用户的手写签名

ios - 如何在运行时创建动态未知数量的按钮?如何在运行时为所有按钮添加一个 Action 监听器?

ios - 从另一个类读取/写入 UITextField

iphone - 将地址簿数据导入 iPhone 模拟器

jquery - 是否可以在 ios7 的 HTML5 音频中自动播放或触发播放()状态?

ios - UITableViewCell 中 iOS7 上的自动布局约束问题