Установить версию пакета Xcode на git hash

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

] (Я видел несколько сообщений об этом, которые увеличивали номер сборки для каждой сборки, но мне это кажется чрезмерным, и я хотел бы иметь номер сборки, на который тестировщики могут ссылаться, когда отправитель отзывается).

Я добавил в качестве сценария выполнения на этапах сборки:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion `git rev-parse --short HEAD`" *.plist

Затем я зачитал версию пакета в коде с помощью:

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

Однако тогда новый номер версии не появится в коде до следующего строить.Я предполагаю, что это связано с тем, что файл plist уже читается компилятором при запуске моего сценария.

Кроме того, поскольку plist изменяется строкой ревизии после фиксации в git, это вызывает раздражающие различия в проекте, так что, возможно, я в конце концов не так уж умен.

Альтернативой может быть запись номера версии в текстовый файл (build.txt), который git игнорирует. Но я бы все равно хотел, чтобы номер сборки проекта тоже соответствовал git.

Кто-нибудь знает отличный способ сделать это?

22
задан VonC 19 November 2011 в 13:41
поделиться