【问题标题】:Using iCloud in iOS Simulator在 iOS 模拟器中使用 iCloud
【发布时间】:2011-12-09 05:43:37
【问题描述】:

在我的应用程序中,当我尝试在 iOS 模拟器中运行代码时:

NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:@"2VHM28566N.com.eept.TestICloud"];
NSLog(@"IS ICloud : %@", [iCloudURL absoluteString]);

显示 iCloudURL 为 nil。

我们可以在没有 iPhone 设备的情况下使用 iCloud 吗?

【问题讨论】:

  • @"2VHM28566N.com.eept.TestICloud" 是什么?当我这样做时,我只是将 nil 作为参数传递。你能解释一下这是做什么的吗?
  • 2VHM28566N.com.eept.TestICloud 是此人的相关应用的容器 ID。如果您查看您的权利文件或 iCloud 容器列表,您将在任何使用 iCloud 的应用程序中看到类似的字符串。如果您将 nil 作为参数传递,系统将使用它在列表中看到的第一个 iCloud 容器。

标签: ios5 icloud ios-simulator


【解决方案1】:

我今天尝试在模拟器上运行我的 iCloud 应用程序,但据我所知,没有在模拟器中启用 iCloud 的选项。我查看了设置,但没有运气。所以答案是否定的,除非您在实际设备上进行测试,否则您无法真正测试 iCloud。

如果有人有解决方法,那就太好了。总是在设备上测试您的应用程序有点乏味。

【讨论】:

【解决方案2】:

我知道这是一个老话题,但您可以通过将部署目标更改为“设备”来测试 iCloud。通过 USB 将您的设备插入,开始乐趣吧。

我认为这样做是出于安全原因,并且有一个很好的理由。

因为您的设备将拥有与您的 iCloud“存储桶”以及您的 App Bundle ID 相关联的移动配置证书,它确保只有您(您的应用和允许的设备)可以访问您配置的 iCloud 存储桶。

如果您可以在没有所有这些证书和 ID 的情况下在模拟器上运行它,那么您可以轻松地从您下载的任何其他应用程序中获取团队 ID,使用该标识符将一个项目拼凑在一起,而无需证书开发者,有了 iCloud 存储桶,你就可以完全访问另一个 App 的存储桶。

我为解决这个问题所做的只是订购了一个 5m 的 USB 延长线,这样我就可以将我的 iPad、iPod 和 iPhone 放在我面前的桌子上,而不必在测试时蹲在桌子下面或坐在尴尬的位置。

edit 只是为了添加一个稍微清楚一点的答案,关于 allthewayapps 询问捆绑 ID 的内容。

2VHM28566N.com.eept.TestICloud

在这种情况下由 3 个部分组成:

2VHM28566N  -  Being the TeamID which Apple assign you when you register as a developer

com.eept  -  Reverse domain notation of the App's related website i.e. Apple apps would have com.apple

TestICloud - The name of that app itself.

简而言之:

teamid.com.yourdomain.appname

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    在 Xcode 5 中:

    iOS 模拟器现在支持 iCloud 同步文档和 KVS 数据 在应用程序内,使应用程序能够使用 iCloud 在设备之间同步。 此功能在测试时很有用,以确保应用程序文档 并且数据在多个设备之间正确同步。

    注意:在 iOS 模拟器中运行应用程序后,请登录 Apple 使用设置应用程序的 ID 帐户。登录后,使用“触发器 调试菜单中的“iCloud 同步”命令告诉模拟器同步 与其他设备。

    【讨论】:

    猜你喜欢
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2015-04-07
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    相关资源
    最近更新 更多