我有一个付费的 iOS 应用程序。
我需要得到original_application_version
Apple AppStore 收据中的编号(用户购买的第一个版本)。
为了获取收据,当我的应用程序加载时,我使用checkReceiptFromAppStore()
功能:
func checkReceiptFromAppStore() {
let receipt = self.getReceipt()
print("receipt Data is: \(receipt)") // prints this: receipt Data is: Optional(5141 bytes)
}
getReceipt()
函数如下:
func getReceipt() -> Data? {
if Bundle.main.appStoreReceiptURL != nil {
print("app receipt: \(Bundle.main.appStoreReceiptURL)")
do {
let receiptData = try Data(contentsOf: Bundle.main.appStoreReceiptURL!)
return receiptData
} catch {
print("error converting receipt to Data: \(error.localizedDescription)")
}
}
return nil
}
我看过WWDC 2017 高级 StoreKit有关应用内购买和收据验证的视频以及WWDC 2013 有关使用收据的视频, 读不同
与我的问题相关的资源(this, this, this, this, this, this, and this...),但我仍然不明白下一步该怎么做才能获得
App Store 收据中的“original_application_version”。我只需要这个字段,但不明白为什么这么难得到它。
我也读过这个:https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html
我认为当我运行 print("receipt Data is: (receipt)") 时,收据不为零,它会打印:收据数据是:可选(5141 字节)
我可以认为我应该解析收据以获取该字段。我可以使用 Decodable 来做到这一点吗?有没有最简单的方法来得到这个original_application_version
场地?是否可以在没有收据验证的情况下执行此操作?
我需要得到original_application_version
字段仅检测用户购买的第一个版本的数量。如果您知道任何其他解决方案来获取第一个购买的版本号,我很高兴听到它们。
我正在 Xcode 9、Swift 4、iOS 11 中进行开发
任何答案表示赞赏,谢谢。