Jenkins + Shell命令 + 蒲公英 iOS项目持续集成

1.安装jenkins:Terminal安装

  • 安装HomeBrew (若已安装跳过此步骤)
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 安装jenkins
    brew install jenkins

2.启动jenkins

3.创建项目

  • 新建项目


    新建项目
  • 创建一个自由风格的软件项目


    创建一个自由风格的软件项目
  • 项目基本信息


    项目基本信息
  • 源码管理(待构建项目采用Git进行源码管理)


    源码管理
  • 构建触发器(采用 Poll SCM)


    构建触发器(每周一至周五早上9点检测一次Git版本是否更新)
Poll SCM 设置规则

MINUTE HOUR DOM MONTH DOW
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
第五个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

  • 增加构建步骤(采用Execute shell)


    增加构建步骤
  • 编写Execute shell


    编写Execute shell
  • 脚本命令如下
PROJECT_NAME="工程名"
BUILD_CONFIGURATION="Release"
SCHEME_NAME="scheme的名字"
CODE_SIGN_DISTRIBUTION="签名证书"
xcodebuild clean -workspace $WORKSPACE/$PROJECT_NAME/$PROJECT_NAME.xcworkspace -configuration "$BUILD_CONFIGURATION" -scheme "$SCHEME_NAME"
xcodebuild archive -archivePath "$WORKSPACE/build/$PROJECT_NAME.xcarchive" -workspace $WORKSPACE/$PROJECT_NAME/$PROJECT_NAME.xcworkspace -sdk iphoneos -scheme "$SCHEME_NAME" -configuration "$BUILD_CONFIGURATION" -CODE_SIGN_IDENTITY="$CODE_SIGN_DISTRIBUTION"
xcodebuild -exportArchive -archivePath "$WORKSPACE/build/$PROJECT_NAME.xcarchive" -exportPath "$WORKSPACE/build/" -exportOptionsPlist "$WORKSPACE/build/ExportOptions.plist" -allowProvisioningUpdates
rm -f $WORKSPACE/build/${JOB_NAME}@*.ipa
mv $WORKSPACE/build/$SCHEME_NAME.ipa $WORKSPACE/build/${JOB_NAME}@${BUILD_ID}.ipa
curl -F "file=@$WORKSPACE/build/${JOB_NAME}@${BUILD_ID}.ipa" -F "uKey=替换成你的uKey" -F "_api_key=替换成你的apiKey" https://www.pgyer.com/apiv1/app/upload
  • 保存

4.导出ExportOptions.plist

  • Xcode 9 默认不允许访问钥匙串的内容,必须要设置 allowProvisioningUpdates 才会允许访问,Jenkins的Xcode插件目前无法支持此项完成打包流程。
解决办法:
  • 使用Xcode手动打包,在导出的文件夹中找到ExportOptions.plist文件。
  • 打开ExportOptions.plist文件,设置compileBitcode 为NO。
  • 检查ExportOptions.plist文件下的provisioningProfiles是否设置正确。
  • 将ExportOptions.plist文件放在jenkins主目录/jobs/Project/workspace/build目录下。

5.立即构建

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容