网络

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 网络

使用命令行实现iOS持续集成

作者:中国IT实验室收集整理出处:博客2013-01-30 06:35

  这几天稍稍研究了一下这些命令行,根据捕捉到的命令进行了整理,目前整合出了完全使用命令行来实现iOS的持续集成的方式,目前把相关的命令行代码分享一下,供大家参考:

  #设置命令路径

  WORKSPACE_PATH=`pwd`

  SCAN_BUILD_PATH=~/dev-tools/clang/llvm/tools/clang/tools/scan-build/scan-build

  CLANG_PATH=/usr/bin/clang

  XCODEBUILD_PATH=/usr/bin/xcodebuild

  XCRUN_PATH=/usr/bin/xcrun

  #设置用户变量(需要用户进行配置,否则构建会失败)

  #静态扫描第三方问题数目

  ERROR_COUNT=0

  #要打包的Target名称

  APP_TARGET=

  #单元测试的Test Target名称

  #APP_TEST_TARGET=

  SIMULATOR_SDK=iphonesimulator6.0

  OS_SDK=iphoneos6.0

  #输入内测包所需的mobileprovision文件位置

  MOBILEPROVISION_PATH=

  #输入解锁登录证书的密码

  PASSWORD=

  cd ${WORKSPACE_PATH}

  #执行静态代码扫描

  rm -rf scan.output

  rm -rf ${WORKSPACE_PATH}/clangScanBuildReports

  ${SCAN_BUILD_PATH} -k -v -v -o ${WORKSPACE_PATH}/clangScanBuildReports --use-analyzer ${CLANG_PATH} xcodebuild -target ${APP_TARGET} -configuration Debug -sdk ${SIMULATOR_SDK} clean build | tee scan.output

  ACC_ERROR_COUNT=`grep -E '^scan-build: ([0-9]+) bugs found' scan.output | awk '{print $2}'`

  #处理检查结果,如果扫描出的问题数目多于第三方问题总数表示本工程也存在问题,构建失败

  if [ ${ACC_ERROR_COUNT} -gt ${ERROR_COUNT} ]; then

  echo "scan-build found ${ACC_ERROR_COUNT} bugs, larger than ${ERROR_COUNT}. Please check..."

  exit 1

  fi

  #自定义脚本(可用于切换环境或者更改签名)

  #执行单元测试

  #编译测试环境app(可以自行更改sdk参数和configuration参数)

  ${XCODEBUILD_PATH} -target ${APP_TARGET} -sdk ${SIMULATOR_SDK} -configuration Debug clean build

  #自定义脚本(可用于切换环境或者更改签名)

  #解锁登录证书链

  /usr/bin/security list-keychains -s ${HOME}/Library/Keychains/login.keychain

  /usr/bin/security default-keychain -d user -s ${HOME}/Library/Keychains/login.keychain

  /usr/bin/security unlock-keychain -p ${PASSWORD} ${HOME}/Library/Keychains/login.keychain

  #编译线上环境app(可以自行更改sdk参数和configuration参数)

  ${XCODEBUILD_PATH} -target ${APP_TARGET} -sdk ${OS_SDK} -configuration Release clean build

  #构建ipa包

  ${XCRUN_PATH} -sdk ${OS_SDK} PackageApplication -v ${WORKSPACE_PATH}/build/Release-iphoneos/${APP_TARGET}.app -o ${WORKSPACE_PATH}/build/Release-iphoneos/${APP_TARGET}-Release-RC.ipa --embed ${MOBILEPROVISION_PATH}

  #自定义脚本(svn的还原或者移动安装包位置)

  目前在本地生活业务线已经进行了相关的测试,目前验证的结果显示和使用Xcode等插件的效果是一致的;

http://softtest.chinaitlab.com/UploadFiles_3528/201301/2013012821484488.png

http://softtest.chinaitlab.com/UploadFiles_3528/201301/2013012821493129.png

相关文章

关键词:网络优化,命令行,iOS,持续集成

责任编辑:白志飞

网警备案