用shell指令碼獲取svn版本號,作為專案的小版本號
阿新 • • 發佈:2019-01-08
在進行自動部署的時候,經常需要用指令碼獲取程式的最新版本號
在xcode中選中target的 Build Phases , 在Editor 中 選擇 Add Build Phases --> Add Run Script Build Phases 然後新增前提是,(需要安裝好svn客戶端,可以在shell 中先進入到svn目錄,然後執行一下
`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` 的方法,看看能不能獲取版本號
# 獲取XML版本的svn資訊,這樣可以避免不同語言的問題 svnv=`svnversion -c |sed 's/^.*://' |sed 's/[A-Z]*$//'` /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${svnv}" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
安卓
svnv=`svnversion |sed 's/^.*://' |sed 's/[A-Z]*$//'`
echo $svnv
sed -i s/versionName="\(.*build-\)[0-9]*"/versionName="\1$svnv"/ AndroidManifest.xml
cat AndroidManifest.xml |grep versionName
另附一個subversion 建立版本庫的指令碼,需要在create.sh 指令碼同一目錄下面,建立一個conf 資料夾,拷貝 authz,passwd,svnserve.conf 檔案在裡面,作為所有版本庫的共同配置檔案,統一做許可權控制。
#!/bin/sh OPT=$1 svn_dir=/usr/local/svn/ #建立svn倉庫 create() { echo "create repository .." svnadmin create ${svn_dir}${OPT} echo "set auth users" cp ${svn_dir}conf/svnserve.conf ${svn_dir}${OPT}/conf/svnserve.conf echo "set access users" echo " [${OPT}:/] @dev = rw @ui = rw @test = rw * = r" >> ${svn_dir}conf/authz echo "create trunk branches tags .." svn mkdir file://${svn_dir}${OPT}/tags -m -F svn mkdir file://${svn_dir}${OPT}/trunk -m -F svn mkdir file://${svn_dir}${OPT}/branches -m -F } #建立 create