【发布时间】:2015-05-20 13:33:45
【问题描述】:
所以我有一个需要订阅(通过 IAP)的应用,它提供了 Today Widget。在小部件(以及应用程序内)中,我使用 RMStore 检查捆绑包中的应用程序收据以获取有效订阅。它在沙箱中运行良好,包括通过 TestFlight 安装时。但是今天,该应用程序获得了Apple的批准,并且在我测试了实体店版本时,当主应用程序在应用程序收据中看到用户购买时,今日扩展程序并没有读取应用程序收据,因此找不到订阅!
Today Extension 和主应用都使用完全相同的代码来读取应用收据并查找订阅信息。为什么它会在主应用程序中工作而不是扩展程序?这是一个已知的问题?它与 RMStore 而不是 StoreKit 本身有关吗?我有什么聪明的/不同的事情要做吗?
我在想这个问题可能与收据验证有关——例如,沙盒中的捆绑标识符与扩展程序的 App Store 中的包标识符是否不同?
这真的很令人沮丧,因为我实际上无法测试任何潜在的解决方案,除非重新提交到 App Store,然后在它发布后对其进行测试,如果它坏了就将它从商店中拉出来,否则我会有用户为他们实际上没有得到的东西付费。
【问题讨论】:
-
发布您用于阅读应用收据的代码可能是个好主意。不是每个人都熟悉 RMStore。
-
如果这里的权利有问题,我不会感到惊讶。 IIRC,应用程序扩展是使用与父级不同的标识符进行代码签名的,并且具有单独的应用程序 ID 等等。您确认分机确实可以读取 SK 收据吗?除此之外,我不确定解决方法是什么,但如果您可以在您的应用程序中验证它,那么这听起来像是问题所在。我真的只看到用户默认使用 Apple 描述的应用程序组作为进行应用程序扩展通信的方式,所以如果 SK 在扩展程序中确实不可用,这真的很糟糕。
-
我可以找到关于扩展读取应用收据的零文档,但由于它在 TestFlight 部署的二进制文件版本中运行良好(错误地?)认为它很好。
标签: ios in-app-purchase ios8-today-widget today-extension rmstore