We use NSUserDefaults -initWithSuiteName with suite named "group.com.example" to share data beween our app and extension, and with another app of ours. I just noticed a console msg in Xcode 8 GM seed (app running on iOS 10.0.1):
[User Defaults] Failed to read values in CFPrefsPlistSource. Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
I know the solution is to prefix the team id to the group, however I can't find any documentation that says you *must* do this. It seems to be working fine, and we've already shipped another app that uses the non-prefixed suite name, so we'd have to rerelease that app if we change it for the new one.
Furthermore, when we were releasing an OS X app this summer we failed App Store validation with this error:
Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on Mac OS X. Specifically, value '[group.com.example]' for key 'com.apple.security.application-groups' is not supported. This value should be a string or an array of strings, each starting with your TEAMID followed by a dot '.' .
So on the Mac we were forced to prefix the team id, but our iOS validation is currently passing without it.
I'd really like to know before we release another app (where this working correctly is critical) whether this is a requirement, or highly recommended, or doesn't matter.
thanks for any insight...
Eric