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

如何在Xcode 13.2.1中按配置链接不同版本的Framework?

按配置链接不同版本Framework的解决方案(Xcode 13.2.1 + SwiftUI)

步骤1:整理Framework目录结构

将Debug版和Release版Framework分别放到项目根目录下的独立文件夹,确保两个Framework的文件名完全一致,仅所在目录区分:

  • Debug版:项目根目录/Frameworks/Debug/YourFramework.framework
  • Release版:项目根目录/Frameworks/Release/YourFramework.framework

步骤2:配置Framework搜索路径

打开项目的Build Settings,找到Framework Search Paths:

  • 切换到Debug配置,添加路径 $(SRCROOT)/Frameworks/Debug,若Framework嵌套在子文件夹中,勾选右侧的"Recursive";
  • 切换到Release配置,添加路径 $(SRCROOT)/Frameworks/Release。

步骤3:设置条件链接与嵌入

  1. 添加Framework到项目(不关联Target)
    点击项目导航栏的"+" -> "Add Files to 项目名...",分别选中Debug和Release版的Framework并添加。在右侧文件检查器中,取消所有Target的Membership勾选,避免Xcode自动全局引用。

  2. 配置链接器参数
    在Build Settings中找到Other Linker Flags,针对Debug和Release配置都添加:

    -framework YourFramework
    

    Xcode会根据当前配置的Framework Search Paths,自动匹配对应版本的Framework完成链接。

  3. 添加Run Script实现条件嵌入
    由于General标签无法按配置嵌入,通过脚本手动处理:

    • 打开Build Phases,点击左上角"+",选择"New Run Script Phase";
    • 将脚本拖动到Embed Frameworks阶段之前;
    • 替换脚本内容(把YourFramework替换为你的Framework名称):
      if [ "${CONFIGURATION}" = "Debug" ]; then
          FRAMEWORK_SOURCE="${SRCROOT}/Frameworks/Debug/YourFramework.framework"
      else
          FRAMEWORK_SOURCE="${SRCROOT}/Frameworks/Release/YourFramework.framework"
      fi
      
      FRAMEWORK_DEST="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/YourFramework.framework"
      
      # 清理旧Framework
      rm -rf "${FRAMEWORK_DEST}"
      # 复制对应版本Framework到目标目录
      cp -R "${FRAMEWORK_SOURCE}" "${FRAMEWORK_DEST}"
      
      # 重新签名Framework(适配代码签名要求)
      if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" ]; then
          codesign -f -s "${EXPANDED_CODE_SIGN_IDENTITY}" "${FRAMEWORK_DEST}"
      fi
      

验证

分别切换到Debug和Release配置构建项目,右键点击生成的App包 -> "显示包内容",查看Frameworks目录下的Framework版本是否符合当前配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:55:26