我有一个附带 topshelf 扩展的 tvOS 应用程序。
对于共享 UserDefaults 的主应用程序和扩展程序,有必要使用表单的唯一标识符创建一个应用程序组,group.com.organisation.app.identifier
并且UserDefaults.standard
在打开 UserDefaults 时不打开而是提供应用程序组名称,例如let defaults = UserDefaults(suiteName: "group.com.organisation.app.AppGroupTest1")
.
这适用于在应用程序及其扩展程序之间共享默认值,但添加 Settings.bundle 文件以便可以通过系统设置面板设置默认值将不起作用。
Apple 的指导方针规定 Settings.bundle 的 Root.plist 必须包含ApplicationGroupContainerIdentifier
设置为与应用程序使用的相同应用程序组标识符的密钥,但是在测试时,即使使用最少的应用程序设置,组容器标识符也不受Settings.bundle 和 Settings.bundle 所做的所有设置最终都在 UserDefaults.standard 中。
我已经尝试实现与 iOS 项目相同的最小 app+bundle 项目,并且设置被传播到那里的应用程序组的 UserDefaults 中,正如预期的那样。我是否在设置包的实现中遇到了 tvOS 错误,或者 iOS 和 tvOS 中的实现之间是否存在未记录的差异?