我第一次在iOS应用中实现了应用内购买功能。我正确地通过了所有测试阶段并提交了应用程序进行审核,但由于这个原因它被拒绝了:
您的应用提供内容订阅,但没有适当的机制来支持用户在其所有iOS设备上都可以使用订阅内容的要求。
要解决我必须解决的问题:
包括可选的用户注册功能,以向所有用户的iOS设备提供订阅内容。
我的应用不需要用户注册,所以我想知道它是否真的有必要。 假设答案是"是的!",我不知道我到底要做什么。 用户注册后,我需要在主机上保存收据数据,然后在用户更换设备时检索数据吗?
实际上我以这种方式获得收据数据:
func validateReceipt() { let receiptUrl = NSBundle.mainBundle().appStoreReceiptURL let isSandox = receiptUrl?.absoluteString.containsString("sandboxReceipt") if let receipt: NSData = NSData(contentsOfURL: receiptUrl!) { let receiptdata: NSString = receipt.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) let transaction = GTLAppleTransactionBeanApiAppleTransactionBean() transaction.receiptData = receiptdata as String transaction.sandbox = isSandox ReceiptService().validate(transaction, completion: validated) } else { receiptDetected = false delegate.subscriptionUpdate() } }
" GTLAppleTransactionBeanApiAppleTransactionBean()"是我的GAE Bean和" ReceiptService()"打电话给我的GAE端点服务。此服务使用Apple检查收据数据。
非常感谢Swift的例子。 :P
抱歉我的英文。 谢谢,Alessio。