0

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

问题:

在我使用以下命令创建构建之后,我正在尝试将我的 sqlite db 文件和一些图像资产(以 PNG/JPG 格式)缓存到我的 xcode 项目中:

xcodebuild -target $TARGET_NAME -configuration "AdHoc"

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

但是,我没有缓存应用程序新获取的资源。我有一个运行模拟器的外部任务,复制我的资源中的所有图像和数据库文件,并将它们粘贴到我的项目目录中。在 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 将允许在不损坏我的文件的情况下完成此操作?

当然,您可以争辩说,用户可以在他们外出到没有手机服务的区域之前首次启动应用程序,但我需要它以便在用户进入应用程序之前完全缓存应用程序。

感谢您的帮助。

4

1 回答 1

0

我喜欢我花了 2 周的时间来解决这个问题,但是当我问到 SO 时,我自己找到了答案:

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

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

于 2013-08-30T16:38:57.077 回答