Есть ли способ автоматической записи пользовательских значений в.plist пакета на этапе сборки?
Я настраиваю систему CI, используя Jenkins, и использую agvtool для настройки и настройки маркетинговых и технических версий во время сборки.
В дополнение к настройке управления версиями во время сборки было бы очень полезно установить пару пользовательских значений в.plist.
Это возможно?
1 ответ
Решение
Вы можете редактировать Info.plist во время сборки, используя опции "Предварительные действия" для запуска скрипта.
Вот пример сценария, который увеличивает Key в Plist с именем UserDefinedVersionNumber
#!/bin/sh
#Grabs info from plist
plist=$SRCROOT"/"$INFOPLIST_FILE
currentBuild=`/usr/libexec/PlistBuddy -c "Print :UserDefinedVersionNumber" "$plist"`
#And changes it before writing out the plist again
if [ -z "$currentBuild" ]
then
currentBuild=1
/usr/libexec/PlistBuddy -c "Add :UserDefinedVersionNumber string $currentBuild" "$plist"
else
currentBuild=$(($currentBuild + 1));
/usr/libexec/PlistBuddy -c "Set :UserDefinedVersionNumber $currentBuild" "$plist"
fi
Вы должны быть в состоянии напечатать сценарий непосредственно в этом маленьком окошке, но я считаю, что его редактирование и поддержка могут стать проблематичными, особенно для общих сценариев.