I'm considering a design for an app following the "freemium" model where certain content is free but the user can purchase more content within the app.
My concern is that the content they can purcha开发者_如何转开发se will be >20Mb, the limit for a 3G App download.
Has anyone attempted this or have any idea what the implications would be? I'm wondering what happens if they buy the app while on 3G... would they have to go back to their computer to finish downloading the content and then sync it to the phone?
With regards to what happens to >20Mb on a 3G connection this will not fail. Content is not being delivered from Apple's servers (where the 20Mb limit is) but from your servers. So, the download will go forward as normal. However, with a large download size there is an increased chance of it not completing. This is where you come in to check if you need to deliver additional content when possible.
The In App Purchase Programming Guide covers this quite well.
Ultimately, the responsibility for properly delivering content is up to you. Apple will provide the mechanisms to determine if you must restore a purchase. You'd restore content in a number of situations (user got a new phone, user reinstalled app, user failed to get content on initial purchase, etc). All content delivery is your (as the app developer) responsibility.
At the least-work case for you, non-consumable items once purchased will never be charged for again. That is, if they purchase the item one time, the attempt to buy it a second (due to a fairly of the app to realize it's been bought) StoreKit will return a successful purchase, but not charge the user.
At a more proactive level, you can obtain the purchased items list via restoreCompletedTransactions
when the app starts and deliver any missing content.
精彩评论