【发布时间】:2017-12-08 10:02:38
【问题描述】:
我正在尝试在我的主 macOS 应用程序和我创建的扩展程序之间共享数据。
我看到我必须使用“应用程序组”并与“UserDefault(suiteName:“name”)”共享数据
问题:在主应用上打开应用组并添加名称后,我在扩展上打开应用组,列表为空,我没有看到我刚刚创建的组?
有什么想法吗?
顺便说一句:团队简介在应用程序和扩展程序上都是相同的。我试过删除临时文件,清理项目,恢复 Xcode 和计算机。
编辑 1:在 iOS 项目上检测到应用程序组...。
编辑 2:我尝试使用 Xcode 9 但同样的问题。
编辑 3:在证书、标识符和配置文件苹果网站上,您没有 macOS 的“应用程序组”类别,是否已弃用?
编辑 4:如果我添加两者都手动添加组名称,然后我在输出中遇到错误:。
[用户默认值] 无法读取 CFPrefsPlistSource 中的值(域:726328455Z.test,用户:kCFPreferencesAnyUser,ByHost:是,容器:(null)):仅允许将 kCFPreferencesAnyUser 与容器一起用于系统容器,从 cfprefsd 分离.
Edit 5 : 看起来可行,使用此代码成功保存数据
UserDefaults(suiteName: "7263xxx55Z.test")!.set(selectedRow, forKey: "selectedRow")
UserDefaults(suiteName: "7263xxx55Z.test")!.synchronize()
使用这段代码获取,我得到了之前的错误,但我忽略了它
let selectedRow = UserDefaults(suiteName: "726xxx55Z.test")!.integer(forKey: "selectedRow")
【问题讨论】:
-
您是否尝试单击加号并添加组名?
-
是的,我使用了相同的应用名称,按团队编号、按组开始。等等,没有任何效果
-
你有开发者账号的管理员权限吗?
-
是的,我只有 1 个帐户,我是开发者
-
解决方案已解决?
标签: swift xcode macos-sierra today-extension