我正在创建一个Mac应用,它具有非续订订阅作为应用内购买。我想将此数据同步到云中,原因如下:
所以我决定实施CloudKit同步来存储以下数据:
以下是我在用户进行应用内购买时正在做的事情:
问题1:据我所知,所有应用内购买都包含在收据文件中,即使在删除和恢复后也是如此。我可以使用它,但是文档清楚地说我不应该这样做。甚至论坛也不确定......你觉得怎么样?
问题2:在使用多个沙箱用户测试应用程序时,我注意到无论我使用哪个沙箱用户进行购买,当前登录的iCloud帐户(我的个人帐户)都会将收据数据同步到CloudKit。为什么购买者(App Store)用户没有将数据发送到他们的私有云数据库?我如何测试一切正常?我是否必须退出iCloud帐户才能使其正常工作?
感谢您的时间:)
答案 0 :(得分:2)
来自Apple的文档:
Apple关于是否在收据中购买非续订订阅的文档仍有相互矛盾的答案:
Yes(检索2016-05-11):
表1-2 订阅类型的比较
Subscription type Auto-renewable Non-renewing Free
Users can buy Multiple times Multiple times Once
Appears in the receipt Always Always Always
Synced across devices By the system By your app By the system
Restored By the system By your app By the system
No(检索2016-05-11):
在购买时,可以将消费品或非续订订阅的应用内购买收据添加到收据中。它会保留在收据中,直到您的应用完成该交易。在此之后,下次更新收据时会将其从收据中删除 - 例如,当用户再次购买时,或者您的应用明确刷新收据时。
来自Apple的开发者论坛:
在thread reporting the temporary (now fixed) loss of non-renewable subscriptions from the app receipt,Apple开发人员技术支持工程师说:
我已经查询了进行更改的iTunes制作支持工程师 - " fix"在申请收据中提供非续订订阅的历史记录是永久性的。我的解释是,permament意味着如果我们进行更改,我们将在开发者大会上宣布更改,并宣布该函数将被弃用一段时间。
关于使用iCloud作为恢复非续订订阅的方法,我已经从我的App Review联系人那里听到 - 一个应用程序"可以使用iCloud来跟踪非续订订阅(NRS)但是它不能强制用户在购买之前登录。它必须是可选的 - 可以提醒用户iCloud需要从其他iOS设备访问NRS内容 - 如果用户希望以后能够访问此内容,则提供以后注册的方式。 #34;
来源:https://forums.developer.apple.com/thread/22345#79067
您可以尝试刷新应用收据以恢复不可续订的订阅,但它已broken before,文档不清楚,并且过去有报道称App Review拒绝尝试此操作的应用方法
CloudKit始终使用设置>下的当前iCloud帐户的iCloud
App Store购买使用在设置>中配置的Apple ID。 iTunes& App Store 。
用户可以登录iCloud&amp ;;的同一Apple ID iTunes,但不保证。这是两个完全独立的设置。