Xcode构建失败报arm64架构未定义符号,Github CI构建iOS归档异常
根因说明
警告中给出的文件头十六进制序列转换为ASCII后为version https://,可直接确定CI环境下拉取到的myframework.framework/myframework并非预期的Mach-O二进制文件,而是Git LFS的指针占位文本文件。
多数项目会将体积较大的XCFramework通过Git LFS存储,Github Actions默认拉取代码时不会自动拉取LFS对应的实际二进制资源,仅拉取占位指针文件,链接器无法识别文本格式的文件,会触发格式不支持警告并直接忽略该framework,后续的arm64架构符号缺失报错就是该问题的连锁反应。
修复步骤
- 调整CI配置中的checkout步骤,开启LFS拉取能力,使用官方
actions/checkout动作的示例配置如下:
- uses: actions/checkout@v4 with: lfs: true
- 若开启LFS参数后仍未生效,可在checkout步骤后新增手动拉取LFS资源的命令:
git lfs pull
- 新增前置校验步骤,拉取代码后通过
file命令校验framework二进制格式是否正常,避免无效构建:
file ios/myframework.xcframework/ios-arm64/myframework.framework/myframework
正常输出应包含Mach-O 64-bit dynamically linked shared library arm64相关内容,若输出为ASCII text则说明LFS资源仍未正常拉取。
- 若使用自托管Runner,需先确认Runner环境已安装Git LFS,且对应权限凭证可正常拉取仓库的LFS资源。
内容的提问来源于stack exchange,提问作者f4z3k4s
相关产品推荐
相关产品推荐

