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

如何创建同时包含Debug和Release版本的xcframework?

XCFramework 适配 Debug/Release 自动切换方案

1. 可以将 Debug 和 Release 版本打包进同一个 XCFramework

这是Xcode官方推荐的做法,能让用户无需额外配置即可自动匹配对应版本。

打包步骤:

  • 先分别编译出 Debug 和 Release 版本的 .framework(若原先是 .a 文件,可先封装成 .framework,也可直接用 .a 打包XCFramework,更推荐前者)
  • 使用xcodebuild命令合并两个版本:
xcodebuild -create-xcframework \
    -framework ./Build/Debug/MyLib.framework \
    -framework ./Build/Release/MyLib.framework \
    -output MyLib.xcframework

生成的 XCFramework 内部会自动区分 Debug/Release 目录,Xcode 会根据当前项目的配置(Debug/Release)自动加载对应版本的库。

用户集成时只需:

  • 将生成的 XCFramework 拖入项目
  • 确保项目 Build Settings 中 Build Libraries for Distribution 设为 YES(Swift 库必填,OC 库建议开启)
  • 无需手动设置 Linker Flags 或 Library Search Path,Xcode 会自动处理链接逻辑

2. 分开打包的自动切换方案

如果不想将两个版本合并(比如考虑体积),可以分别打包成 MyLibDebug.xcframework 和 MyLibRelease.xcframework,然后通过以下方式让 Xcode 自动选择:

  • 在项目的 Build Phases > Link Binary With Libraries 中,移除已添加的 XCFramework
  • 分别添加两个版本的 XCFramework,然后为每个库设置条件:
    • 选中 Debug 版本的 XCFramework,在右侧检查器的 Condition 选项中选择 Debug
    • 选中 Release 版本的 XCFramework,设置 Condition 为 Release
  • 切换项目配置时,Xcode 会自动链接对应版本的库

你可能忽略的关键操作

  • 打包时确保 Debug/Release 版本的产物架构一致(比如都包含 arm64、x86_64),否则 Xcode 无法正确匹配
  • Swift 库的 Debug 版本要保留调试符号,Release 版本开启优化,打包时不要混淆两种配置的产物
  • 集成后可以切换配置,查看 Report Navigator 中的链接日志,确认是否加载了正确版本的库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:12:09