Network Extension App transfer

I recently transferred an app from one developer account to another.
The app that was transferred is already released and is on the app store

The app transferred ok but, it contains a network extension with a bundle identifier and an app group with an identifier related to the "old" account (these were not transferred to the new account)

To clarify, the app I transferred has a network extension identifier. It also has an app group identifier that it belongs to (the same identifier as the main app group).
Can someone please clarify the following questions?

1) I cannot use the same network extension identifier and the app group identifier even if it will be deleted from the previous account, since the app is already on the app store. correct?

2) If I give the network extension a new identifier, create a new app group, and give it to the main app & network extension - the current app in the app store will not be affected. Correct?

3) In addition to (2) above, new releases of the app (with the new identifiers) will work, and this is the way you recommend doing this. Correct?

4) I also get this warning when uploading a new build to test flight:
"Potential loss of Keychain Acces - The previous version of the software has an application-identifier value of ['SomeUUID.MyAppBundleIdentifier'] and the new version of software being submitted has an application-identifier of ['SomeOtherUUID.MyAppBundleIdentifier'] this will result in a loss of keychain access."
The bundle identifiers are the same but the UUID before them is different
Any suggestion on what we can do to resolve this?


Replies

I will weigh in here with the information that I have.

Regarding:

2) If I give the network extension a new identifier, create a new app group, and give it
to the main app & network extension - the current app in the app store will not be
affected. Correct?

If it is still possible, I would try to test the update path here. The reason being is because if someone has an old version of your app with the old app group and old network extension identifier, then they are running an old version of your network extension. Now, if you update all of these values and you have a new identifier for your network extension you have the potential for two unique network extensions. So, I would test that your old network extension is not lingering around anywhere after the update cycle. If this is a VPN I suspect that it will not be because a typical update path is to disable the VPN and enable it again after the update completes, and so I suspect the old network extension will be destroyed and recreated, but I would recommend testing this path so you know for sure how it is handled.

Regarding:

The bundle identifiers are the same but the UUID before them is different
Any suggestion on what we can do to resolve this?

Right, this if the App ID / Team ID prefix change on your identifier that is used to access the Keychain you have the potential to suffer a one time loss of Keychain data described here.

I would also recommend taking a look at Q&A1776 that talk more about the loss of Keychain data.


Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Thank you, Matt!
And what will happen if I remove the "old" network extension identifier and the app group identifier from the "old" developer account -> Add them to the new developer account -> everything should be the same on the app (same group and same extension identifiers under the new account)
This will actually mean that the possible issue of 2 network extensions is gone, right?


This will actually mean that the possible issue of 2 network extensions is gone, right?

On the surface this seems correct, but I do not know how this will impact your current users that have not updated yet, so for further advise on this topic I would recommend contacting Apple Developer Programs Support before doing anything here.


Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com