"found no keychain client entitlements" after upgrade
See original GitHub issueI’m posting a new bug since this is happening after the “automate keychain sharing” changes earlier this year (#216).
I upgraded to the latest NS (3.1), firebase, firebase-plugin (4.0.3), pod, etc., and now I’m getting the error “found no keychain client entitlements”. Everything goes crazy after that.
To see if it had something to do with the latest NS, I cloned your demo app and ran it. It works. Then I ran tns update
to update to NS 3.1. It still works. So, there must be something strange I’ve done (that may be unrelated to the upgrade).
To check that it’s not something weird left-over during the upgrade, I completely deleted my app and re-cloned it. Still get the same error.
Just before this started happening, I opened my platform/ios/XX.xcodeproj file in XCode (latest version, 8.3.3) and played around with it, looking at how to upload it for testing. It’s possible I did something there, but since it still happens when I tns platform clean ios
and tns run ios
it’s hard for me to see what it was. I am not yet an Apple Developer (waiting for some info before I join), so maybe I inadvertently changed something, but the simulator runs my app just fine – until I try to do anything with firebase.
I’m not sure where to look or what to try. Completely uninstall and reinstall XCode?
Issue Analytics
- State:
- Created 6 years ago
- Comments:27 (12 by maintainers)
Top GitHub Comments
@davecoffin I had the same issue that you encountered where simulator builds need the entitlements file you mention but then device builds result in entitlement errors unless those entitlements are removed. I have found that when I use the following *.entitlements file, it works for both device and simulator builds:
Note - replace “com.Company.Product” with your bundle identifier.
This is the entitlements entry that Xcode puts in when you enable “Keychain Sharing” in the project’s capabilities. Additional details can be found in the Apple documentation Keychain Services Programming Guide - Access Groups which state that:
Device builds work without specifying the entitlement because they are always signed and given the above entitlement. Unsigned simulator builds need to be explicitly given this entitlement.
@gbonline I fixed this by adding an entitlements file to App_Resources/iOS. This will make it work on the emulator, but when you build on a device you need to remove the entitlements file. PITA, but thats the way I have to do it. Create a file called yourappname.entitlements, the contents should look like this: