2012-09-09 40 views
6

目前我只有一个iOS设备,目前它还没有成为问题。但我现在想要将iCloud同步支持添加到我的应用程序(它使用核心数据)。测试与单个iOS设备的iCloud同步

只有当我得到第二个设备时,测试才会变得简单吗?或者是否可以将iOS模拟器与我的设备一起使用,或者假冒iCloud数据以测试iCloud同步?

编辑:不需要太多研究就可以发现iCloud,特别是Core Data,绝对需要大量测试,这当然意味着使用多个设备进行测试!

+3

http://developer.icloud.com/允许您查看已同步干什么到iCloud。 – jrtc27

+1

到目前为止,模拟器不能用于iCloud测试。希望苹果会在某个时候允许。在Mac上配置相同的iCloud帐户,您可以查看您在Mac上同步访问“〜/ Library/Mobile Documents”的内容。 – Jorge

回答

3

您可以使用您的mac作为第二个设备,并采取iOS核心数据代码的后端,并为mac编写测试应用程序。您将不得不将应用程序作为xcode中的沙盒应用程序运行,并将相同的沙盒名称放在应用程序设置中以查看其他每个数据。

为了使这项工作,你需要在配置门户网站创建一个Mac应用程序了(需要Mac开发者许可证99块钱 - 比iOS设备更便宜),并启用它的iCloud。

一般来说,除非你要尝试和管理合并在您的应用程序冲突,你不需要测试的iCloud本身。无处不在的容器中的任何东西实际上都会被同步。如果您需要跨设备的事务控制(相同用户同时在多台设备上同时更新相同文档,则必须处理冲突),具体取决于您的应用可能存在的问题。你可以测试至少一个子集的同步的

+0

谢谢!我一直在考虑一个Mac OS端口,但我没有意识到这意味着要在iOS之上购买另一个开发者许可证。我一直在想,我也可以简单地创建另一个具有不同App ID的应用程序的虚拟目标(并在iTunes Connect中注册以使用相同的iCloud ID),以便在iPhone上部署两个单独版本的应用程序。然后,我可以在同一台设备上进行全部测试,在第一个版本中编辑数据,然后打开第二个版本以测试同步。 – Clafou

+1

你可以做到这一点,但你不会测试任何东西。这两个应用程序都将访问同一设备上的同一个无处不在的容器。 –

+0

啊,是的,谢谢! – Clafou

3

一种方法是在设备上安装您的应用程序,添加一些数据,数据同步到iCloud中,然后从设备上删除应用程序。

当你再次和同步安装到iCloud,你应该再回到先前同步到iCloud中的数据相同。

这不完全是实时的,但它应该给你一些工作。

+0

好主意,这是一个起点,但我不能在没有测试当已经有用户数据的安装通过iCloud进行同步时发生什么情况下发布应用程序。 – Clafou

5

在Xcode中5:

OS模拟器现在支持的文件和数据KVS一个应用程序内的iCloud 同步,从而使应用程序使用的iCloud设备之间进行同步。 此功能在测试时非常有用,可确保应用文档 和数据在多个设备之间正确同步。

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

+0

非常感谢! –

+0

我建议同时运行2个模拟器设备。这样你就可以将一台设备的视觉更新传送到另一台设备上。请参阅我的评论:http://stackoverflow.com/questions/26446346/xcode6-run-two-instances-of-the-simulator/26446438#comment45601483_26446438 – ObjectiveTC