An Objective C app did something strange. It terminated with an alert exit(173) API no longer supported use Transaction.all or AppTransaction.shared instead. In the receipt validation code exit(173) is called if there is no App Store receipt. The program would terminate, download a valid receipt from the store and relaunch the app. This made it possible to debug the receipt validation code. This shouldn't have happened because the app has a valid receipt.
Reading the developer documentation for Transaction and AppTransaction I only see APIs these objects use for in-app purchases but not for receipt validation.
How can I use the Store Kit for receipt validation and is the Store Kit swift only?
Reading the documentation here:
I'm doing what it says but I don't see how to fetch a valid test receipt from the store for debugging.
Update: I’ll probably use the method here:
to use the procedure in Swift here:
I’m just wondering if calling refresh() will get a receipt in the development environment with Xcode.
I really want to make sure that everything is ok before I distribute the app and exit(173) did this.
Reading the developer documentation for Transaction and AppTransaction I only see APIs these objects use for in-app purchases but not for receipt validation.
How can I use the Store Kit for receipt validation and is the Store Kit swift only?
Reading the documentation here:
Validating receipts on the device | Apple Developer Documentation
Verify the contents of app receipts by decoding and parsing the receipt on the device.
developer.apple.com
I'm doing what it says but I don't see how to fetch a valid test receipt from the store for debugging.
Update: I’ll probably use the method here:
Importing Swift into Objective-C | Apple Developer Documentation
Access Swift types and declarations from within your Objective-C codebase.
developer.apple.com
to use the procedure in Swift here:
shared | Apple Developer Documentation
Gets the App Store-signed app transaction information for the app.
developer.apple.com
I’m just wondering if calling refresh() will get a receipt in the development environment with Xcode.
I really want to make sure that everything is ok before I distribute the app and exit(173) did this.
Last edited: