首页 > 解决方案 > 在应用程序购买失败“无法连接到 iTunes Store”错误

问题描述

自上两个月以来我一直面临这个问题

我的应用程序在运行正常之前可以自动续订 InApp 购买,然后许多用户抱怨说,当他们点击购买按钮时没有任何反应,所以我调试我的代码并在我的真实设备上运行我发现了这个错误

失败 SKPrdouctName 错误域=SKErrorDomain 代码=2“无法连接到 iTunes Store” UserInfo={NSLocalizedDescription=无法连接到 iTunes Store}

我没有更改任何代码

我没有上传新版本

我的产品也在 Appstore Connect 上获得批准

我没有改变产品上的任何东西

我已经尝试过重启设备,清除缓存,登录注销苹果ID仍然得到同样的错误

这发生在许多现场用户身上

我真的需要一个解决方案

func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
    print(response.products)
    products = response.products
    for product in response.products {
        print(product.localizedTitle)
    }
}

func request(_ request: SKRequest, didFailWithError error: Error) {
    print(error.localizedDescription)
}

func requestDidFinish(_ request: SKRequest) {
    print(request)
    Global.sharedInstance.isConsiderPurchasedOrNot = true
}

}

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
       for transaction in transactions {
        print(transaction.transactionState.status(), transaction.payment.productIdentifier)
        
        switch transaction.transactionState {
        case .purchasing:
            
           
            break
        case .purchased:
             Miscellaneous.APPDELEGATE.window!.stopMyToastActivity()
            if Global.sharedInstance.isConsiderPurchasedOrNot{
                print(transaction.payment.productIdentifier + "is purchased")
                
                let prodID = transaction.payment.productIdentifier as String
                
                if prodID == MyProducts.autoRenewSubscription
                {
                    Global.sharedInstance.isPurchased = 1
                  
                    purchaseSubscriber(usediD: Global.getUserID())
                }
            }
         break
        case .restored:
            print(transaction.payment.productIdentifier + "is purchased/restored! hello ")
    
              //  let str1 =  UserDefaults.standard.string(forKey: "username")
                Global.sharedInstance.isPurchased = 1
            let prodID = transaction.payment.productIdentifier as String
            Miscellaneous.APPDELEGATE.window!.stopMyToastActivity()
            if prodID == MyProducts.autoRenewSubscription
            {
                Global.sharedInstance.isPurchased = 1
                
            }


        case .failed:
            print(transaction.payment.productIdentifier + "is failed!")
             Miscellaneous.APPDELEGATE.window!.stopMyToastActivity()

           
        default: queue.finishTransaction(transaction)
        }
    }
}

标签: iosswiftin-app-purchaseapp-store-connectstorekit

解决方案


推荐阅读