【问题标题】:WatchKit extension doesn't see updates to NSUserDefaults for App GroupWatchKit 扩展没有看到对 App Group 的 NSUserDefaults 的更新
【发布时间】:2015-03-16 16:06:04
【问题描述】:

我已经看到了几个关于此的问题,并尝试了提供的所有答案,但这仍然不适合我。

我正在尝试在我的 iPhone 应用程序和它的 WatchKit 扩展程序之间共享一些小数据(字符串和布尔值)。 (如果有任何区别,则 WK 应用程序的 GlanceController 正在读取该信息)

通过开发者网站,我创建了一个应用组 (group.com.theYawns.Sorcerers-Apprentice)。如果我查看“应用程序 ID”,我的应用程序(com.theYawns.Sorcerers-Apprentice)似乎有两个相同的 ID,外加一个用于扩展程序的 ID(com.theYawns.Sorcerers-Apprentice.watchkitextension)。其中每一个都启用了“应用程序组”(用于开发和分发),如果我编辑应用程序 ID,则会选择应用程序组。

我已在应用程序和扩展程序的功能中打开“应用程序组”。一个问题我会定期 - 一天几次,但不是每次构建 - 如果我进入并查看“功能”选项卡,我有一个红色的感叹号,表示“将应用程序组”权利添加到您的权利文件中。如果我查看权利文件,权利就在那里,如果我单击“修复问题”,红色感叹号将变为复选标记。但事实上每天需要多次执行此操作,这让我担心有些不对劲。

我在 XCode 首选项下多次刷新了我的配置文件,虽然我没有在权利下看到应用组图标,但如果我将鼠标悬停在弹出的工具提示中,我确实会看到应用组。

在我的应用和扩展程序中,我都通过

获得了对用户默认值的引用
NSUserDefaults *sharedAppDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.theYawns.Sorcerers-Apprentice"]; 

我还尝试在每次写入之后和我的 WatchKit 尝试读取之前添加一个 [sharedAppDefaults synchonize],以防万一事情没有被清除。 (没有任何区别)。

我的 WatchKit 扩展包 ID 与我的 iPhone App 包 ID 不同,这是我在不同线程上看到的答案之一。

我还添加了一个 NSTimer 以每 10 秒刷新一次,因此如果在获取更改时出现时间问题,我希望它在一两个更新周期后自行解决,但事实并非如此。

真的很难过......似乎其他人已经通过其他线程的答案解决了他们的问题,但没有一个对我有用。

我搜索过的其他主题包括:

Why won't app groups work inside my WatchKit extension?

https://stackoverflow.com/questions/27047455/how-to-shared-storage-between-app-and-extension-with-app-group-and-

WatchKit NSUserDefaults and NSKeyedUnarchiver issue

【问题讨论】:

    标签: iphone xcode nsuserdefaults watchkit ios-app-group


    【解决方案1】:

    好的,我在 Apple 开发者论坛中找到了答案。

    从 XCode 目标的“功能”选项卡看来,我设置了所有正确的权利。我可以在我的项目中看到“权利”文件,打开它,发现它设置正确。

    但是——如果我查看应用程序目标的“构建设置”选项卡下的“代码签名”部分,则没有显示任何权利文件。 (对于 WatchKit 扩展,这一切都正确显示,但对于 iPhone 主应用程序却没有)。

    当我在代码签名下插入我的权利文件的名称时,一切都开始工作了。

    这对我来说似乎是一个错误——我不相信同一个目标的“功能”选项卡和“构建设置”选项卡应该在不同的地方寻找权利。但是想在这里发布对我有用的答案,以防其他人遇到这个问题。

    总结:为确保权利正确,您必须查看功能中正确设置的开关,并且您必须查看构建设置/代码签名下引用的权利文件。

    【讨论】:

      【解决方案2】:

      您必须将权利添加到应用扩展的配置文件中。为此,请登录到您的开发者帐户以添加权利,然后下载最新的配置文件。要验证应用组是否已启用,请在“TextEditor”中打开下载的配置文件并搜索“应用组”。如果您做得正确,这将向您显示结果。使用这些新下载的配置文件,它会在功能中显示复选标记。

      【讨论】:

        猜你喜欢
        • 2019-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多