作者:怪兽monster
链接:https://www.jianshu.com/p/f4a0093d3bed

一、安装本地Jenkins

1、通过Home brew安装本地Jenkins

brew install Jenkins

没安装Home Brew的可使用命令自行安装

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2、启动Jenkins

终端输入命令启动Jenkins

jenkins

待Jenkins启动后,浏览器打开:http://localhost:8080/

3、解锁Jenkins

按照提示到文件所在目录并拷贝初始密码,解锁Jenkins。

4、安装插件

安装插件.png

可以选择推荐的插件,也可自行选择插件安装。

5、设置登录账号密码

设置登录账号密码.png

二、配置Jenkins

1、安装插件

到系统管理-->插件管理-->可选插件中,搜索安装以下插件:Keychains and Provisioning Profiles Management(用来管理本地keychain和iOS证书)Xcode integration (用于xcode构建)

插件安装.png

搜索安装插件.png

2、配置证书

插件安装完成后,在系统管理中找到刚安装的Keychains and Provisioning Profiles Management插件:

Keychains and Provisioning Profiles Management.png

3、配置login.keychain和描述文件

1、login.keychain文件路径:

~/Library/Keychains

如果该路径下只有login.keychain-db,可以复制出来删除-db。

2、Provisioning Profiles路径一般为:

/User/{用户名}/Library/MobileDevice/Provisioning Profiles

配置证书.png

配置完成后点击Save保存。

三、新建任务

1、创建一个自由风格的任务:

新建任务.png

2、项目配置:

1、丢弃旧的构建(按需填写)

丢弃旧的构建.png

2、源码管理:

源码管理.png

3、构建环境:

构建环境.png

4、增加构建步骤:
可选Xcode编译,也可以选择Shell脚本使用Xcodebuild命令编译,这里只介绍shell脚本的方式:增加构建步骤-->Execute shell

echo "=================1.创建环境及文件路径================="# $HOME表示 Jenkins 的主目录# 项目输出路径OUTPUT_PATH="/Users/guaishou/autopackaging"echo $OUTPUT_PATHif [ ! -d $OUTPUT_PATH ]; thenmkdir $OUTPUT_PATHfi# 创建当前任务下的 项目文件 环境# ${JOB_NAME} 当前任务名称JOB_NAME_PATH="$OUTPUT_PATH/${JOB_NAME}"echo $JOB_NAME_PATHif [ ! -d $JOB_NAME_PATH ]; thenmkdir $JOB_NAME_PATHfi# 项目工程名APP_NAME="sudi"#项目scheme名称,一般跟都是跟APP_NAME是一致的SCHEME_NAME="jixain" # 项目中 Info.plist 的绝对路径PLIST_PATH="$HOME/jenkins/workspace/${JOB_NAME}/${APP_NAME}/${APP_NAME}/Info.plist"# 获取项目的版本号、App名称BUNDLE_SHORT_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PLIST_PATH}")DISPLAY_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleDisplayName" "${PLIST_PATH}")# ipa存放的路径IPA_PATH="${JOB_NAME_PATH}/build"# 创建 ipa 路径文件夹if [ ! -d $IPA_PATH ];thenecho '文件夹不存在,创建文件夹'mkdir $IPA_PATHelseecho '文件夹已存在,删除文件夹内所有文件'rm -rf $IPA_PATH/*fi# archive 文件路径ARCHIVE_PATH="${IPA_PATH}/${APP_NAME}_${BUILD_ID}.xcarchive"echo "=================2.进入工程目录================="cd $HOME/jenkins/workspace/${JOB_NAME}/${APP_NAME}echo "=================3.清理工程================="xcodebuild clean -target "${APP_NAME}" -configuration 'Release'echo "=================4.解锁钥匙串================="# 这里读取了 Jenkins 下的 Library 中的 Keychains#如果构建环境配置看keychain,此步骤可省略
security unlock-keychain -p "电脑登录密码" "${HOME}/Library/Keychains/login.keychain-db"echo "=================5.打包生成 xcarchive 文件================="# 这里采用了自动签名的方式,可自行配置 CODE_SIGN_IDENTITY 和 PROVISIONING_PROFILE# 如果是使用了cocopods的workspace,可将 -project 替换为 -workspace , .xcodeproj 替换为 .xcworkspacexcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${SCHEME_NAME}" -configuration "Debug" -archivePath "${ARCHIVE_PATH}"echo "=================6.导出 ipa ================="# ExportOptions.plist主要是描述了导出的 ipa 使用的相关证书和配置文件# 不知道怎么填写的自行百度xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath "${IPA_PATH}" -exportOptionsPlist "${JOB_NAME_PATH}/ExportOptions.plist"echo "=================7.上传到蒲公英发布平台 ================="PASSWORD=555555GIT_MESSAGE=`git log -1 | sed -n '5,$p'`
curl -F "file=@${IPA_PATH}/${SCHEME_NAME}.ipa" \-F "uKey=你的User Key" \-F "_api_key=你的Api Key" \-F "buildInstallType=2" \-F "buildUpdateDescription=commitId:${GIT_COMMIT}-message:${GIT_MESSAGE}" \-F "buildPassword=${PASSWORD}" \
https://www.pgyer.com/apiv2/app/upload
echo "=================8.通知企业微信 ================="CURL_PSOT_DATA="   {
       \"msgtype\": \"text\",
       \"text\": {
           \"content\" : \"${DISPLAY_NAME}_iOS_${BUNDLE_SHORT_VERSION}构建成功!\n环境:Debug\n下载:蒲公英对应下载地址\n密码:${PASSWORD}\n更新:${GIT_MESSAGE}\"        }
  }"
curl '企业微信机器人地址' \   -H 'Content-Type: application/json' \   -d "$CURL_PSOT_DATA"

关于蒲公英部分和企业微信部分,可以去蒲公英官网和企业微信中查看对应的API。

三、立即构建

立即构建.png

点击立即构建,就可以完成iOS项目的自动构建了。

四、多分支多环境打包配置

1、参数化构建:

参数化构建.png

按照上图方式配置完后,需要在shell脚本中对以下进行修改:

xcodebuild clean -target "${APP_NAME}" -configuration '${bulidEnvironment}'

xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${SCHEME_NAME}" -configuration "${bulidEnvironment}" -arch arm64 -archivePath "${ARCHIVE_PATH}"

源码管理里的分支应该填对用的git参数名称:

源码管理.png

配置完成后,立即构建按钮就会变成这样:

构建.png

点进去选择对用的分支和参数进行构建:

多参数构建.png

ios 自动打包命令_【实践】iOS使用Jenkins实现自动化打包并上传蒲公英相关推荐

  1. ios文件扩展名_安卓JY Share | 还在为担心文件上传成为 base.apk,这个应用帮你解决...

    JYshare是一款提取手机里的软件并可以重命名的应用.不知道你们有没有这种烦恼,想要将应用分享到QQ群,文件名却是 base.apk ,只有下载后才能看到应用名称是什么,即使是私聊发送也会显示包名, ...

  2. ios 自动打包命令_通过命令行xcodebuild编译打包iOS应用

    点击上方"软件测试精品"关注我们 为什么要自动化打包? iOS编译打包需要签名,测试包又需要连接不同后台服务器,开发人员就需要不断地打开Xcode编译打包成ipa,然后上传到ftp ...

  3. iOS fastlane 自动打包,上传蒲公英

    文章目录 前言 fastlane 介绍: 1. 安装环境 1.1 安装 Homebrew 1.2 安装 fastlane 2. fastlane 配置 2.1 进入到工程目录 .xcworkspace ...

  4. iOS基于jenkins打包+上传蒲公英+钉钉群通知

    背景:iOS稍微大一点的项目,archive一次需要十几分钟,对开发而言,有时候需要切换分支打包,如果异地办公的情况还要提供测试包,非常麻烦,所以提供远程打包是必不可少的. 一.本地配置jenkins ...

  5. 【游戏开发进阶】教你Unity通过Jenkins实现自动化打包,打包这种事情就交给策划了(保姆级教程 | 命令行打包 | 自动构建)

    文章目录 一.前言 二.Jenkins简介 三.Jenkins的下载与安装 1.JDK下载与安装 2.Jenkins下载 3.Jenkins安装 4.Jenkins初始化 四.Jenkins的基本操作 ...

  6. android自动发布,Jenkins + Android 自动化打包 发布到蒲公英

    写在前面 近期Android的小伙伴们也开始要发测试版本了,由于之前搭建了Jenkins + fastlane自动化打包iOS应用 ,所以这次就想一起解决Android的问题 最先想到的方案当然就是跟 ...

  7. iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store

    下面进行步骤介绍! 利用Appuploader这个软件,可以在Windows.Linux或Mac系统中申请ios和上传IPA到App Store Connect. 非常的方便,没有Mac也可以用App ...

  8. jekins自动打包java,Jenkins实现自动化打包并集成fir平台(超详细)

    解放你的双手! 作者博客 http://www.cnblogs.com/zhaoyanjun/ 文章目录 安装Tomcat Jenkins 部署到 Tomcat 填写 Jenkins 超级管理员密码 ...

  9. Android——Gradle自动打包上传蒲公英并进行钉钉群提醒

    开发测试阶段频繁打包未免太过枯燥,自动打包发布解放双手.上一节我们分析了fastlane打包发布的过程,嗯~总体来说有点繁琐,而且Android使用fast lane自动打包网上资料比较少,出错之后解 ...

  10. Jenkins实现android自动打包 上传蒲公英及fir.im

    下载jenkins https://jenkins.io/index.html 下载后得到jenkins.msi文件,直接安装 访问http://localhost:8080 选择安装推荐的插件之后进 ...

最新文章

  1. 代码之谜(三)- 运算符
  2. 一次编译libmono.so的记录
  3. 2021阿里云开发者大会|【云原生数据库:一站式数据服务】分论坛即将开启
  4. 议rman的crosscheck和obsolete
  5. 高性能、高并发TCP服务器(多线程调用libevent)
  6. 02将代码开源到github(不会使用github的来看看吧)
  7. python递归函数的使用方法_让你Python到很爽的加速递归函数的装饰器
  8. 自己配置的WAMP环境,扩展oracle函数库(oci)
  9. bigdata learning unit two--Spark environment setting
  10. loadrunner录制时web时,安全证书问题
  11. (笔试题)被3和5整除的数的和
  12. Windows Phone实用开发技巧(33):不重启程序切换当前语言
  13. 代价敏感错误率与代价曲线
  14. The root link base_link has an inertia specified in the URDF, but KDL does not support a root ...
  15. ECNU203.2333进制
  16. flex 做的小相册+向上滚动字体
  17. 微信小程序获取并修改app.js中的值
  18. [附源码]java毕业设计病历管理系统
  19. 终于等到了!十位Java架构师整理的“阿里P7”养成计划
  20. U盘容量变小?这儿有解决方法!

热门文章

  1. 3.1.10 OS之基本分段存储管理(段表、地址变换、信息共享)
  2. vnc移植_VNC远程控制软件使用说明
  3. Git 之一 起源、安装、配置
  4. C51对标准C语言的扩展 / 数据类型
  5. 重启计算机设的桌面背景就没了,桌面壁纸无法保存怎么办?Win7系统重启后不保存桌面背景解决方法...
  6. 异步加载js的三种方法
  7. 发现程序美----while+for冒泡实现的
  8. golang——net/rpc包学习
  9. kafka概念使用简介注意点
  10. UVA 10976 Fractions Again?!【暴力枚举/注意推导下/分子分母分开保存】