根据构建配置嵌入不同的框架

jam*_*one 5 macos xcode frameworks ios

我有 4 种构建配置:

  • 调试
  • 发布
  • 白标调试
  • 白标发布

配置

Debug并且Release应该链接并嵌入我的自定义LightTheme.framework而不是WhiteLabelTheme.framework.

WhiteLabelDebug并且WhiteLabelRelease应该链接和嵌入我的自定义WhiteLabelTheme.framework而不是LightTheme.framework.

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

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

嵌入框架设置

poi*_*tum 8

转到目标构建阶段并添加New Run Script Phase为最后一步。

\n\n

Here\xe2\x80\x99s 脚本可能如下所示:

\n\n
if [[ ${CONFIGURATION} == "WhiteLabelRelease" ]]; then\n    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LightTheme.framework"\nelif [[ ${CONFIGURATION} == "Release" ]]; then\n    rm -R "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WhiteLabelTheme.framework"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n