Есть ли способ автоматической записи пользовательских значений в.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

Вы должны быть в состоянии напечатать сценарий непосредственно в этом маленьком окошке, но я считаю, что его редактирование и поддержка могут стать проблематичными, особенно для общих сценариев.

Другие вопросы по тегам