gpt4 book ai didi

ios - 在应用程序扩展和主应用程序中使用 NSUbiquitousKeyValueStore

转载 作者:行者123 更新时间:2023-12-01 15:45:12 24 4
gpt4 key购买 nike

我已经设置了应用程序组并且正在使用 NSUserDefaults initWith suiteName为了允许我的应用程序和我的扩展程序访问同一组首选项。我现在想用一个可以通过 iCloud 同步这些首选项的实现来替换该实现(如果它们启用了 iCloud)。

我已经阅读了 NSUbiquitousKeyValueStore这似乎正是我所需要的。但是,文档指出“应用必须始终使用默认的 iCloud 键值存储对象来获取和设置值。此存储与您的应用在其权利请求中提供的唯一标识符字符串相关联。”这让我相信,如果我采用这一点,应用扩展将不会访问与主应用相同的商店。扩展编程指南中没有提到共享这样​​的存储,它只提到了一个允许访问相同首选项但仅存储在该设备本地的解决方案。

如何实现也可以从该应用程序的扩展程序访问的简单首选项的 iCloud 同步?

另一个快速问题,iOS 8 有什么变化吗?我知道 iCloud API 发生了重大变化,但也许他们没有触及简单的首选项同步,只是实现了 iCloud Drive?

最佳答案

我最近遇到了同样的问题,我在这里分享我的解决方案,希望它可以帮助某人。
com.apple.developer.ubiquity-kvstore-identifier主应用程序和扩展应用程序之间必须相同。

如果您创建一个扩展应用程序(今天的扩展),您将拥有 2 .entitlements文件,一个用于主应用程序,另一个用于扩展应用程序。

您可以找到 com.apple.developer.ubiquity-kvstore-identifier 的值来自 .entitlments文件。您需要确保 .

我正在使用 $(TeamIdentifierPrefix)$(CFBundleIdentifier)对于两者 .entitlements文件,这是错误的。因为 $(CFBundleIdentifier)是 bundle id,它实际上是主应用程序和扩展应用程序的不同值。

修复使用硬编码包 ID:$(TeamIdentifierPrefix)com.youcompnay.app .

关于ios - 在应用程序扩展和主应用程序中使用 NSUbiquitousKeyValueStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964641/

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