- bug出现原因
使用第三方库 SwiftyStoreKit,在获取收据时报错: Error Domain=SKErrorDomain Code=0,
- bug定位
bug出现,却难以定位,最终通过再次提交审核,在报错处加上弹窗,让苹果截图,同时后端写一个接口记录报错,以保证记录住错误原因
通过报错,检查代码,重新走一遍支付过程,根据苹果截图,苹果审核人员在点击ok时失败,查找到获取收据时报错
通过苹果审核人员截图报错的弹窗内容`Error Domain=SKErrorDomain Code=0`,网上搜索到
`https://github.com/bizz84/SwiftyStoreKit/issues/589` 这个SwiftyStoreKit的issues链接,报错出添加下面一段代码即可解决:
case .error(let error): 方法里添加下面的方法再次获取一遍凭证
if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL, FileManager.default.fileExists(atPath: appStoreReceiptURL.path) {
do {
let receiptData = try Data(contentsOf: appStoreReceiptURL, options: .alwaysMapped)
print(receiptData)
let receiptString = receiptData.base64EncodedString(options: [])
} catch {
print("Couldn't read receipt data with error: " + error.localizedDescription)
}
}
网友评论