gpt4 book ai didi

iphone - WatchKit 扩展看不到应用组 NSUserDefaults 的更新

转载 作者:行者123 更新时间:2023-12-03 19:49:56 25 4
gpt4 key购买 nike

我已经看到了几个与此相关的问题,并尝试了提供的所有答案,但这仍然对我不起作用。

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

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

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

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

在我的应用程序和扩展程序中,我通过以下方式获取对用户默认值的引用

NSUserDefaults *sharedAppDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.theYawns.Sorcerers-Apprentice"]; 

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

我的 WatchKit 扩展包 ID 与我的 iPhone 应用程序包 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

最佳答案

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

从 XCode 目标“功能”选项卡看来,我已设置了所有正确的权利。我可以在我的项目中看到“权利”文件,将其打开,然后查看它是否已正确设置。

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

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

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

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

关于iphone - WatchKit 扩展看不到应用组 NSUserDefaults 的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com