【问题标题】:How to test iCloud synchronisation between Cocoa app and iOS app如何测试 Cocoa 应用和 iOS 应用之间的 iCloud 同步
【发布时间】:2014-07-14 18:24:25
【问题描述】:

我的问题很简单:

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

我在 cocoa 应用中做了 iCloud 初始化

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataUpdatedFromCloud:) name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification object:[NSUbiquitousKeyValueStore defaultStore]];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];

和选择器:

+(void)dataUpdatedFromCloud:(NSNotification *)notification {
    NSLog(@"dataUpdatedFromCloud: %@", [[NSUbiquitousKeyValueStore defaultStore] objectForKey:@"theKey"]);
}

为了在数据来自 iCloud 时捕获数据。

我在 iOS 应用程序中做的所有事情都是一样的,当我在 NSUbiquitousKeyValueStore 中存储数据时需要额外的操作:

// Script 1
[[NSUbiquitousKeyValueStore defaultStore] setDictionary:@{@"id":@1} forKey:@"theKey"];

我的测试场景是:

  1. 在 Xcode 中运行 cocoa 应用程序
  2. 在我的设备中运行 iOS 应用
  3. 在 iOS 应用程序中,我有一个按钮,它调用 Script 1
  4. 我希望 dataUpdatedFromCloud 在 Cocoa 应用程序上在 10-20 秒内被调用,但它没有!!!

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

【问题讨论】:

    标签: objective-c macos cocoa icloud nsubiquitouskeyvaluestore


    【解决方案1】:

    通过重置 iCloud 的文档和数据,我在 iCloud 同步方面取得了一些成功,如下所述:http://support.apple.com/kb/HT5824

    根据我的经验,有时 iCloud 会对其已同步的内容和位置感到困惑,尤其是当您进行重复的相同更新时,测试更有可能发生这种情况。

    【讨论】:

      【解决方案2】:

      嗯,可能,但它可能失败的原因包括:

      • 两个应用程序上的 iCloud 容器 ID 不完全相同。一方面这是显而易见的,但另一方面这是最容易搞砸的事情,所以再检查一次。
      • iCloud 容器 ID 正常,但配置文件实际上并未在两个应用程序中启用 iCloud。您应该在两个应用程序中检查 ubiquityIdentityToken 以验证这一点。
      • 该值已同步,例如,当应用程序未运行时。只有在应用程序运行时发生更改并且新值与旧值不同时,才会发布您要查找的通知。由于您始终将 @1 设置为值,因此完全有可能已经收到该值并且新的尝试没有改变任何东西。对于测试,将@1 替换为@([NSDate timeIntervalSinceReferenceDate]) 之类的内容可能会有所帮助,以确保每次都能获得不同的值。
      • iCloud 暂时混乱/关闭/损坏/只是很慢。虽然 10-20 秒是合理的,但没有性能保证。如果它在 30 秒甚至 30 分钟后出现,它仍然像宣传的那样工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 2018-01-28
        • 2011-12-24
        • 2014-03-01
        • 2016-08-11
        • 1970-01-01
        • 2012-07-02
        相关资源
        最近更新 更多