出于测试目的,我需要定期将我的iOS应用程序的新版本部署到其文档文件夹中包含旧数据的设备。我希望能够有选择地更新部分数据并控制文档文件夹中任何文件的保持新的或保持旧的行为。
基本上,我想要的工具支持是仅更新部署到设备时更改的数据。例如,dev-machine的Xcode项目资源文件夹中的任何内容都与设备上的对应文件(同名文件)相比更新或不同(按日期,大小等)进行传输,并且设备上的对应设备被覆盖那些。其他一切都被忽略了。
理想的情况是:当我在Xcode中点击BuildAndRun时,Xcode会找出要传输和覆盖设备文件的数据以及不基于某些自定义规则的数据。
是否可以通过Xcode实现这一目标?
更新 我编辑了上面的文字,以明确我不想为数据版本控制添加应用程序逻辑。我希望在我的构建和测试管道(Xcode)中发生这种情况。
答案 0 :(得分:1)
我认为这样做的最简单方法是对文件中的版本号进行编码,以及需要更新的版本号,在代码中增加版本号,因此当它运行并遇到具有较小的版本号,它删除或忽略它
答案 1 :(得分:1)
通常,这很简单。 XCode发送的所有内容都在资源包中。如果在设备上更新它,则必须将其移动到文档目录,因为资源包是只写的。
您可能在设备上更新的任何资源都需要“文档版本存在”的逻辑类型,您唯一的改变就是可能添加一些修改日期的东西。
您可以在运行方案中选择将应用程序数据上传到沙箱目录。
这是一个很好的起点: - http://developer.apple.com/library/mac/#recipes/xcode_help-devices_organizer/articles/copy_app_data_to_sandbox.html
实质上,您可以从设备管理器中的设备下载数据并创建xcdata包。编辑它以包含您要上传的内容。
然后您可以手动上传或在“编辑方案”对话框中(在选项下)指定它,因此每次运行方案时都会上传。