I have many iOS applications live on AppStore. Now for next version of apps, I want to keep a piece of data for every application to share in KeyChain. As far as I know I need to provide same Keychain access group in Apple’s KeychainItemWrapper class.
*keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"Any string" accessGroup:<string representing access group>];
I know about custom URLs and it is of no use as I want data to be persistent.
All my applications have different bundle seed ID as I can see from provisioning portal. I know that the main pre-requisite for shared keychain access is that all of the applications have a common bundle seed ID.
Now my question is how do I make sure that in this senario I can use Keychain to share data among all these applications ?
Is it possible to change the bundle seed ID of all applications through Provisioning profile portal without doing any harm to any functionality ( Although I want to avoid that as there are so many apps).
Is there a way I can add bundle seed ID of all apps in a file and build all apps with that file in project to achieve this ? I know about “keychain-access-groups”, do i need to create a plist file and add bundle seed ID of all application in it ?
Appreciate any help in this regard.
If you have different bundle seed IDs (the ten alphanumeric characters preceding the bundle identifier, the Xs in
XXXXXXXXXX.com.company.application), you can’t share an access group. It’s a restriction on Apple’s part and circumventing it is not allowed. I suggest you find another solution of safely sharing data (possibly outside of the device, on a server, but not iCloud as it has the same restrictions).General information about keychain access groups:
Source: Use Your Loaf