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

Universal macOS应用编译失败:sqlite3 dylib仅支持ARM架构

针对Universal macOS应用SQLite3问题的解决方案

关于架构缺失的链接错误

  • 弱链接不是可行方案:弱链接仅能避免运行时符号缺失崩溃,但Xcode归档阶段的通用二进制完整性检查依然会失败,且Intel设备运行时仍可能因找不到对应架构的SQLite3符号报错。
  • 推荐方案:自行编译或下载多架构版本的SQLite3库并嵌入项目:
    1. 编译多架构库:获取SQLite3源码后,用Clang指定双架构编译:
      clang -arch arm64 -arch x86_64 -mmacosx-version-min=12.0 -dynamiclib sqlite3.c -o libsqlite3.dylib -lpthread -ldl
      
      此命令直接生成支持arm64和x86_64的动态库;若需静态库,可先执行clang -arch arm64 -arch x86_64 -mmacosx-version-min=12.0 -c sqlite3.c生成目标文件,再用ar rcs libsqlite3.a sqlite3.o打包。
    2. 嵌入项目:将编译好的库添加到Xcode项目,在「Build Phases」的「Link Binary With Libraries」中引入,并确保「Embed & Sign」设置正确。

关于版本高于部署目标的警告

  • 该警告源于系统自带的SQLite3是基于macOS 13编译的,而你的应用部署目标为12。如果采用上述嵌入自定义库的方案,编译时加上-mmacosx-version-min=12.0参数,就能让库适配macOS 12,警告会自动消失。
  • 若坚持使用系统库,只能将部署目标提升至macOS 13,但这会放弃对旧系统的支持,不推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:40:43