StoreKit 2 消耗品的意外行为

StoreKit 2 unexpected behavior with consumable items

我正在尝试使用 StoreKit 2 实现 iAP。也许我的代码不是很优雅,但似乎可以工作 ;-) 但是我无法理解以下行为: 如果我首先在模拟器或测试设备上启动我的应用程序,我可以购买消耗品。如果我想再次购买它(消耗品应该如何工作)应用程序会自动恢复购买并且不要求购买。

这是我测试环境中的特定行为还是我对耗材的理解有误? 由于 StoreKit 2 还很新,我在网上还没有找到适合我的教程。

欢迎任何提示:-)

也许我解决了我的问题。如果我是对的,可以请人批准吗?

我在购买中添加了 await transaction.finish()

 func purchaseTSBooster() {
        
        self.boughtItem = true
        
        Task.init {
            guard let tsProduct = tsBoosterProducts.first else {return}
            
            do {
                let result = try await tsProduct.purchase()
                switch result {
                    
                case .success(let verification):
                    switch verification {
                        
                    case .verified(let transaction):
                        DispatchQueue.main.async {
                            self.tsBoosterID.append(transaction.productID) 
                        }
                        await transaction.finish()
                    case .unverified(_, _):
                        break
                    }
                case .userCancelled:
                    buyaborted = true
                    
                case .pending:
                    break
                @unknown default:
                    break
                }
            }
            catch {
                
                print(error)
            }
        }
    }