我正在Swift 3.0應用程序中實施應用程序內購買,所以我需要抓取應用程序收據才能根據iTunes商店進行驗證。這裏是我如何獲得收據:iOS Receipt not found
func getReceipt() -> Data? {
if Bundle.main.appStoreReceiptURL != nil {
print("app receipt: \(Bundle.main.appStoreReceiptURL)")
do {
let receiptData = try Data(contentsOf: Bundle.main.appStoreReceiptURL!)
print(receiptData)
return receiptData
} catch {
print("error converting receipt to Data: \(error.localizedDescription)")
}
}
return nil
}
我對收到URL控制檯輸出爲:
應用收據:可選(文件:///用戶/ dustinspengler /庫/開發/ XCPGDevices/433E8E8F-B781-4ADC-A92D-5CABC28E94D6 /數據/集裝箱/數據/應用/ C25BE9B6-FB64-4D49-9CF2-9DA371060A7B/StoreKit /收據)
它此後未能將收據轉化爲Data
和catch語句打印:
將收據轉換爲數據時出錯:文件「收據」無法打開,因爲沒有這樣的文件。
我得到了一個操場,模擬器運行這個時完全相同的輸出,而真正的設備,從而這是否意味着沒有收據存在考慮的事實,用戶尚未作出了應用內購買的應用程序然而?當通過蘋果的documentation閱讀時,我得到的印象是,無論先前購買什麼,它們總是被創建。
在用戶進行購買*之前沒有收據。對於從App Store下載的應用程序(甚至是免費的應用程序)。這是*購買*,所以會有收據。對於Xcode的調試版本,只有在進行應用內購買之後纔會有收據。 – Paulw11
感謝您的回覆@ Paulw11!如果你想提交這個答案,我會接受它。 –
考慮到這些信息沒有在蘋果文檔中列出,有沒有人關心評論下來的投票? –