我正在构建一个存在两个不同“版本”的应用程序。每个版本都有不同的布局(不同的字符串、图像、颜色和字体)。我使用宏实现了这一点:所有类中都包含一个头文件(我们现在称之为 Layout.h)。Layout.h 包含一个#define
确定应该构建哪个版本的语句。如果这个声明,我们称之为DARK_STYLE
,是真的,DarkStyle.h
是进口的。如果陈述为假,BrightStyle.h
则包括在内。两者DarkStyle.h
和BrightStyle.h
都包含相同的定义,但具有不同的值。例如:
<DarkStyle.h>
#define TEXT_COLOR [UIColor blackColor]
<BrightStyle.h>
#define TEXT_COLOR [UIColor whiteColor]
到目前为止,一切都很好。现在我已经到了必须交付应用程序的地步。不幸的是,每个版本都有不同的应用程序图标和不同的启动画面。我现在要做的是使用 Xcode 构建脚本根据 Layout.h 中的 DARK_STYLE 宏自动生成应用程序的 Icon.png 和 Default.png 文件。
我此时拥有的构建脚本能够确定 DARK_STYLE 是设置为 1 还是 0。下一步是我遇到的麻烦:将属于深色样式的 Icon.png 和 Default.png 资产复制到应用程序的捆绑包(构建脚本在“复制捆绑资源”阶段之后执行)。
以下不起作用:
if find $SRCROOT -name "Layout.h" -exec echo {} \; -exec grep "#define DARK_STYLE" {} \; -exec grep 1 {} \;
then
# Copy dark style resources and rename them
find $SRCROOT -name "dark_icon.png" -exec cp "{}" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" \;
mv "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/dark_icon.png" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Icon.png"
else
find $SRCROOT -name "bright_icon.png" -exec cp "{}" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" \;
mv "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/bright_icon.png" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Icon.png"
fi
我在这里想念什么?