【发布时间】:2015-08-08 19:41:04
【问题描述】:
我在尝试测试应用内购买(iOS 8+ Swift 1.2)时遇到了一些奇怪的问题。我在 iTunes 连接帐户中有一个消耗品,我能够很好地检索产品和产品详细信息。在我要发起购买的时候,EXC_BAD_ACCESS崩溃前的那一行代码在
//Transaction has been made
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
if(list.count == 0){
return
}
//code
for transaction:AnyObject in transactions{
var trans = transaction as! SKPaymentTransaction
println(trans.error)
switch trans.transactionState {
case .Purchasing:
println("Purchasing...The transaction is being processed by the App Store.")
case .Purchased:
println("Buy, ok unlock iap here")
println(p.productIdentifier)
queue.finishTransaction(trans)
let prodID = p.productIdentifier! as String
switch prodID {
case iapID:
println("send submission")
saveSuperSubmission()
default:
println("IAP not Setup")
}
case .Failed:
println("buy error")
queue.finishTransaction(trans)
default:
println("updatedTransactions: \(trans.transactionState.rawValue)")
break;
}
}
}
点击 .Purchasing 案例后,它立即崩溃。现在在物理设备上询问我的密码后,出现购买产品的确认提示,当我选择购买时,另一个提示显示“此应用内购买已被购买”。一旦崩溃发生,Xcode 不会在跟踪中显示我的任何代码。它显示 UIApplicationMain 和如下所示
0x2daf0a04 <+1436>: blx 0x2e1ae2c8 ; symbol stub for: CFDictionaryRemoveAllValues$shim
0x2daf0a08 <+1440>: ldr r0, [sp, #0x2c]
0x2daf0a0a <+1442>: ldr r1, [sp, #0x18]
- 如果产品属于“消耗品”类型,为什么它会关心已经购买的产品?我希望这会被多次购买。
- 如何更好地调试此错误?
【问题讨论】:
标签: ios swift in-app-purchase storekit