首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AppStore.sync()不恢复购买

AppStore.sync()不恢复购买
EN

Stack Overflow用户
提问于 2021-10-29 12:01:24
回答 1查看 922关注 0票数 5

在一个应用程序中使用旧的API进行应用程序内采购(StoreKit 1)。应用程序已经在app上发布了。购买的是non-consumable.

在尝试迁移到StoreKit 2时,我无法恢复购买。具体而言,显示和购买产品的效果和预期一样,但当删除和重新安装应用程序,然后试图恢复购买,我不能这样做。

我正在尝试使用新的API来恢复它们,但它似乎不起作用。到目前为止,我已经尝试过:

在应用程序的整个生命周期中,我都在监听事务更新,下面是:

代码语言:javascript
运行
复制
Task.detached {
    for await result in Transaction.updates {
        if case let .verified(safe) = result {

        }
    }
}

我有一个按钮调用此方法,但除了提示再次使用Apple ID登录之外,它似乎没有任何效果:

代码语言:javascript
运行
复制
try? await AppStore.sync()

这不返回任何项目

代码语言:javascript
运行
复制
for await result in Transaction.currentEntitlements {
    if case let .verified(transaction) = result {

    }
}

这不返回任何项目

代码语言:javascript
运行
复制
for await result in Transaction.all {
    if case let .verified(transaction) = result {

    }
}

正如前面提到的,我在购买该项目并删除该应用程序后尝试此操作。所以我相信它应该能够恢复购买。我试着用模拟器上的Configuration.storekit文件,在一个真正的设备上,在Sandbox环境中不使用它。

有谁能用StoreKit 2恢复购买吗?

PD:我已经向反馈助理提交了一份反馈报告,但到目前为止,他们唯一的答复是:

,因为Xcode中的StoreKit测试是一个本地环境,数据绑定在应用程序上,当您删除应用程序时,您也要删除Xcode环境中该应用程序的所有事务数据。所提供的代码段是正确使用API的。

所以是的,使用Configuration.storekit文件无法恢复购买,但是如果我不能在Sandbox环境中恢复它们,我担心一旦发布,这将无法工作,使我的用户完全无法恢复他们已经购买的东西。

EN

Stack Overflow用户

回答已采纳

发布于 2021-11-09 09:56:30

在发布到App 并最终在生产中直接试用该应用程序之后,我可以确认它是否有效,但我不得不说,无法在沙箱环境中测试这一点是不理想的

我还觉得文件不够清楚,至少对我来说不是这样。也许这对其他人来说是显而易见的,但我原以为这些采购会自动恢复并在for await result in Transaction.updates上得到,但这是行不通的。

所做的工作是检查Transaction.currentEntitlements,如果权利不存在,则执行sync()并再次检查。这是对我有用的代码:

代码语言:javascript
运行
复制
try? await AppStore.sync()
        
for await result in Transaction.currentEntitlements {
    if case let .verified(transaction) = result {
        // ...
    }
}

注意事项

如前所述,这只在

  • 上工作,而在没有StoreKit测试debug mode上不起作用,也就是说,如果没有debug mode,您想要使用StoreKit that (使用Configuration.storekit)来恢复购买工作(使用相同的方法),但前提是您不删除de应用程序并重新安装。如@loremipsum所述,通过删除该应用程序可以释放StoreKit测试历史.
  • ,这也可以在TestFlight上进行测试(因为它同时发布了iOS和macOS.

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69768519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档