Для потомков я сделал что-то похожее на приложения zoul для iPhone, добавив в свой проект файл revision.h, а затем добавил следующее в качестве фазы сборки Run Script:
REV=`/usr/bin/svnversion -nc ${PROJECT_DIR} | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
echo "#define kRevisionNumber @\"$REV\"" > ${PROJECT_DIR}/revision.h
Я сделал это, чтобы получить простой номер ревизии, в отличие от более подробной строки, которую svnversion создает в решении zoul.
Для приложений Mac я основал свой подход на этом посте и вместо этого создал файл buildnumber.xcconfig. В настройках сборки для цели я изменил значение «На основе» в нижнем правом углу диалогового окна на buildnumber.xcconfig. В Info.plist я отредактировал следующие строки:
<key>CFBundleVersion</key>
<string>${BUILD_NUMBER}</string>
<key>CFBundleShortVersionString</key>
<string>Version 1.0</string>
Чтобы в моем диалоговом окне «О программе» отображалась строка версии, аналогичная версии 1.0 (1234), где 1234 - номер версии Subversion. Наконец, я создал фазу сборки Run Script со следующим кодом:
REV=`/usr/bin/svnversion -nc ${PROJECT_DIR} | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
echo "BUILD_NUMBER = $REV" > ${PROJECT_DIR}/buildnumber.xcconfig
Это может быть не самый чистый способ, так как перед сборкой требуется цикл очистки, чтобы новая редакция закрепилась в приложении, но это работает.