如何返回Transaction.currentEntitlements应用程序关闭时发生的订阅自动续订交易?
我已经在 macOS 应用程序中实现了自动续订订阅。
我有一个可以在和StoreManager上创建听众的Transaction.currentEntitlementsTransaction.updates
如果在应用程序运行时续订订阅,Transaction.updates则会按预期接收最新交易。
但是,当应用程序未运行时自动发生续订时,重新打开应用程序时Transaction.currentEntitlements不会返回续订交易。
按照以下步骤进行重现:
Transaction.currentEntitlements什么也不返回。在应用程序启动时检查StoreKit Transactions调试窗口,应用程序关闭时发生的续订交易显示为“未完成”。
未完成的交易是指未返回的交易。
如果在应用程序运行时再次续订订阅,则会Transaction.updates触发侦听器,并返回新的续订以及任何未完成的事务。
这是来自的相关代码StoreManager
@MainActor
class StoreManager: ObservableObject {
var updates: Task<Void, Never>? = nil
var transactions: Task<Void, Never>? = nil
init() {
updates = updatesListenerTask()
transactions = transactionsListenerTask()
}
@Published private (set) var transaction: StoreKit.Transaction?
func updatesListenerTask() -> Task<Void, Never> {
Task.detached(priority: .background) {
for …Run Code Online (Sandbox Code Playgroud)