如何解决如何解决应用内购买的 Enqueued 和 Thread 问题?
我查看了其余的代码以检查它是否完美,没有错过 Apple Inc 的 StoreKit 教程和 YouTube 频道。我相信我非常接近完成 IAP!不知何故,我注意到我得到了三个代码来显示应用程序冻结后出现的灰色错误,而沙盒帐户 UIAlertController 用于购买产品。
错误:从 com.apple.main-thread(线程 1)入队
func purchase(product: IAPProduct) {
guard let productToPurchase = products.filter({
$0.productIdentifier == product.rawValue
}).first else {
return
}
let payment = SKPayment(product: productToPurchase)
// Code Crashed
paymentQueue.add(payment)
}
我构建了 UITableView 来显示带有购买版本的剧集。错误与之前的代码相同。
if indexPath.row == 3 {
// code crashed
IAPService.shared.purchase(product: .epsiode4non_consumable)
}
现在这是一个最终的代码,它显示了一个单词,上面写着错误; “线程”没有提及任何问题。
extension IAPService: SKPaymentTransactionObserver {
func paymentQueue(_ queue: SKPaymentQueue,updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
print(transaction.transactionState.status(),transaction.payment.productIdentifier)
switch transaction.transactionState {
case .purchased:
//SKPaymentQueue.default().finishTransaction(transaction)
SKPaymentQueue.default().remove(self)
print("Successful Purchased!")
queue.finishTransaction(transaction)
case .Failed:
//SKPaymentQueue.default().finishTransaction(transaction)
SKPaymentQueue.default().remove(self)
print("Purchase is Failed.")
queue.finishTransaction(transaction)
case .restored:
//SKPaymentQueue.default().finishTransaction(transaction)
SKPaymentQueue.default().remove(self)
print("Purchase Restore is Successful.")
queue.finishTransaction(transaction)
case .deferred:
//SKPaymentQueue.default().finishTransaction(transaction)
SKPaymentQueue.default().remove(self)
print("Purchase is Deferred.")
queue.finishTransaction(transaction)
// code crashed
default: queue.finishTransaction(transaction)
}
}
}
}
我不知道线程代表什么?有人可以给我一些有关 Thread 解决 IAP 问题的提示吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。