问题标签 [nsubiquitouskeyvaluestore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - iCloud 键值从不同步
我现在有3天的大问题。我正在尝试在 iOS 上使用 iCloud 键值存储,但值永远不会与 iCloud 同步而不会出现明显错误。当我说它不同步时,它真的从不同步。我可以让应用程序运行 15 分钟,关闭它并再次启动它,值仍然不存在。
我在 Apple 会员中心的 App-ID 上启用了 iCloud。我在我的项目的 xCode 功能中启用了 iCloud。一切运行良好,没有错误,但是当我试图获得我的价值时,它根本不存在。
这是我用来与 iCloud 通信的代码(请记住,我需要将它与 Unity3D 一起使用):
所以每次我启动我的应用程序时,我都会检查一个名为“myKey”的具有“test”值的键。
如果它不存在我创建它,如果它存在我显示它。
如果没有挂起,hasKey 函数总是返回 NO。
我试图在我的应用程序的不同位置调用它或通过多次同步它,但当我重新启动应用程序时我从来没有我的价值。
我查看了 iPhone 5(运行 iOS 8.1)日志,没有关于 iCloud 的日志。我已经阅读了另一个主题,您可以通过与 iCloud 同步来访问隐藏的 iCloud 日志,然后导航到 ~/Library/Logs/CrashReporter/MobileDevice/iPhone de *******/DiagnosticLogs。
在这些日志中,我有时会发现:
问题是我在 iCloud 权利中找不到任何 com.apple.developer.ubiquity-container-identifiers。所以我创建了它并给它我们的 AppID 值,但它也不起作用(+ 它在 xCode 中显示一个错误,因为它无法识别它)。
我试图从手机中删除所有配置文件,它不会改变任何东西。我试图在 iCloud 中禁用蜂窝数据,它没有改变任何东西(我也尝试再次启用它,猜猜看,没有改变任何东西)。
我现在真的被困住了,几乎所有我能找到的与这个错误相关的东西都用谷歌搜索了。
谢谢您的帮助。
objective-c - 无法在 NSUbiquitousKeyValueStore 中设置数组
这是我的 Obj-C 代码:
IndexSelected 为 0;textfield.text = @“凯利”。
出于某种原因,staffNamesArray 永远不会被设置。为什么?
ios-simulator - 当应用程序在 dubugger/simulator 中完成运行时,NSUbiquitousKeyValueStore 被删除
我有一个 iPad 应用程序(XCode 6.1、iOS 8.11)在设备上运行良好。但是,每次我使用带有模拟器(8.1)的调试器重新启动应用程序时,商店的所有内容都是空的,从上次运行中保存的内容。仅使用模拟器运行(未连接到调试器)时,数据在存储中。
其他人有这个问题,或者知道为什么它会发生在我的应用程序上?
ios - NSUbiquitousKeyValueStore 不是那么普遍吗?
我正在尝试使用 NSUbiquitousKeyValueStore 存储键值。在安装应用程序时,它们似乎可以正常存储,但如果我从设备上删除应用程序并再次运行应用程序,键值似乎会丢失。这是预期的行为,还是我缺少什么?
我正在存储和检索这样的值:
我已经检查过的内容:
- 我在 Target Capabilities 中启用了 iCloud 和键值存储。
- 我的设备上启用了 iCloud Drive,并且应用程序本身也已启用。
- 我已经等了一段时间才尝试加载这些值,以确保它不仅仅是一个同步问题。
我已经根据Apple 文档为 NSUbiquitousKeyValueStoreDidChangeExternallyNotification在 NSNotificationCentre 注册了一个观察者。在安装后的第一次运行或后续运行时,永远不会调用我的观察者。我的代码(从Apple 文档中剥离)
/li>
其他问题 -
- 有没有办法知道您的数据何时同步到云端?(即上传的数据)
- 或者相反,有没有办法告诉你的应用程序何时从云端成功同步?(即下载的数据)我希望NSUbiquitousKeyValueStoreDidChangeExternallyNotification会通知这个,但由于我没有收到这个通知,我怀疑它只是对于当另一台设备在应用程序打开时更新数据时, Apple 文档似乎证实了这一怀疑:
NSUbiquitousKeyValueStoreServerChange - iCloud 中更改的值。当另一台设备运行您的应用程序的另一个实例并连接到同一个 iCloud 帐户时,就会发生这种情况,它上传了一个新值。”
objective-c - iCloud:使用相同密钥存储的数据在每台设备上都不同
当我尝试像这样在 iCloud 上存储数据时:
当我验证 iPhone 上的内容时,数据已成功更改。
然后,当我在 iPad 上启动应用程序时:
- iCloud 通知应用程序有更改
当我尝试读取这样的值时:
/li>
数据不是我之前用 iPhone 保存的数据!iCloud 包含我的数据的一个非常旧的版本。
所以,我决定像这样从我的 iPad 上删除 iCloud 数据:
之后,iCloud 似乎是空的(上次同步后 iCloud 数据为零)。
但是在我的 iPad 上重新启动应用程序后,iCloud 仍然包含我的数据的一个非常旧版本。
而我的 iPhone 在启动时由 iCloud 通知,它包含键 @"TheKey" 的良好值。
我的应用程序是通用的,所以 iCloud 的参数在两个设备上是相同的。
我将用户的二进制加密数据存储在该密钥上。这些数据用于同步所有用户设备。
我不想使用 iCloud Drive 保存文件,因为我不想让用户有可能通过使用其他应用程序或访问 www.iCloud.com 来访问该文件
在我所有的设备上,我都使用同一个 iCloud 帐户。
非常感谢您的帮助。
ios - iOS8 - iCloud Drive Key-Value-Store
对于 iOS7,我将有关 inApp 购买的用户信息存储在 iCloud keyvalueStore 中,以便在当前设备和用户的所有其他 iOS 设备上进行恢复。在用户能够购买东西之前,我正在检查 kvs 的 iCloud 文档和数据是否处于活动状态,以确保恢复工作......
检查看起来像这样(适用于 iOS7):
迁移到 iOS8 并在我的设备上启用 iCloud Drive 后 - 我注意到此检查总是失败。我希望如果激活一次,kvs 会自动迁移到 iCloud 驱动器 -> 所以我假设我只需修复此检查是否 iCloud 驱动器(仅适用于 >iOS8)在设备上处于活动状态 - 对吗?
问题是 - 我不确定如何正确检查 iOS8,因为 API 文档对那个 imho 不是很清楚:-/?!
oO
ios - 为什么 Apple Watch 不与 App delegate 和 NSUbiquitousValueStore 同步?
我在我的视图控制器中运行它:
然后退出应用程序。
在我的 AppDelegate 中,我有:
在我的 InterfaceController 我有:
在 iPhone 应用程序中,我看到索引设置为整数 > 0 的日志。
为什么此字符串在应用程序之间不同步?我可以发送数组。是的,我已经配置了应用程序组,这就是 - (void)application:(UIApplication *)application handleWatchKitExtensionRequest:
.. 将如何响应。
但是当我运行 Apple Watch 应用程序时,索引总是以@“0”的形式出现。
macos - 无法设置 NSUbiquitousKeyValueStore 键
我正在编写一些代码来保存用户偏好。
我在打电话setSettings()
之前打电话getSettings()
,但是打电话时getSettings()
,似乎 总是假的settingsExist
。getSettings()
为什么会这样?这是保存此类信息的最佳方式吗?
ios - iCloud:在 iOS 和 tvOS 之间同步键值存储
我有一个在 iOS 和 tvOS 上运行的应用程序。我已经使用 iCloud 键值存储设置了设置同步:
- iOS 版本使用 iCloud KVS 同步数据。这工作正常。
- tvOS 版本使用 iCloud KVS 同步数据。也工作正常。
- 但是,我无法让iOS 和 tvOS 版本相互同步。
我相信我已正确执行所有步骤:
- 相同的应用程序 ID,相同的捆绑包 ID。
- 在所有设备上登录相同的 iCloud 帐户。
- 权利中的字段
com.apple.developer.ubiquity-kvstore-identifier
是相同的 ($(TeamIdentifierPrefix)$(CFBundleIdentifier))。 - 键名相同
- 两个应用程序都通过网络同步(不仅仅是本地缓存)。
有没有人让跨 iOS/tvOS 同步工作?这甚至可能吗?谢谢你的任何建议。
c# - Xamarin.iOS iCloud 访问 iCloud 键值存储
我正在尝试在 Visual Studio 2013(Mac 上的 Xcode 7.2.1)中为我的 Xamarin.iOS(v4.0.30319)应用程序包含 iCloud 键值存储支持,但不断得到:
错误 MT1019:您的应用程序具有当前配置文件不支持的权利,并且无法安装在设备“我的 iPhone 4”上。请查看 iOS 设备日志以获取更多详细信息(错误:0xe8008016)。
顺便说一句,设备上没有日志,至少 xCode 不会显示任何日志。
我在 Xcode 中有另一个用本机目标 C 编写的应用程序,它也支持 iCloud,而且工作正常。所以我做了同样的事情:
- 在 developer.apple.com 上创建了名为“iCloud.[my team id].[my bundle id]”的 iCloud 容器(我使用了准确的值,没有宏)
- 在 developer.apple.com 上为 [my bundle id] 创建了应用程序 ID,并为容器“iCloud.[my team id].[my bundle id]”启用了 iCloud
- 创建了开发配置文件
- 在 Xcode 中安装它。
- 在“iOS Bundle Signing”中的 Visual Studio 中选择它
- 此处编写的已编辑权利:
之后 Xamarin 不想在设备上安装我的应用程序。我更改了容器的名称,从权利中删除了 com.apple.developer.ubiquity-container-identifiers 并将其返回(始终删除所有配置文件,重新下载到 xcode,重新启动 Visual Studio,清理解决方案,删除设备上的配置文件,卸载现有应用程序)。只有当我从权利中删除 com.apple.developer.ubiquity-kvstore-identifier 和 com.apple.developer.ubiquity-container-identifiers 时,Xamarin 才会将应用程序安装到设备。但显然 NSUbiquitousKeyValueStore 不起作用。我的设置有什么问题?