问题标签 [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.

0 投票
1 回答
254 浏览

objective-c - 如何使 iCloud 数据同步用户特定?

当我将用户数据(如果用户请求)同步到 iCloud(使用NSUbiquitousKeyValueStore)时,它会正确同步。但是,当我使用 2 个不同的设备和 2 个不同的 Apple ID 时,我在两者上都看到了相同的数据,并且我仍然能够在它们之间进行同步。因此,多个用户可以看到彼此的数据。

有什么方法可以使同步用户具体化,还是我在某处犯了错误?

我使用的一些代码:

问题已解决:

我刚刚在 App Store 中更改了我的 Apple ID,我忘记在 iCloud 中进行更改。这解决了我的问题,一切正常。

0 投票
1 回答
766 浏览

ios - 依靠 NSUbiquitousKeyValueStore 存储基本数据是否安全?

我了解到它NSUbiquitousKeyValueStore始终可用,即使没有设置 iCloud 帐户也是如此。这让我相信我可以安全地在其中存储重要数据,而无需在NSUserDefaults.

但是,在他们的文档中,Apple 说如下:

避免将此类用于离线时对您的应用行为至关重要的数据;相反,将此类数据直接存储到本地用户默认数据库中。

我是否忽略了不使用NSUserDefaults(或其他离线商店)作为备份时可能出现的问题?还是 Apple 保护过度,依赖它是否安全NSUbiquitousKeyValueStore

0 投票
2 回答
446 浏览

objective-c - 如何测试 Cocoa 应用和 iOS 应用之间的 iCloud 同步

我的问题很简单:

我现在正在开发将数据存储在iCloud(键值存储)中的Cocoa 应用程序。为了测试iCloud 同步,我构建了一个简单的iOS 应用程序,并将其安装在我的设备中。

我在可可应用程序中进行了iCloud 初始化:

和选择器:

以便在数据来自 iCloud 时捕获数据。

我在 iOS 应用程序中做的所有事情都是一样的,当我在NSUbiquitousKeyValueStore中存储数据时会采取额外的行动:

我的测试场景是:

  1. 在 Xcode 中运行可可应用程序
  2. 在我的设备中运行 iOS 应用程序
  3. 在 iOS 应用程序中,我有一个按钮,它调用脚本 1
  4. 在这里,我希望在 Cocoa 应用程序上会在 10-20 秒内调用dataUpdatedFromCloud ,但事实并非如此!!!

我做的一切都是正确的,还是我理解错误?

0 投票
1 回答
293 浏览

ios - 用户可以修改存储在 NSUbiquitousKeyValueStore 中的值吗?

我正在使用NSUbiquitousKeyValueStore在 iCloud 上存储用户数据字典(宝石、用户名等)。

宝石可以在应用程序中作为消耗性 IAP 购买,然后用户拥有的宝石总数存储在NSUbiquitousKeyValueStore. 如果用户能够修改此值,那么这将对我的业务模型产生很大影响,用户可以绕过 IAP 并直接修改此值。

所以问题是安全性如何NSUbiquitousKeyValueStore,它是否适合我的场景?我发现了一些关于 SO 的相关问题,但没有明确的答案。

0 投票
1 回答
827 浏览

ios8 - NSUbiquitousKeyValueStore 不工作......根本

我有什么似乎是一个独特的问题。我的 NSUbiquitousKeyValueStore 在模拟器中的启动之间根本无法工作。也就是说,我什至没有谈论 iCloud 同步或类似的东西,我无法让它通过下面的简单测试!

每次我在模拟器中运行我的 iOS 8 应用程序时,都会打印出相同的消息。

是的,iCloud 已在权利中配置和启用。是的,甚至“键值存储”也被选中。是的,模拟器帐户是为 iCloud 同步设置的。

似乎即使是本地支持的 SQLite DB 在每次运行之间都被破坏了?我不知所措。

0 投票
1 回答
160 浏览

ios - 有什么方法可以确定 iCloud 键值存储的大小以确保它小于 1MB?

有没有办法确定应用程序分配的 1MB 中有多少用于 iCloud KVS?我检查了设置> iCloud 路由,但我不认为它是否是 KVS 显示在那里。我只是存储了一些字符串的数组,但只是想看看我还能同步哪些对用户有帮助的东西。谢谢!

0 投票
1 回答
223 浏览

ios - 如何在应用程序的 iCloud 生命周期中仅显示一次请求种子 iCloud 的 AlertView?

我有一个问题接近尾声。

我的工作是基于这样的信念/经验,即多次播种 iCloud 是一个坏主意,如果用户可以做错事,他可能迟早会这样做。

我想做的事:

A. 当用户将应用偏好“启用 iCloud”从“否”更改为“是”时,显示 AlertView 询问(是或否)用户是否希望使用现有的非 iCloud 数据播种云。

B. 确保应用程序仅在 iCloud 帐户上为 iCloud 播种一次,避免在第一次播种完成后放置 AlertView。

我的方法:

  1. 按照 Apple 的有关正确使用 NSUbiquitousKeyValueStore 的文档,我在 - (void)application: dFLWOptions 中使用以下方法:

    }

  2. 在应用程序顶部附近包含以下代码:dFLWO:

    /li>
  3. 加载 iCloud Store 后,仅在从未完成播种的情况下使用非 iCloud 数据播种

    /li>
  4. 播种完成后,请执行以下操作以防止任何重复播种:

    /li>
  5. 在上述过程之前,请务必使用以下方法完全重置 iCloud:

    恕我直言,这是我的问题的一个非常整洁的解决方案,但我无法完成它。

    我的问题:

    我如何响应上面 updateKVStoreItems: 的第一个通知?这是一个包含错误信息的通知。我说该值为 TRUE,但我从未将其设置为 TRUE。如何为 NSUbiquitousKeyValueStore 中的键设置默认值?

    我发现第一个通知是有道理的:NSUbiquitousKeyValueStoreInitialSyncChange 当那个注释进来时,bValue 是 YES。这是我的问题。就好像 iCloud/iOS 假定任何新的 BOOL 为 TRUE。我最初需要将此值设置为 NO,以便我可以继续遵循 Apple Docs 并将 NSUserDefault 设置为 NO。然后稍后在播种完成后,最终设置值: YES 为键:@“iCloudSeed”

    我发现我无法从 Apple 中理解以下内容的含义:

    我不太明白下面数字 2 的含义,这是我在网上找到的:

    如果这个问题是 NSUserDefaults 而不是 NSUbiquitousKeyValueStore,我相信我需要去 registerDefaults。

    我快到了,请问我该怎么做!感谢阅读,马克

0 投票
1 回答
341 浏览

ios - iOS 8 的 Today Widget 和 iCloud / NSUbiquitousKeyValueStore

我做错了什么,还是NSUbiquitousKeyValueStore根本不允许从 iOS 8 上的 Today Widget 访问?

我正在尝试访问包含的应用程序NSUbiquitousKeyValueStore,但是,例如,当我 -synchronize; 它返回 0,如失败。

谢谢你,马特

0 投票
1 回答
1296 浏览

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

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

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

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

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

0 投票
4 回答
3139 浏览

ios - NSUbiquitousKeyValueStore 未与 iCloud 同步

我已经尝试了所有内容并阅读了所有主题,但我不知道为什么 NSUbiquitousKeyValueStore 没有存储在 iCloud 上。

• 创建了特定的应用 ID

• 为该 App ID 启用 iCloud

• 创建的配置文件

• 在项目上启用 iCloud

• 设置键值的权利:$(TeamIdentifierPrefix)$(CFBundleIdentifier)

• 在设备上打开 iCloud Drive

但是 NSUbiquitousKeyValueStore 只是在本地保存。当我重新安装应用程序时,它不会从 iCloud 获取信息。

这就是我正在尝试的方式:

如果我删除该应用程序或在新设备上尝试,它在 iCloud 上找不到任何内容。

所以我尝试了这个来确定 iCloud 是否正常工作:

这总是返回“没有 iCloud 访问权限”,我不知道为什么。无论我做什么 URLForUbiquityContainerIdentifier 总是返回 nil。

我在启用了 iCloud 的 iOS 8 设备上运行。

我错过了什么吗?

谢谢!