jenkins + git + iOS + 蒲公英自动化构建(mac 本地版)

一、 通过homebrew安装Jenkins

注:因为公司所有的开发都是在mac上开发的,所以这里不对其它系统的jenkins安装方法进行描述,如果没有安装homebrew,可以参照下边链接进行安装:
hombrew官方网站: https://brew.sh/index_zh-tw.html
终端运行如下命令安装Jenkins:

$ brew install jenkins

安装成功之后在终端启动jenkins:

$ jenkins

等待jenkins启动完成之后,就可以在浏览器中输入localhost:8080来访问jenkins服务器:


1756338-3e1a919c12458463.png

打开之后会调到下边的界面:


1756338-93aff712dd844486.png

选择之后会安装一下jenkins插件:
1756338-665678985594ad4c.png

等待插件安装完成,则会出现登录界面:


1756338-3505709f987f8b31.png

创建用户并登录之后,会进入到jenkins管理页面,接下来就是我们项目的配置设置了。
注:这里因为本人mac已经安装过了jenkins所以无法截图,所以截图是借用https://blog.csdn.net/u011537073/article/details/80025716博客的图,如果侵权请留言,我会删除替换图片。

二、 iOS项目的配置

1、安装插件

我们可以在jenkins管理页面的:系统管理->管理插件->可选插件


739679DD-9D65-4AFD-B09F-79FD046E7655.png

我们需要安装的插件:
Keychains and Provisioning Profiles Management
Keychain和描述文件的插件(需要先安装才能上传.keychain文件和描述文件)

注:因为本人只是iOS开发,所以说到的插件只是iOS需要的一些插件,至于其它语言需要的插件请自行google或者百度
2、创建并配置项目

在jenkins首页点击“ 新建任务 ” 进入到创建项目界面:
DE81BA60-F6D4-45F4-A2F9-1E1E422F0942.png

创建完成之后在主页我们可以看到我们创建的项目,点击此项目名称进入到项目详情页面,详情页面可以点击配置对项目进行设置
84BE11F5-982E-4C6E-ACAF-79DBDCAB5844.png

这里使用git来进行版本管理
93ED66E5-D993-4BCF-AE4B-14E5C2DF5074.png
这里使用git和ssh来配置项目

生成ssh私钥和公钥请参考:如何生成公钥和私钥
复制我们生成的公钥,对git仓库进行配置
conding.net:项目 > 设置 > 部署公钥
github: 项目 > Settings > Deploy keys

FACB4665-3E57-4832-801C-BC551FA84D5B.png

5376414E-3DFE-49E4-90EC-1CABB6C3B347.png
ps: 添加私钥的时候记得全部复制,包括-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----
ps: 添加私钥的时候记得全部复制,包括-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----
ps: 添加私钥的时候记得全部复制,包括-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----

添加完成之后选择自己添加的凭据:

F8D9D4A3-4D25-4356-BF98-AEE4108D23EF.png

接下来配置构建触发器,我这里选择的是轮询scm,可以根据自己的需求选择不同的触发方式,语法可以参照:https://www.jianshu.com/p/509c59391b3b

71ABAF0C-75FD-4BD3-9BD7-AA85D62C5004.png
注:因为iOS编译和打包涉及到证书的问题,所以我们先要进行keychains和描述文件的配置
注:因为iOS编译和打包涉及到证书的问题,所以我们先要进行keychains和描述文件的配置
注:因为iOS编译和打包涉及到证书的问题,所以我们先要进行keychains和描述文件的配置

配置方式请参照:https://www.jianshu.com/p/06b93058c83d

keychains和描述文件配置好之后,可以进行下一步配置构建环境:

D8309C4A-3CF2-4C72-B82B-9008BF4F6E5B.png

接下来用shell命令来编译打包,并上传蒲公英

873B70D0-749C-48CB-AD87-FE5FA3E240BC.png

然后在shell命令中编辑如下代码:

#ps:这个代码不太理解,在本地jenkins进行自动化构建的时候不用加也可以成功
#但是当把jenkins服务器放在云服务器上,把我的mac作为一个节点来构建的时候不加是无法正常构建的
#如果有人知道原因请留言
#解锁login.keychain
security unlock-keychain -p "你的电脑登录密码" ~/Library/Keychains/login.keychain
# 工程名
APP_NAME="TestProject"
# 证书
CODE_SIGN_DISTRIBUTION="iPhone Distribution: 证书名字"
# info.plist路径
project_infoplist_path="./${APP_NAME}/Info.plist"
#取版本号
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
#取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
DATE="$(date +%Y%m%d)"
IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa"
#ipa包的储存路径(自己进行配置)
IPA_PATH="/Users/用户名/Desktop/ipa/Demo/${IPANAME}"
echo ${IPA_PATH}
echo "${IPA_PATH}">> text.txt
#Debug 和 release 根据自己的需求进行配置
#下面2行是没有Cocopods的用法
echo "=================clean================="
xcodebuild -target "${APP_NAME}"  -configuration 'Debug' clean
echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -target "${APP_NAME}" -sdk iphoneos -configuration 'Debug' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}" SYMROOT='$(PWD)'
#下面两行是有cocopods的用法
# xcodebuild clean -workspace "${APP_NAME}.xcworkspace" -scheme ${APP_NAME}   -configuration 'Release'

# xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme ${APP_NAME} -archivePath "${ARCHIVE_PATH}/${APP_NAME}.xcarchive"
echo "+++++++++++++++++Run+++++++++++++++++"
xcrun -sdk iphoneos PackageApplication -v "./Debug-iphoneos/${APP_NAME}.app" -o ${IPA_PATH}
#上传到蒲公英
uKey="蒲公英的uKey"
#蒲公英上的API Key
apiKey="蒲公英的API Key"
#要上传的ipa文件路径
echo $IPA_PATH
 
#执行上传至蒲公英的命令
echo "++++++++++++++upload+++++++++++++"
curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
ps : 里边需要替换的参数需替换为自己的参数

到此为止,点击保存,所有的参数已经配置完整,我们回到项目首页:

4EDEA481-D63E-4485-97D6-FBDC0F20E4D7.png
CF0EF163-4255-4BCA-80CC-385AC67F096B.png
B26BB14C-6935-42C7-BF0C-C459D90E0077.png

构建成功,则表示配置完成,以后就可以使用jenkins自动构建你的项目了。

希望对你有帮助,如有问题请留言。

参考:https://blog.csdn.net/u011537073/article/details/80025716

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容