有点被这件事难住了。我正在开发一个需要通过 NSUserDefaults 与其容器应用程序通信的 Xcode 扩展。为此,您需要在扩展程序和容器应用程序中设置应用程序组权利,签署您的应用程序,然后像这样初始化默认值...
let defaults = UserDefaults(suiteName: "group.com.MyCo.TestCode")!
问题是即使没有抛出错误,扩展程序和应用程序也会获得两个不同的默认副本。
但是,如果我返回并在添加组时,将 TeamIdentifierPrefix 保留在原位,我最终会得到一个这样的组名......
"03V7NBU5AX.group.com.MyCo.TestCode"
我在这样的初始化中使用它......
let defaults = UserDefaults(suiteName: "03V7NBU5AX.group.com.MyCo.TestCode")!
...现在一切正常!但为什么第一个案例不起作用?我见过的每个教程都说只要应用程序组匹配它就可以工作,而且我见过的没有一个教程提到团队标识符前缀。这是特定于 Xcode 扩展的东西吗?