iOS / OSX应用程序组ID,使用“组”或“team-id”启动它们.

在配置门户(或任何现在称之为)中创建应用程序组ID时,它表示为“输入您的应用程序组的唯一标识符,从字符串”组“开始,并且似乎在输入字段中强制执行.此外,许多示例代码使用“group.com.company.blah”之类的应用程序组标识字符串.

但是,我已经看到在整个文档中链接的明确部分,
App Sandbox Design Guide > App Sandbox In Depth > Container Directories and File System Access > The Application Group Container DirectoryEntitlements Key Rerefence > Enabling App Sandbox > Adding an App to an App Group与此直接相矛盾,明确表示“必须从您的开发团队编号开始,其次是一段时间”.

这些部分中给出的示例分别如“Z123456789.com.example.app-group”和“DG29478A379Q6483R9214.HolstFirstAppSuite”. (呃,最后一个一个超级奇怪的团队身份还是什么?)

所以有了这个不一致的情况,我该怎么办才能使应用程序组ID工作?我应该在配置门户“group.TEAM-ID.com.example.blah”中输入?我应该在我的源代码字符串中使用相同的字符串,也可以省略“组”.部分就像许多代码示例一样?或者是文档错误,团队ID是不需要的?

上下文…我一直在尝试更新一个iOS Cocoa的测试应用程序,所以我可以看到扩展名< - >应用程序通信在行动.将我的控件中的应用程序ID和组ID更新为一个,当使用类似于项目原始组的组ID时,如“group.com.mycompany.thingie”,我看到containerURLForSecurityApplicationGroupIdentifier:只返回nil和nothing else有修复.

更新(为了清楚起见,为了清楚起见,请告诉我这个Q是多少点击)事实证明,这个东西比我原来以为更宽容,因为没有结果是(主要是)我的做法.看到答案&它的评论线程.我没有检查文件文件例子比较清楚.

解决方法

当您进入“应用程序组”部分并首次生成应用程序组时,在“证书,标识符和配置文件”中的 https://developer.apple.com上,所需的所有内容都是强制执行的group.com.companyname.appname

只要com.companyname.appname与您将目标的通用组件标识符进行设置相匹配,那么您应该可以转到“功能”选项卡,打开“应用程序组”,单击刷新符号和组在“配置门户”中创建的应用程序应该出现在“group.com.companyname.appname”中,您可以选择将其关闭,然后会出现权限错误.点击“修复问题”应该自动解决.

现在,如果您导航到您的权利文件,您会注意到“com.apple.security.applications-groups”将有一个项目,它将被设置为完全相同的“group.com.companyname.appname”值.

我已经在设备上进行了测试,没有任何问题.这并不能解释文档的不一致,但我可以保证这一点.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...