Я, вероятно, упускаю что-то простое здесь. Я пытаюсь автоматически увеличить номер сборки в XCode 4.4 только при архивировании своего приложения (при подготовке к развертыванию TestFlight). У меня есть рабочий сценарий оболочки, который запускается на цели и успешно обновляет файл info.plist для каждой сборки. Моя конфигурация сборки для архивирования называется Ad-Hoc.
Вот сценарий:
if [ $CONFIGURATION == Ad-Hoc ]; then
echo "Ad-Hoc build. Bumping build#..."
plist=${PROJECT_DIR}/${INFOPLIST_FILE}
buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
if [[ "${buildnum}" == "" ]]; then
echo "No build number in $plist"
exit 2
fi
buildnum=$(expr $buildnum + 1)
/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
echo "Bumped build number to $buildnum"
else
echo $CONFIGURATION " build - Not bumping build number."
fi
Этот скрипт соответствующим образом обновляет файл plist и отражается в XCode каждый раз, когда я архивирую. Проблема в том, что файл .ipa, полученный в результате процесса архивирования, по-прежнему показывает номер предыдущей сборки. Я безуспешно пробовал следующие решения:
- Очистить перед сборкой
- Очистить папку сборки перед сборкой
- Переместите фазу запуска сценария непосредственно после шага целевых зависимостей в фазах сборки.
- Добавление сценария в качестве действия «Выполнить сценарий» в моей схеме в качестве предварительного действия
Что бы я ни делал, когда я смотрю на журнал сборки, я вижу, что файл info.plist обрабатывается как один из самых первых шагов. Это всегда предшествует запуску моего скрипта и обновлению номера сборки, поэтому, как я полагаю, номер сборки никогда не актуален в файле .ipa.
Есть ли способ заставить фазу запуска сценария выполняться до обработки файла info.plist?
Archive
стадию? - person trojanfoe   schedule 20.08.2012