使用以下方式已解決問題,(感謝強大的AI,提供解決方式)
/************************************* start ************************************************/
Xcode 编译报错:64-bit mach-o member ‘utils.o’ not 8-byte aligned 解决方案
这个错误是 Cocos Creator 编译 iOS 项目时,libwebp.a 静态库文件字节对齐不兼容 导致的,核心原因是:旧版 libwebp.a 是 32 位编译的,不满足 iOS 64 位架构要求的 8 字节对齐规则。
一、最快解决方案(推荐,1 分钟搞定)
直接替换 兼容 64 位、字节对齐正确 的新版 libwebp.a 静态库:
步骤 1:定位报错文件路径
报错路径: 你的項目/build/jsb-default/frameworks/cocos2d-x/external/ios/libs/libwebp.a
步骤 2:替换文件
- 打开上述文件夹,找到
libwebp.a 文件, 直接删除 ;
- 下载 Cocos2d-x 官方兼容 64 位的 libwebp.a (或从正常编译的 Cocos 项目中拷贝);
- 将新的
libwebp.a 粘贴到原文件夹,覆盖替换。
步骤 3:清理 Xcode 缓存重新编译
- Xcode 中按
Cmd + Shift + K 清理项目;
- 按
Cmd + Option + Shift + K 深度清理构建缓存;
- 重新编译,报错直接消失。
二、进阶修复(无需替换文件,终端命令修复)
如果不想下载新文件,用终端命令 修复原 libwebp.a 的字节对齐 :
- 打开「终端」,cd 进入文件目录:
bash
运行
cd /你的項目/build/jsb-default/frameworks/cocos2d-x/external/ios/libs/
- 执行修复命令(自动修正 8 字节对齐):
bash
运行
lipo libwebp.a -thin arm64 -output libwebp_fixed.a
mv libwebp_fixed.a libwebp.a
- 回到 Xcode 清理缓存后重新编译。
三、根本原因(避免后续再踩坑)
- 你使用的 Cocos Creator 版本较旧,自带的
libwebp.a 是 32 位老旧库 ;
- iOS 11+ 强制要求 64 位架构,静态库必须满足 8 字节对齐 ,否则 Xcode 直接报错;
- 这个文件是 WebP 图片解码库,不影响游戏逻辑,仅需替换兼容版本即可。
/************************************* end ************************************************/
沒有在,【最快解决方案 】找到可下載的文件
使用了【 进阶修复】解決了問題,編譯正常通過,正常打包測試
libwebp.a`原文件大小1.9M,經過命令行自動修復,後 大小為321KB
其實沒搞清楚問題怎麼解決的, 但確實解決了,
哈哈哈哈 有點心慌 不知道有什麼影響,
有沒有引擎大佬出來解釋一下啊,這樣解決究竟對不對…