В настоящее время я использую SwiftyStoreKit для обработки покупки приложения. Прямо сейчас мне нужно только установить переменную в Userdefaults на true после того, как пользователи закончат свои sh покупки. Когда я запускаю на своем устройстве, оно может успешно обрабатываться, а также восстанавливать работы. Но когда я отправляю в Apple на проверку, мне сказали, что в IAP есть ошибка, и она не может завершить покупку. Мое приложение не имеет внутреннего сервера.
Code in AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let keychain = KeychainSwift()
if(UserDefaults.standard.string(forKey: K.FIRSTTIME) == nil){
keychain.clear()
}
//payments:
SwiftyStoreKit.completeTransactions(atomically: true) { purchases in
for purchase in purchases {
switch purchase.transaction.transactionState {
case .purchased, .restored:
if purchase.needsFinishTransaction {
// Deliver content from server, then:
SwiftyStoreKit.finishTransaction(purchase.transaction)
}
UserDefaults.standard.set(true, forKey: K.CANUSESTRONG)
case .failed, .purchasing, .deferred:
break // do nothing
default:
break
}
}
}}
Код в функции осуществления платежей (это расширение)
func makePayments() {
SwiftyStoreKit.purchaseProduct(K.PRODUCT_ID, quantity: 1, atomically: true) { result in
switch result {
case .success(let purchase):
print("Purchase Success: \(purchase.productId)")
self.alert(message: "_purchase_success".localized, willReturn: false)
UserDefaults.standard.set(true, forKey: K.CANUSESTRONG)
case .error(let error):
print("result is !!!!!!!!!!!!!!!\(error)")
switch error.code {
case .unknown: self.alert(message: "_purchase_unknown".localized, willReturn: false)
case .clientInvalid:
self.alert(message: "_purchase_not_allowed".localized, willReturn: false)
case .paymentCancelled: break
case .paymentInvalid:
self.alert(message: "_purchase_invalid".localized, willReturn: false)
case .paymentNotAllowed:
self.alert(message: "_purchase_not_allowed_device".localized, willReturn: false)
default:
self.alert(message: error.localizedDescription, willReturn: false)
}
}
}
}
Может ли кто-нибудь помочь мне проверить, есть ли что-то, что мне нужно изменить для покупки в приложении? Спасибо