You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kivy-ios使用Pillow时Xcode编译出现little CMS相关Undefined symbol错误求助

解决方案

1. 修复Pillow配方版本与依赖

找到kivy-ios项目目录下的recipes/pillow/__init__.py文件,做两处修改:

  • 将版本号从6.1.0修改为6.2.1及以上的兼容版本(建议使用7.1.2,适配Python3.8稳定性更高),同步更新对应版本的源码sha256校验值
  • 在配方的depends字段中添加lcms2、libtiff、webp,确保构建Pillow前先编译对应iOS平台的依赖库

如果你的项目没有用到色彩空间转换、ICC profile相关功能,也可以直接在Pillow的构建参数中添加--disable-lcms,完全禁用little CMS依赖,从根源避免符号缺失问题,你当前项目仅用到基础图像创建、绘制、模糊功能,禁用lcms2无任何影响。

2. 清理旧构建缓存

执行以下命令清理之前错误构建的Pillow缓存:

toolchain clean pillow
rm -rf ./dist/build/*pillow*

之前用toolchain pip安装无效是因为pip只能安装纯Python包,lcms2、Pillow这类包含C扩展的库必须通过toolchain build走交叉编译配方才能生成iOS可用的二进制文件,本地brew安装的是Mac平台的依赖库,无法在iOS项目中链接使用

3. 重新构建相关组件

执行命令一次性构建所有依赖与Pillow:

toolchain build lcms2 libtiff webp pillow

kivy-ios已内置lcms2等库的交叉编译配方,无需手动下载源码配置,会自动编译为适配iOS多架构的静态库。

4. Xcode项目补充链接库

构建完成后打开你的Xcode项目,进入构建阶段的「Link Binaries with Libraries」列表,点击添加按钮,从kivy-ios项目的./dist/lib目录中选择以下静态库导入:

  • liblcms2.a
  • libtiff.a
  • libwebp.a
  • libwebpdemux.a
  • libwebpmux.a

重新构建Xcode项目即可解决未定义符号错误。


内容的提问来源于stack exchange,提问作者Taka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:27:02