Swift 启用应用程序组时使用'defaults'CLI:";“域不存在”;
我正在开发一个macOS应用程序,带有嵌入式,我希望该应用程序和扩展共享 该应用程序已沙盒化,以便将来在应用程序商店中分发 我按照这里的指示:Swift 启用应用程序组时使用'defaults'CLI:";“域不存在”;,swift,macos,macos-catalina,Swift,Macos,Macos Catalina,我正在开发一个macOS应用程序,带有嵌入式,我希望该应用程序和扩展共享 该应用程序已沙盒化,以便将来在应用程序商店中分发 我按照这里的指示: 这两个目标都是同一应用程序组的一部分,如权利中所示: com.apple.security.app-sandbox com.apple.security.application-groups $(TeamIdentifierPrefix)com.stormacq.mac.MyApp com.apple.security.files.user-select
com.apple.security.app-sandbox
com.apple.security.application-groups
$(TeamIdentifierPrefix)com.stormacq.mac.MyApp
com.apple.security.files.user-selected.read-only
suiteName
访问UserDefaults:
let defaults=UserDefaults.init(suiteName:“TEAM_ID.com.stormac.MyApp”)
//其中TEAM_ID是用于签署应用程序的实际团队ID(类似于123AB45CDE)
Container:(null),
很奇怪
将创建组容器和共享首选项文件(并包含由“我的代码”设置的正确默认值):
我使用的是Xcode 11.7(Swift 5)和macOS 10.15.6
共享首选项文件在~/Library/Group Containers
目录中创建,但是defaults
命令行没有看到它
➜ ~ defaults read com.stormacq.mac.MyApp
2020-09-07 10:25:53.188 defaults[82827:947786]
Domain com.stormacq.mac.MyApp does not exist
➜ ~ defaults read TEAM_ID.com.stormacq.mac.MyApp
2020-09-07 10:26:05.088 defaults[82857:947925]
Domain TEAM_ID.com.stormacq.mac.MyApp does not exist
非共享首选项也可以正确使用
是否可以默认值
读取分组容器
➜ ~ defaults read com.stormacq.mac.MyApp
2020-09-07 10:25:53.188 defaults[82827:947786]
Domain com.stormacq.mac.MyApp does not exist
➜ ~ defaults read TEAM_ID.com.stormacq.mac.MyApp
2020-09-07 10:26:05.088 defaults[82857:947925]
Domain TEAM_ID.com.stormacq.mac.MyApp does not exist