用shell脚本获取svn版本号,做为项目的小版本号

在进行自动部署的时候,常常须要用脚本获取程序的最新版本号
shell


在xcode中选中target的 Build Phases , 在Editor 中 选择 Add Build Phases  --> Add Run Script Build Phases 而后添加前提是,(须要安装好svn客户端,能够在shell 中先进入到svn目录,而后执行一下xcode

`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}"

安卓svn

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 文件在里面,做为全部版本库的共同配置文件,统一作权限控制。ui

#!/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