内购沙箱测试自己测试通过,苹果审核被拒

  1. bug出现原因
使用第三方库 SwiftyStoreKit,在获取收据时报错: Error Domain=SKErrorDomain Code=0,

  1. 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)
     }
}

你可能感兴趣的:(内购沙箱测试自己测试通过,苹果审核被拒)