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