Xcode-Increment номер сборки только во время ARCHIVE? - PullRequest
54 голосов
/ 25 марта 2012

Я нашел несколько других постов, которые показывают, как добавить скрипт для увеличения номера сборки с помощью скрипта:

Лучший способ увеличить номер сборки?

"Номер сборки" проекта Xcode

Может ли Xcode вставить номер версии в имя файла библиотеки при сборке?

Но то, что я хочу сделать, это только увеличить номер сборки, когда я использую ARCHIVE (как до, так и после).

Пример: Если текущий номер сборки равен 21, то, когда я выберу «Продукт»> «Архив», номер сборки будет увеличен до 22, он будет проходить процесс сборки и создания файла архива с номером сборки 22, а затем, когда архивирование будет завершено. , это увеличит номер сборки до 23.

Ответы [ 3 ]

79 голосов
/ 25 марта 2012

Добавьте следующий скрипт, как в примере, указанном в первой опубликованной вами ссылке, НО сделайте это дважды.Один раз в начале сборки и один раз в конце:

if [ $CONFIGURATION == Release ]; then
    echo "Bumping build number..."
    plist=${PROJECT_DIR}/${INFOPLIST_FILE}

# increment the build number (ie 115 to 116)
    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

Большое спасибо авторам вопросов, с которыми вы связались в своем вопросе, за информацию, с которой я начал этот ответ!

21 голосов
/ 01 марта 2014

Это очень похоже на ответ @ Inafziger, но более лаконичный набор кода, с дополнительным преимуществом, что проверка «Release» выполняется с помощью флажка в XCode, а не переменной времени выполнения:

enter image description here

Дважды следуйте этим инструкциям, перетаскивая одну в начало и одну в конец (одну для запуска до сборки и одну для запуска после сборки):

# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run. 
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Ensure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
# 7. Check the checkbox "Run script only when installing"

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

См. https://gist.github.com/sekati/3172554

7 голосов
/ 30 октября 2015

Xcode включает инструмент командной строки agvtool для увеличения номеров версий . Таким образом, вам не нужно делать все вручную с PListBuddy.

xcrun agvtool next-version -all

увеличивает ваш номер сборки.

xcrun agvtool new-marketing-version 2.0

устанавливает новый номер версии, видимый пользователю.

Подробнее см. Полную документацию .

...