使用新资源/资产归档iOS ipa

时间:2013-08-30 15:09:53

标签: ios xcode caching continuous-integration xcodebuild

这是我正在尝试创建的流程的一个非常具体的场景。我正在使用的应用程序有一个目的是在离线模式下启动,以便用户可以在没有任何信号/互联网连接时启动应用程序。

问题:

我正在尝试将我的sqlite db文件和一些图像资源(在PNG / JPG中)缓存到我的xcode项目后,我使用以下方法创建了构建:

xcodebuild -target $TARGET_NAME -configuration "AdHoc"

在该命令之后,我可以在手机上安装给定的ipa(在我压缩.app文件之后)。

但是,我没有缓存应用程序新获得的资源。我有一个运行模拟器的外部任务,复制我资源中的所有图像和db文件,并将它们粘贴到我的项目目录中。我在xcodebuild命令之后的shell脚本中有以下命令:

find -L $1/$TARGET_NAME/Resources -type f -not -name ".*" -not -name "`basename $TARGET_NAME/Info.plist`" | xargs -t -I {} cp {} $BUILD_DIR/$TARGET_NAME.app

基本上,这是将我的缓存资源放入.app文件中。

这是我需要帮助的地方。我相信你们会说“不,你不能这样做,因为它破坏了存档,如果.app文件或.ipa文件被篡改,Apple将不会安装应用程序。

我的问题是:如何将这些给定的资源缓存到我的.app或.ipa中?还有一段时间Apple会允许这样做而不会破坏我的文件吗?

当然,你可以说用户可以在他们出去没有手机服务的区域之前第一次启动应用程序,但我需要它以便在用户进入之前完全缓存应用程序它

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我喜欢花了两个星期的时间来解决这个问题,但是当我向S.O.询问时,我自己找到了答案:

我在Resources文件夹下创建了一个名为“Cached”的文件夹。我将“缓存”文件夹拖到xcode(最初为空)但是当“文件和组”选项出现时,您检查“为任何添加的文件夹创建文件夹引用”。从那里一切都应该好。

我使用基本shell脚本将缓存的图像复制到新创建的“缓存”文件夹,以便该文件夹将添加在构建期间放置在那里的任何资源:)