i have a simple question:
To store an iap purchase in Swift it's most safe using Userdefaults or NSCoding? i don't want use "receipt validation" so i just want to know which of two methods above it's more "hard" to crack with a jailbroken phone.
Keychain is a secure storage. You can store all kind of sensitive data in it: user passwords, credit card numbers, secret tokens etc. Once stored in Keychain this information is only available to your app, other apps can't see it. Besides that, operating system makes sure this information is kept and processed securely. For example, text stored in Keychain can not be extracted from iPhone backup or from its file system. Apple recommends storing only small amount of data in the Keychain. If you need to secure something big you can encrypt it manually, save to a file and store the key in the Keychain.
you can use this framework for use keychain easily : https://github.com/marketplacer/keychain-swift