基于构建配置嵌入不同的框架

5

我有4个构建配置:

  • 调试(Debug)
  • 发布(Release)
  • 白标调试(WhiteLabelDebug)
  • 白标发布(WhiteLabelRelease)

Configurations

DebugRelease应该链接并嵌入我的自定义LightTheme.framework,而不是WhiteLabelTheme.framework

WhiteLabelDebugWhiteLabelRelease应该链接并嵌入我的自定义WhiteLabelTheme.framework,而不是LightTheme.framework

这两个框架都有一些自定义代码、本地化字符串、颜色、字体和图像。我们使用不同的方案构建每个配置,并将其提交到App Store作为完全不同的应用程序。然而,目前我们的品牌应用程序和白标应用程序都拥有图片、字体、颜色、字符串等两套内容,这真的会影响文件大小。

我可以轻松地将两个框架弱链接到应用程序目标中,但我无法弄清楚如何仅基于当前配置嵌入一个框架。

Embed Frameworks settings

1个回答

8

前往目标构建阶段,将New Run Script Phase添加为最后一步。

这是脚本可能的样子:

if [[ ${CONFIGURATION} == "WhiteLabelRelease" ]]; then
    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LightTheme.framework"
elif [[ ${CONFIGURATION} == "Release" ]]; then
    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WhiteLabelTheme.framework"
fi

在构建任何*Release版本(以及提交的存档)时,脚本会删除相应的框架,但在调试时会保留它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接