Установите отображаемое имя пакета в строку версии через скрипт запуска в Xcode
Я пытаюсь изменить отображаемое имя пакета через скрипт запуска Xcode, если выполняется специальное условие. Пока у меня есть это:
if [ MY_CONDITION ]; then
BUNDLE_DISPLAY_NAME = ${BUNDLE_VERSION};
fi
Я получаю эту ошибку
строка 3: BUNDLE_DISPLAY_NAME: команда не найдена
Где я могу найти эти необычные имена переменных? И то, что я пытаюсь сделать даже возможно с помощью сценария?
2 ответа
Для ясности и для официального размещения комментария @trojanfoe в ответе, BUNDLE_DISPLAY_NAME
не является переменной сборки. Это значение в Info.plist вашей цели. Вам нужно будет изменить его там вместо этого.
Чтобы сохранить контроль над исходным кодом в чистоте, вы должны поместить следующий сценарий после фазы Copy Bundle Resources.
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
Удалить пробелы вокруг =
условное обозначение (BUNDLE_DISPLAY_NAME=${BUNDLE_VERSION};
) иначе истолковать BUNDLE_DISPLAY_NAME
как отдельная команда и попробуйте выполнить BUNDLE_DISPLAY_NAME
, но не нашел эту команду. Но Баш интерпретировать BUNDLE_DISPLAY_NAME=${BUNDLE_VERSION}
в качестве операции присваивают значение ${BUNDLE_VERSION}
с переменной BUNDLE_DISPLAY_NAME
,