Pull to refresh

Автоматическое увеличение номера сборки в Xcode

Reading time2 min
Views3.3K
Original author: Fredrik Olsson
Пользователи и тестировщики могут найти ошибки, которые вы наверняка уже исправили. Иногда пользователи используют старую версию приложения, иногда ваши исправления не так хороши, как вы думали. В обоих случаях небольшой уникальный номер версии, отображаемый в приложении, может сэкономить часы вашей работы.

Это можно сделать

Существует дюжина способов это сделать, которые можно найти в Google. Но, к сожалению, не все они работают и в Xcode 3.2 и в Xcode 4, а другие требуют много «костылей», даже запуск внешних скриптов на Perl или Python. Использование же avgtool кажется излишним в большинстве случаев. Должен ведь быть более простой способ сделать это, и такой способ есть.

Все, что мы хотим, это иметь номер сборки в файле Info.plist, откуда мы сможем прочести его и отобразить в приложении. Еще мы хотим, чтобы этот номер автоматически увеличивался с каждой новой сборкой проекта.

Добавим ключ, названный CWBuildNumber, в наш файл Info.plist и установим ему некоторое стартовое значение, например «0». Вы можете прочитать это значение в приложении с помощью конструкции:

NSString* buildNumber = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CWBuildNumber"];

Xcode 3.2 и Xcode 4 позволяют нам запускать скрипты во время выполнения для любой цели. К сожалению, Xcode 3.2 и Xcode 4 запускают их с разными путями. Переменная окружения PROJECT_DIR спасет положение! Нам надо получить номер сборки, увеличить его и перезаписать файл Info.plist нашей цели во время сборки. Просто вставим следующий код в Run Script нашей цели:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CWBuildNumber" ${PROJECT_DIR}/TestIncrement/TestIncrement-Info.plist)
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CWBuildNumber $buildNumber" ${PROJECT_DIR}/TestIncrement/TestIncrement-Info.plist

* примечание переводчика: поменяйте путь к файлу Info.plist в упомянутом коде на свой путь.

Заключение

Счасливы тестировщики, счастливы разработчики. Возможно, счастливы даже пользователи, если вы будете отображать полную версию, включая номер сборки, в конечном продукте.
Tags:
Hubs:
Total votes 33: ↑30 and ↓3+27
Comments15

Articles