我有4种构建配置:
Debug
和Release
应该链接并嵌入我的自定义LightTheme.framework
,而不是WhiteLabelTheme.framework
。
WhiteLabelDebug
和WhiteLabelRelease
应该链接并嵌入我的自定义WhiteLabelTheme.framework
,而不要嵌入LightTheme.framework
。
这两个框架都有一些自定义代码,本地化的字符串,颜色,字体和图像。我们使用不同的方案来构建每个配置,并将其作为完全不同的应用提交到App Store。但是,目前我们的品牌应用程序和带有白色标签的应用程序都有图像,字体,颜色,字符串等两组,这确实会损害文件的大小。
我可以轻松地将两个框架都弱链接到应用程序目标,但是我不知道如何仅基于当前配置嵌入框架。
答案 0 :(得分:2)
转到目标构建阶段,并添加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版本(以及归档以供提交)时,脚本将删除相应的框架。调试时会将它们保留在适当的位置。