When submitting an update to an app to the app store (via iTunes Connect?), is the update necessarily a whole binary? Can an update come in the form of a patch? If a second version of an app shares a lot of assets and logic from the previous version, does all that logic/resources get reinstalled wholly regardless?
-
2no, it will not be possible, it will download the whole app again and install but Document directory contents remain there. – Manish Agrawal May 09 '13 at 19:48
-
Got it. So much for hoping. Thanks a lot. – kid_x May 09 '13 at 20:00
3 Answers
There are no patches. It's installed as an entire read-only bundle. The old bundle is replaced with the new bundle.
Application data is retained (ie. documents folder, NSUserDefaults).

- 53,009
- 9
- 91
- 143
As everyone said before me Apple does not supply a way to hot-patch native apps, moreover it has a clear restriction - "No remote code injection".
The only thing I can add is that hybrid apps which use a javascript platform allow you to remotely replace the JS file, so you can actually change functionality remotely.(without having to release a new version) other solutions I have seen are in the gray area and allow you to run Lua Script remotely to change app functionality.
We @ Rollout.io have a different approach, we allow you to hot-patch production apps without code injection on native applications, you can read more on how the tech works here
Rollout is meant to help mobile developers solve production quality issues, hot-patching production apps, debugging production env, adding/removing analytics, etc.
Disclosure: I'm from the Rollout.io team.

- 633
- 7
- 11
iOS 6 now supports delta app updates. This is awesome, and makes Real Racing 3 (a 1.1GB app) update in about 30 seconds instead of 20 minutes!
https://developer.apple.com/library/ios/#qa/qa1779/_index.html
Q: How can I reduce the downloaded size of my app update for users that already have the previous version installed?
A: Starting with iOS 6, the app store will automatically produce an update package for all new versions of apps submitted to the store. This package is optimized for updating an app from one version to another, and contains files that have changed between the prior version of an app and the new version of the app, excluding files that have not changed.
When used optimally, an update package is significantly smaller to download than the full package of the app and the update will install more quickly. Also, in many cases, this mechanism allows updates to large apps to be downloadable over cellular networks where app downloads are subject to a size limit.
In addition to new content, the update package contains instructions on how to transform the prior version of the app into the new version of the app. New files will be added, modified files will be replaced with their updated counterpart, and deleted files will be removed as part of this transformation. As far as the developer and user are concerned, this process is entirely transparent and the resulting updated app will be indistinguishable from a full download of the corresponding updated version of their app.
Further instructions for developers available at the link above.

- 118
- 1
- 6
-
it says "the app store will automatically produce an update package for all new versions of apps submitted to the store" .. but what happens to enterprise apps hosted in other servers ? how are those updates done ? – raw3d Jul 09 '13 at 07:00
-
Enterprise apps are still updated by replacing the entire app bundle. – Alastair Stuart Sep 30 '13 at 13:17