Transferring Apps with iCloud KVS

Hi All!

I'm being asked to migrate an app which utilizes iCloud KVS (Key Value Storage). This ability is a new-ish feature, and the documentation about this is sparse [1]. Honestly, the entire documentation about the new iCloud transfer functionality seems to be missing. Same with Game Center / GameKit. While the docs say that it should work, I'd like to understand the process in more detail.

Has anyone migrated an iCloud KVS app? What happens after the transfer goes through, but before the first release? Do I need to do anything special? I see that the Entitlements file has the TeamID in the Key Value store - is that fine?

        <key>com.apple.developer.ubiquity-kvstore-identifier</key>
        <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>

Can someone please share their experience?

Thank you!

[1] https://developer.apple.com/help/app-store-connect/transfer-an-app/overview-of-app-transfer

Answered by GreenFrogInThePond in 760205022

It turns out that the Provisioning Profile will have the OLD team identifier; that's what'll go in the Entitlements file.

Accepted Answer

It turns out that the Provisioning Profile will have the OLD team identifier; that's what'll go in the Entitlements file.

Same issue here, the only problem is that the provisioning profile that gets created automatically is getting created with the bundle id of the extension and not the main app.

I am sure that it was the main app before the transfer since when i received the app from the old developer the .entitlement file had this:

<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>

Let's say the CFBundleIdentifier is BUNDLEID

Checking the provisioning profile that gets created on my account it has this:

com.apple.developer.ubiquity-kvstore-identifier: 
OLD-TEAM.BUNDLEID.share

it contains the share that is an extension target created in the project.

I can now change my entitlement to be:

<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>OLD-TEAM.$(CFBundleIdentifier).share</string>

And it would create the archive and uploaded to App Store Connect, but it doesn't seem correct.

How can i change the com.apple.developer.ubiquity-kvstore-identifier in the automatically generated provisioning profile so that it doesn't contain the .share at the end?

That the ubiquity-kvstore-identifier in the system-generated provisioning profile has an extra “.share” sounds pretty strange to me.

@Danny182 @van-bsp @Yamashita3, did you file a feedback report yet? If not, would you mind to file one and share your report ID here?

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

Transferring Apps with iCloud KVS
 
 
Q