I am putting together a demo app that will pick up keychain items shared via Keychain Access Groups (or Shared Items Groups, as described here).
Sadly, I'm getting the infamous -34018 A required entitlement isn't present
error when trying to load successfully saved items from main app A into my demo app B via SecItemCopyMatching
.
From everything I can tell -- after looking at Quinn's excellent Troubleshooting -34018 Keychain Errors post -- after dumping out the entitlements plist, I see the main app A and my new demo app B both have different ApplicationIdentifierPrefix
'es compared to the team identifier. ApplicationIdentifierPrefix
and TeamIdentifierPrefix
are supposed be the same thing.
I believe (from this ancient StackOverflow answer) it might be due to the fact I'm using my developer certificate (the one associated with my current team) along with Xcode's automatically managed signing may still be accidentally generating random application identifiers.
Is it possible to do keychain item sharing with apps that were built/installed with developer provisioning profiles?