我用這個作爲我的項目構建階段:在構建時更新dSYM中的CFBundleShortVersionString?
export PLISTBUDDY="/usr/libexec/PlistBuddy"
export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"
export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+\-([^-]+).*/\1/"`
export RXVERSION=`git describe --tags | perl -pi -E "s/([^-]+)\-[^-]+.*/\1/"`
$PLISTBUDDY $INFO -c "add CFBundleVersion string $RXREVISION"
$PLISTBUDDY $INFO -c "set :CFBundleVersion $RXREVISION"
$PLISTBUDDY $INFO -c "add CFBundleShortVersionString string $RXVERSION"
$PLISTBUDDY $INFO -c "set :CFBundleShortVersionString $RXVERSION"
這完全適用於內置應用程序的Info.plist更新構建修訂,它不會發生變異我的源代碼樹。
我已經嘗試把我的更新版本腳本都放在末尾和鏈接階段之前。無論哪種方式,它都能夠影響對構建應用程序的更改,但是dSYM是從原始源代碼樹構建的。
構建的應用程序和構建的dSYM之間的版本號不匹配是個問題。 (HockeyApp在這裏拋出一個錯誤。)
如果我更新源代碼樹中的Info.plist,我需要處理它的變化。這給我兩個選項,我可以看到:
- 把Info.plist放在源代碼管理下,並讓腳本直接編輯它。但這意味着我需要在每次構建之後檢查更改。
- 忽略Info.plist,並讓腳本直接編輯它。但Info.plist中有很多其他的東西,我想在源代碼管理下想要做。
如何在dSYM中自動更新版本,而無需處理源代碼樹中的Info.plist更改每個版本?
另外,切向:我如何看到dSYM中的版本?
我可能失去了一些東西,但瑣碎的解決方案,我想的是刪除的dSYM目錄,如果有什麼問題吧。如果您使用調試符號構建,則無論如何都會重新生成。 – 2012-11-10 16:25:08
除非讓構建變更源樹,否則刪除dSYM並重建只會重新生成具有錯誤的CFBundleShortVersionString的dSYM。我希望構建不要操縱任何源代碼。 (顯然,我會做任何突變*我*需要做的,並檢查它是否正常工作,而不是每個構建。) –
構建階段的執行順序是什麼?自定義階段何時執行? – Felix