在进行自动部署的时候,常常须要用脚本获取程序的最新版本号
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