В Xcode я хочу установить версию пакета проекта для хеша git, чтобы создать уникальную ссылку между версией и сборкой.
(Я видел несколько сообщений об этом, которые увеличивают номер сборки для каждой сборки, но для меня это кажется чрезмерным, и я хотел бы иметь номер сборки, на который могут ссылаться тестеры, когда обратная связь отправителя).
Я добавил следующее как Run Script в фазах сборки:
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion `git rev-parse --short HEAD`" *.plist
И затем я зачитал версию пакета в коде с помощью:
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
Однако, новый номер версии не отображается в коде до следующей сборки. Я предполагаю, что это связано с тем, что файл plist уже считывается компилятором, когда выполняется мой Script.
Кроме того, поскольку plist изменяется с строкой ревизии после фиксации до git, это вызывает раздражающий diff в проекте, поэтому, возможно, я не настолько умный в конце концов.
Альтернативой было бы записать номер версии в текстовый файл (build.txt), который игнорируется git. Но мне все равно хотелось бы, чтобы номер сборки проекта следовал за git.
Кто-нибудь знает блестящий способ сделать это?