gpt4 book ai didi

ios - 在多个应用程序之间共享公共(public)键值存储不起作用

转载 作者:可可西里 更新时间:2023-11-01 03:14:58 25 4
gpt4 key购买 nike

我正准备发布我的一个应用程序的第二个版本。我将在以前版本的新 bundle ID 下发布这个新版本。在以前的版本中,我使用 iCloud 键值存储来保存一些设置和其他杂项信息。这是我的 v1 权利文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
</array>
</dict>
</plist>

按照 http://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.html 中的说明进行操作后在“为多个应用程序配置公共(public)键值存储”下,这是我的 v2 授权文件的样子:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)com.companyname.MyApp</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
</array>
</dict>
</plist>

根据文档,v2 现在应该从与 v1 相同的键值存储中读取。但是,在执行简单测试时,它会失败。这是我重现的方式。

  1. 打开 MyApp 1.0。将 bool 值“YES”写入键“InstalledVersion1”到键值存储。

    NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
    [store setBool:YES forKey:@"InstalledVersion1"];
  2. 打开 MyApp 2.0 并从存储中读取该值。

    NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
    [store synchronize];
    NSLog(@"%@", [store dictionaryRepresentation]);

这会打印 {}

它应该打印类似 { "InstalledVersion1"= 1; }

...但事实并非如此。

我做错了什么?我是否需要稍微耐心等待商店同步?

如果您感兴趣,请查看设备日志:https://gist.github.com/dlo/688f187c75fd1b1fdc78 (在调试器中运行 p (void)[[NSUbiquitousKeyValueStore defaultStore] _printDebugDescription] 之后)。

最佳答案

这个答案有点荒谬,但这里适用于面临类似问题的其他人。

这是我所做的。

  1. 我的 iCloud 存储中有一个名为 CommonDocuments 的条目。我删除了它。
  2. 我打开了通过蜂窝数据传输 iCloud 文档。

在尝试了三天之后,事实证明是 iCloud 存储中的一个模糊项目和看似无关的设置解决了这个问题。

如果这两件事都不适合你,祝你好运。祝一切顺利。

关于ios - 在多个应用程序之间共享公共(public)键值存储不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176069/

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