В 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.
Кто-нибудь знает отличный способ сделать это?