我正在尝试使用Apple服务器中的托管内容实施In App Purchase。 我正在使用SwiftyStoreKit框架。
通常,根据其他教程,我们需要在以下位置实现下载调用:
e.setDescription("<p:outputText value='" + obj.title + "' />");
所以我在这个函数中实现了以下代码:
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
它正在工作,现在我正在尝试在AppDelegate中检查以前的交易的法规是否已经购买&#34;但没有&#34;完成&#34;。这意味着用户购买了该产品,但下载存在问题。
这是我的代码。
let downloads = transaction.downloads
SKPaymentQueue.defaultQueue().startDownloads(downloads)
检查工作正常,但下载存在问题:
PaymentTransaction类型的值没有会员下载。
问题是:当我不在 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
completeIAPTransactions()
return true
}
func completeIAPTransactions() {
SwiftyStoreKit.completeTransactions(atomically: false) { products in
for product in products {
if product.transaction.transactionState == .purchased || product.transaction.transactionState == .restored {
if product.needsFinishTransaction {
// Deliver content from server, then:
let downloads = transaction.downloads
SKPaymentQueue.defaultQueue().startDownloads(downloads)
SwiftyStoreKit.finishTransaction(product.transaction)
}
print("purchased: \(product.productId)")
}
}
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
如果有人偶然发现了这个问题,则需要从仓库中下载master分支,而不是依赖于cocoapods。
pod 'SwiftyStoreKit', :git => "https://github.com/bizz84/SwiftyStoreKit.git"
该错误的原因是,由于某些原因,运行pod install时并非所有文件都被复制。可能是您的计算机上某处有缓存的版本。