Updating App Store app from a web server

126 views Asked by At

I'm wondering if it's possible allow users to replace Apps installed from the App Store with an updated version via a browser download.

My use case is, I'd like users to be able to download and play a game via the App Store, but then allow them to update the App to an adult content version (not permited on the App Store) if they see fit.

A breakdown of the users steps would be as follows:

1.) User download the App from the App Store.

2.) Play the game, gets bored, wants adult content version

3.) Navigates to URL hosting the adult version .IPA (e.g. https://myappcompany.com/fungameadultversionupdate/index.html hosted along side manifest.plist etc)

4.) App downloads and replaces App Store version.

I understand that without the existing App downloaded from the App Store there would be now way this would be possible (the iPhone would reject the IPA on the basis it's not signed by Apple). But assuming the updated app is compiled and signed by all of the same same keys (Apple iOS Certificates, Identifiers, Profiles etc).

The only difference between the App Store IPA and the updated IPA would be the updated IPA would have a slightly modified codebase and would not be signed by Apple.

Hope this isn't too confusing. I appreciate maybe I'm not using all the correct terminology, I'm quite new to iOS development. The only thing stopping me finding this out first hand is I would first need an approved App on the App Store to test this.

1

There are 1 answers

0
Duncan C On BEST ANSWER

No, it's not possible. You can't deliver an app that isn't Apple-signed unless you use Ad Hoc delivery and have the user's UUID built into a provisioning profile that you used to build the app.

You, the developer, don't create that app store signed version. The app store does. The app store generates an app with a cryptographically signed app store receipt unique to that user's AppleID (and a binary hash of the app) at the time of purchase. The device won't run an app unless you have that receipt in place, and the app's hash is identical to the hash of the app store version.

If you make any changes to the app bundle, the app's signature changes and it doesn't match the receipt any more.