Я создаю приложение ios, и у меня возникают проблемы с покупками внутри приложения. Я использую SwiftyStoreKit для покупки покупок в приложении. Проблема заключается в том, что когда я пытаюсь приобрести продукт (автоматически продлеваемую подписку), иногда он проходит гладко, и я могу купить продукт, но иногда он выдает мне сообщение об ошибке «Неизвестная ошибка. Обратитесь в службу поддержки». Из-за этой ошибки мое приложение было отклонено несколько раз. Пожалуйста, помогите, если вы знаете, что его вызвало.
Аналогичная проблема: Не удается одобрить мое приложение из-за ошибки «Не удается подключиться к iTunes»
Вот код I использую для покупки товара:
func purchaseSubscription(product: IAPProduct, completion: @escaping (_ success: Bool, _ error: String) -> Void) {
let productStr = product.rawValue
SwiftyStoreKit.purchaseProduct(productStr) { (result) in
switch result {
case .success(let purchase):
print("Purchase Success: \(purchase.productId)")
let purchasedProductID = purchase.productId
switch purchasedProductID {
case IAPProduct.premiumWeekly.rawValue, IAPProduct.premiumYearly.rawValue:
self.subscribed = true
completion(true, "")
default:
break
}
case .error(let error):
switch error.code {
case .unknown: completion(false, "Unknown error. Please contact support")
case .clientInvalid: completion(false, "Not allowed to make the payment")
case .paymentCancelled: completion(false, "---")
case .paymentInvalid: completion(false, "The purchase identifier was invalid")
case .paymentNotAllowed: completion(false, "The device is not allowed to make the payment")
case .storeProductNotAvailable: completion(false, "The product is not available in the current storefront")
case .cloudServicePermissionDenied:completion(false, "Access to cloud service information is not allowed")
case .cloudServiceNetworkConnectionFailed: completion(false, "Could not connect to the network")
case .cloudServiceRevoked: completion(false, "User has revoked permission to use this cloud service")
default: completion(false, error.localizedDescription) //print((error as NSError).localizedDescription)
}
}
}
}