I have a SpriteKit game with resources (e.g. levels, weapons, skins..) in xcassets folder. Resources are locked, and can be unlocked with IAP or in-game currency.
Problem is a way of storing and unlocking them. There are few ways:
1. Store them all at once - User will have to download whole game, which is something that should be avoided if possible.
2. On Demand Resources - which seemed like a great option, but downloads are not permanent. I don’t know how, and if it’s possible, to copy that assets into custom xcassets folder.
3. IAP - which is ok, but since there is in-game currency, it should be also unlockable without purhasing. Also, MerchantKit framework doesn’t have download supported ( it seems like a good option to use it to save some time ).
4. Custom server - more time/money, not an option
The user is expecting to spend some time downloading the original app so the simplest and least intrusive way is to include them with the app and allow the IAP to unlock them.
If they are really big then CloudKit CKAssets work well.