IOS升級,libwebp.a 无法在 Xcode 26.4 编译通過

剛升級了Xcode26.4 cocos creator 2.4.15

正常生編譯項目, 提示:
Undefined symbol: _WebPDecode
Undefined symbol: _WebPGetFeaturesInternal
Undefined symbol: _WebPInitDecoderConfigInternal

手动添加 WebP 库到链接列表.

  1. Link Binary With Libraries**+ 号** → Add Other…
  2. framework/cocos2d-x/external/ios/ibwebp.a. 添加完成

隨後編譯報錯
rtune.xcodeproj 64-bit mach-o member ‘utils.o’ not 8-byte aligned in ‘/Users/linda/Desktop/rtune/build/jsb-default/frameworks/cocos2d-x/external/ios/libs/libwebp.a’

後續,完全生成全新iOS工程, 用新工程的libwebp.a 覆蓋掉老項目中的libwebp.a 也同樣報錯
新libwebp.a 和老libwebp.a 大小一致 好像是一樣的

使用以下方式已解決問題,(感謝強大的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:替换文件

  1. 打开上述文件夹,找到 libwebp.a 文件, 直接删除
  2. 下载 Cocos2d-x 官方兼容 64 位的 libwebp.a (或从正常编译的 Cocos 项目中拷贝);
  3. 将新的 libwebp.a 粘贴到原文件夹,覆盖替换。

步骤 3:清理 Xcode 缓存重新编译

  1. Xcode 中按 Cmd + Shift + K 清理项目;
  2. Cmd + Option + Shift + K 深度清理构建缓存;
  3. 重新编译,报错直接消失。

二、进阶修复(无需替换文件,终端命令修复)

如果不想下载新文件,用终端命令 修复原 libwebp.a 的字节对齐

  1. 打开「终端」,cd 进入文件目录:

bash

运行

cd /你的項目/build/jsb-default/frameworks/cocos2d-x/external/ios/libs/
  1. 执行修复命令(自动修正 8 字节对齐):

bash

运行

lipo libwebp.a -thin arm64 -output libwebp_fixed.a
mv libwebp_fixed.a libwebp.a
  1. 回到 Xcode 清理缓存后重新编译。

三、根本原因(避免后续再踩坑)

  1. 你使用的 Cocos Creator 版本较旧,自带的 libwebp.a32 位老旧库
  2. iOS 11+ 强制要求 64 位架构,静态库必须满足 8 字节对齐 ,否则 Xcode 直接报错;
  3. 这个文件是 WebP 图片解码库,不影响游戏逻辑,仅需替换兼容版本即可。

/************************************* end ************************************************/

沒有在,【最快解决方案 】找到可下載的文件
使用了【 进阶修复】解決了問題,編譯正常通過,正常打包測試

libwebp.a`原文件大小1.9M,經過命令行自動修復,後 大小為321KB
其實沒搞清楚問題怎麼解決的, 但確實解決了,
哈哈哈哈 有點心慌 不知道有什麼影響,
有沒有引擎大佬出來解釋一下啊,這樣解決究竟對不對…

1赞