如果满足特殊条件,我将尝试通过Xcode运行脚本更改捆绑包显示名称。到目前为止,我有这个:
if [ MY_CONDITION ]; then
BUNDLE_DISPLAY_NAME = ${BUNDLE_VERSION};
fi
我收到这个错误
第3行:BUNDLE_DISPLAY_NAME:找不到命令
我在哪里查找这些奇特的变量名?我想用脚本做的事情可能吗?
删除=
符号(BUNDLE_DISPLAY_NAME=${BUNDLE_VERSION};
)周围的空格,否则bash将BUNDLE_DISPLAY_NAME
解释为单独的命令,并尝试执行BUNDLE_DISPLAY_NAME
,但未找到此命令。但是bash将BUNDLE_DISPLAY_NAME=${BUNDLE_VERSION}
解释为用变量BUNDLE_DISPLAY_NAME
分配值${BUNDLE_VERSION}
的操作。
为了清楚起见并正式将@trojanfoe的评论放在答案中,BUNDLE_DISPLAY_NAME
不是一个构建变量。它是目标的Info.plist中的一个值。您需要在那里更改它。
为了保持源代码管理的清洁,您应该在复制捆绑包资源阶段之后放入以下脚本。
if [ MY_CONDITION ]; then
newDisplayName="${BUNDLE_VERSION}"
command="Set :CFBundleDisplayName $newDisplayName"
echo "Updating display name in app package to "$newDisplayName""
/usr/libexec/PlistBuddy -c "$command" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
filepath="${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist"
if [ -f "$filepath" ]; then
echo "Updating display name in dsym to "$newDisplayName""
/usr/libexec/PlistBuddy -c "$command" "$filepath"
fi;
fi