如何减小iOS Xcode归档体积、缩短耗时及自动删除旧归档?
React Native 0.64 iOS Xcode归档问题解决方案
1. 减小归档文件占用空间的方法
- 调整调试符号生成规则:在Xcode项目的Build Settings中,将Release配置下的Debug Information Format项从默认的
DWARF with dSYM File改为DWARF。如果需要使用dSYM做崩溃符号还原,可以在归档后将dSYM单独导出上传到崩溃监控平台,再删除本地归档内的dSYM文件,这一步通常可以减少60%以上的归档体积。 - 清理冗余构建产物:归档前执行
cd ios && xcodebuild clean清理Xcode构建缓存,同时删除ios/build目录、~/Library/Developer/Xcode/DerivedData下对应项目的缓存文件,避免旧的冗余产物被打包进归档。 - 裁剪构建架构:将Release配置下的Build Active Architecture Only项改为
Yes,仅构建当前连接真机对应的架构,不需要全架构构建,可进一步缩小归档体积。 - 移除不必要的打包资源:检查Xcode的Copy Bundle Resources构建阶段,移除测试资源、Android专属资源、未使用的高清素材等不必要的文件,同时在metro配置中开启资源压缩,减少RN侧资源占用。
2. 上传完成后自动删除归档的方案
- 自动化构建脚本实现:如果使用fastlane做CI/CD,可在
upload_to_testflight或上传Play Store的步骤执行成功后,添加删除对应归档的脚本逻辑。默认归档路径为~/Library/Developer/Xcode/Archives/[归档日期]/[项目名] [归档时间].xcarchive,直接执行rm -rf [归档路径]即可删除。 - 定时清理旧归档:可配置定时shell脚本批量清理超过指定时长的历史归档,例如保留最近7天的归档,执行命令:
find ~/Library/Developer/Xcode/Archives -type d -mtime +7 -name "*.xcarchive" -exec rm -rf {} +
可将上述命令加入crontab定时执行,无需手动清理。
3. 缩短归档耗时的方法
- 开启并行构建:勾选Xcode Build Settings中的Parallelize Build选项,将Number of concurrent build tasks设置为当前Mac的CPU核心数,充分利用多核性能提升构建速度。
- 接入构建缓存工具:使用
ccache缓存C/C++/Objective-C的构建产物,配置完成后原生代码的二次构建速度可提升70%以上。RN 0.64版本可开启Hermes引擎,预编译字节码支持缓存复用,相比默认JSC引擎构建速度更快。 - 预编译第三方依赖:将RN框架及常用原生依赖打包为静态framework预编译产物,无需每次归档都重新编译这些第三方库,可节省大量构建时间。
内容的提问来源于stack exchange,提问作者Hans Yulian
相关产品推荐
相关产品推荐

