Transition from iphone app store to enterprise development

I have an application published to the AppStore and I want to transfer it to the corporate developer account for internal distribution. I read in the corporate documentation that:

If you want users to save application data on their device, make sure that the new version uses the same package identifier as its replacement, and tell users not to delete their old version before installing a new one. The new version will replace the old one and save the data stored on the device if the packet identifiers match.

Now, assuming we keep the Bundle identifier identical between the already installed AppStore binary, and the corporate binary is signed with a different certificate ... it should overwrite the same application on his phone, and not create a second application.

I contacted Apple support, and they said: "No, you will have 2 applications installed if you do not instruct customers to remove their old one." It's true?

+7
ios iphone iphone-developer-program
source share
2 answers

EDIT: I leave my initial answer below for talking, because there is a good dialogue below. As @mja noted when you initially create the application identifier, it is associated with one of several available prefixes of your developer portal, and this prefix can be used by iOS to communicate and distinguish between applications.

EDIT2: When I go to my corporate portal and try to create an application identifier with the same value as the existing application identifier, but with a different prefix, it still explodes and says:

The application identifier with the id "com.mycompany.myapp" is not available. Enter another line.

ORIGINAL Answer: The last part is incorrect - iOS devices use the Bundle identifier to distinguish between applications. I can have 20 applications labeled “Cool App” on the same iOS device if they have unique package identifiers like com.mycompany.coolapp.1 - com.mycompany.coolapp.20. Similarly (and I did it by accident), if I open two projects, both of which have com.mycompany.myapp package identifiers and run one after the other, the last application that will be launched will be installed on the device, while the previous application will be overwritten .

As for the data support of the application, I have not tested this, although I would be interested in what will happen to you!

+2
source share

I managed to achieve this, so the "corporate" application build overwrites the common version of the "app store".

This does not use the exact package identifier, but allows you to achieve what the OP asked in its original question.

As I did this, create a wildcard set identifier on my enterprise account, with the first two parts matching the package identifier for our production application, for example:

Production : com.xyz.abc Enterprise : com.xyz.* 

Using this wildcard package identifier, the application can be distributed and overwrite any versions installed through the application store (user data will be saved). The prefix does not matter here.

One of the drawbacks of the template package identifier is the fact that you cannot use APNS, etc.

+2
source share

All Articles