我正在构建一个存在两个不同“版本”的应用程序。每个版本都有不同的布局(不同的字符串,图像,颜色和字体)。我使用宏完成了这个:有一个头文件(我们现在称之为Layout.h),它包含在所有类中。 Layout.h包含一个#define
语句,用于确定应构建的版本。如果此声明(我们称之为DARK_STYLE
)为真,则导入DarkStyle.h
。如果该语句为false,则包含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资源到应用程序的bundle(构建脚本在“Copy Bundle Resources”阶段之后执行)。
以下不起作用:
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
我在这里缺少什么?
答案 0 :(得分:0)
在Xcode项目中为每个版本的应用创建单独的构建目标。确保每个目标都包含每个资产的正确版本。