作者:手机用户2502890621 | 来源:互联网 | 2023-01-04 10:47
如何解决《如何从iOS11中的iOSReceipt中获取original_application_version(第一个购买的版本号)?》经验,谁能帮忙解答一下?
我有一个付费的iOS应用程序.
我需要original_application_version
从Apple AppStore Receipt 获取该号码(用户购买的第一个版本).
要获得收据,当我的应用加载时,我使用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 Advanced StoreKit关于In App购买和收据验证的视频以及关于使用收据的WWDC 2013视频,阅读与我的问题相关的不同资源(这个,这个,这个,这个,这个,这个,这个 ......) ,但我仍然不明白接下来要从App Store收据中获取"original_application_version"该怎么办.我只需要这个领域而且不明白为什么这么难得.我也读过这个:https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html
我认为当我运行打印时收据不是零("收据数据是:(收据)")它打印出来:收据数据是:可选(5141字节)
我可以假设我应该解析收据以获得该字段.我可以使用Decodable来做吗?有最简单的方法来获得这个original_application_version
领域吗?没有收据验证可以做到这一点吗?
我只需要获取该original_application_version
字段以检测用户购买的第一个版本的编号.如果您知道任何其他解决方案以获得第一个购买的版本号,我很高兴听到它们.
我正在开发Xcode 9,Swift 4,iOS 11
任何答案都赞赏,谢谢.