use*_*435 18 nsuserdefaults ios ios-app-extension ios-app-group watchkit
我已经看过关于在主机应用和应用扩展之间共享NSUserDefaults数据的所有其他帖子,但我仍然无法工作.以下是我所做的一切:
毕竟,这段代码仍然不起作用:
// in the host app
NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"];
[testDefaults setObject:@"TEST" forKey:@"foo"];
[testDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)
然后:
// in the extension
NSUserDefaults *testDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mycompany.foo"];
NSLog(@"%@", [testDefaults objectForKey:@"foo"]);
Run Code Online (Sandbox Code Playgroud)
这导致:
(null)
Run Code Online (Sandbox Code Playgroud)
当我查看Xcode首选项时,我注意到这些图标,其中没有一个具有"App Group"图标:

但正如我之前所说,我在设置应用程序组后清除了我的钥匙串,证书和配置文件.因此,如果这实际上是问题,我如何将权利添加到配置文件?
我错过了什么?我是新鲜的想法.
救命?
编辑:访问组正在我的今日和Safari扩展中工作,而不是在WatchKit扩展中.我不知道为什么,并且所有构建设置似乎都以相同的方式配置.
编辑2:对于那些坚持我的功能设置不正确的人,这里有一个截图:
我有类似的问题.我注意到,我的WatchKit扩展和WatchKit应用程序具有相同的包标识符.我更改了WatchKit App的bundle id.此外,我没有忘记在Extension的info.plist中更改NSExtensionAttributes/WKAppBundleIdentifier以匹配该ID.现在一切正常.我希望这能帮到您!
简而言之:WatchKit App和Extension的捆绑标识符应该是不同的!
| 归档时间: |
|
| 查看次数: |
6197 次 |
| 最近记录: |