1

出于测试目的,我需要定期将我的 iOS 应用程序的新版本部署到其文档文件夹中有旧数据的设备。我希望能够有选择地更新部分数据并控制文档文件夹中任何文件的保持新或保持旧行为。

基本上,我想要的工具支持是仅更新部署到设备时更改的数据。例如,开发机器的 Xcode 项目资源文件夹中与设备上的对应项(同名文件)更新或不同的任何内容(按日期、大小等)都会被传输,并且设备上的对应项会被覆盖那些。其他一切都被忽略。

一个理想的场景是:当我在 Xcode 中点击 BuildAndRun 时,Xcode 将根据一些自定义规则确定要传输和覆盖设备文件的数据以及不传输的数据。

有可能用 Xcode 实现这一点吗?

更新 我编辑了上面的文本以明确我不想为数据版本控制添加应用程序逻辑。我希望这发生在我的构建和测试管道(Xcode)中。

4

2 回答 2

1

通常,这很简单。XCode 发送的所有内容都包含在资源包中。如果在设备上更新它,则必须将其移动到文档目录,因为资源包是只写的。

您可能在设备上更新的任何资源都需要“文档版本是否存在”类型的逻辑,您唯一的更改可能是添加一些修改日期的内容。

您可以在运行方案中选择将应用程序数据上传到沙箱目录。

这是一个很好的起点:- http://developer.apple.com/library/mac/#recipes/xcode_help-devices_organizer/articles/copy_app_data_to_sandbox.html

本质上,您可以在设备管理器中从设备下载数据并创建一个 xcdata 包。编辑此内容以仅包含您要上传的内容。

然后,您可以手动上传或在“编辑方案”对话框(在选项下)中指定它,因此每次运行方案时都会上传。

编辑方案对话框

于 2013-05-17T20:14:06.980 回答
1

我看到的最简单的方法是在文件中编码一个版本号,并且您需要更新的版本号,您在代码中增加它们的版本号,因此当它运行并遇到版本号较小的文件时, 它删除或忽略它

于 2013-05-17T18:48:30.270 回答