2014-10-22 4 views
5

У меня есть приложение, в котором люди могут сообщать об ошибках непосредственно из него, но я хотел бы, чтобы пользователь мог представить, какой git hash приложение было создано. Предоставляет ли Xcode значение #define, которое будет включать эту информацию, или я должен включить его в какой-либо скрипт пользовательской сборки?Как включить git commit hash в Xcode?

+2

Это поможет: http://stackoverflow.com/questions/8192921/set-xcode-bundle-version-to-git-hash – gagarwal

ответ

10

Я написал реализацию, основанную на ответе, указанном gagarwal. Я добавил этот сценарий сборки для моей сборки фазы до фазы компиляции:

/usr/libexec/PlistBuddy -c "Set :GIT_COMMIT_HASH `git rev-parse HEAD`" "${TARGET_BUILD_DIR}"/"${INFOPLIST_PATH}" 

В моем коде я ссылаться на него по телефону:

[[NSBundle mainBundle] infoDictionary][@"GIT_COMMIT_HASH"]; 

И вуаля, ваш последний коммит значение хеш-функции можно найти на run- время!

+0

Я получаю 'Set: Entry,": GIT_COMMIT_HASH ", не существует ' – DavidH

+2

@DavidH у вас должна быть запись уже в вашем информационном plist, поэтому перед построением у меня есть GIT_COMMIT_HASH' в plist, и он заселен во время сборки. –

+0

Спасибо! Я заработал. – DavidH

Смежные вопросы