所以我有一个需要订阅的应用程序(通过IAP),它提供了一个Today Widget。在窗口小部件(以及应用程序内)中,我使用RMStore检查捆绑包中的App Receipt是否有活动订阅。它在沙盒中工作正常,包括通过TestFlight安装时。但今天,该应用程序已获得Apple批准,一旦我测试了实时店内版本,当主应用程序看到用户在应用程序收据中的购买时,今天的扩展程序并没有被'读取应用收据,因此没有订阅!
Today Extension和主应用程序都使用完全相同的代码来阅读应用收据并查找订阅信息。为什么它会在主应用程序中工作而不是扩展?这是一个已知的问题?它与RMStore而不是StoreKit本身有什么关系?我有什么聪明/不同的事情吗?
我认为这个问题可能与收据验证有关 - 例如,沙盒中的捆绑标识符与扩展的App Store有什么不同吗?
这真是令人沮丧,因为如果没有重新提交到App Store,然后在发布后对其进行测试,并将其从商店中拉出来,我根本无法测试任何可能的解决方案。 #39;破碎了,否则我会让用户为他们实际上得不到的东西买单。
答案 0 :(得分:7)
所有收据(应用程序购买和应用内购买/ s)都存储在应用程序包内的文件中。应用扩展程序位于应用程序包内嵌套的软件包中 - 因此,如果它可以访问外部软件包中的收据文件(但值得通过调用appStoreReceiptURL
进行检查),我会感到惊讶。
因此,有关收据的信息(即收据本身或处理收据的某些结果)需要通过常规方式从包含应用程序传递到扩展程序,即使用shared container和{{ 3}}