Insert Subversion revision number in Xcode

后端 未结 7 1623
花落未央
花落未央 2020-11-30 18:29

I would like to insert the current Subversion revision number (as reported by svnversion) into my Xcode project. I managed to insert the revision number into th

7条回答
  •  庸人自扰
    2020-11-30 18:57

    For posterity, I did something similar to zoul for iPhone applications, by adding a revision.h to my project, then adding the following as a Run Script build phase:

    REV=`/usr/bin/svnversion -nc ${PROJECT_DIR} | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
    echo "#define kRevisionNumber @\"$REV\"" > ${PROJECT_DIR}/revision.h
    

    I did this to grab a simple revision number, as opposed to the more detailed string that svnversion produces in zoul's solution.

    For Mac applications, I based my approach on this post, and instead created a buildnumber.xcconfig file. Under the build settings for the target, I changed the Based On value in the lower-right-hand corner of the dialog to buildnumber.xcconfig. Within the Info.plist, I edited the following lines:

    CFBundleVersion
    ${BUILD_NUMBER}
    CFBundleShortVersionString
    Version 1.0
    

    So that my About dialog would display a version string similar to Version 1.0 (1234), where 1234 is the Subversion revision number. Finally, I created a Run Script build phase with the following code:

    REV=`/usr/bin/svnversion -nc ${PROJECT_DIR} | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
    echo "BUILD_NUMBER = $REV" > ${PROJECT_DIR}/buildnumber.xcconfig
    

    This may not be the cleanest way, as it requires a clean cycle before building for the new revision to take hold in the application, but it works.

提交回复
热议问题