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

Posted

技术标签:

【中文标题】使用新资源/资产归档 iOS ipa【英文标题】:Archiving iOS ipa with new resources/assets 【发布时间】:2013-08-30 15:09:53 【问题描述】:

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

问题:

我正在尝试将我的 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 是否会允许在不损坏我的文件的情况下完成此操作?

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

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我喜欢我花了 2 周的时间来解决这个问题,但是当我在 S.O. 上提问的那一刻,我自己找到了答案:

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

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

【讨论】:

以上是关于使用新资源/资产归档 iOS ipa的主要内容,如果未能解决你的问题,请参考以下文章

iOS获取ipa素材提取ipa资源图片文件

ios --转载获ipa 的图片资源

iOS ipa包瘦身---删除无用图片资源

如何显示和加载 iOS 应用程序资源/资产文件夹中的音频文件?

数据资产管理概念

复制资产/资源使 iOS 测试令人沮丧