Jenkins配置

一、安装Jenkins

  • 安装前准备:(安装JDK8.0tomcat下载
    1.jdk安装没啥说的,一直按下一步即可完成。
    2.tomcat下载后需要把解压文件夹复制到(/Users/计算机名/Library/)目录下,具体详情请看Mac系统安装和配置tomcat步骤详解
  • jenkins下载,安装有两种方式,具体如下:
    1.下载MAC OS X 也就是pkg包解压安装
    2.下载.war文件,并将jenkins.war拷贝到一个tomcat的webapps目录下,启动本台tomcat,最后访问jenkins.war工程http://localhost:8888/jenkins/(建议这种方式安装,我是按.war安装的)。

二、安装jenkins插件

Jenkins主页 点击左侧栏“系统管理”>>>>>>>“管理插件”>>>>>>选择和上传自己需要的插件(我安装的是Xcode Integration和# Keychains and Provisioning Profiles Plugin)
例如下图:


tuyi.png

三、配置证书

Jenkins主页 点击左侧栏“系统管理”>>>>>>>“Keychains and Provisioning Profiles Management”
需要上传login.keychain文件,该文件获取方法,在终端中输入

cd ~/Library/Keychains

在终端键入ls详见下图


tuer.png

然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果如下图,蓝色框内的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles

接着 “系统管理”>>>>“系统设置”>>>>>全局属性 >>>>Provisioning Profiles Directory Path :
通过.war方式安装的jenkins路径是:${HOME}/Library/MobileDevice/Provisioning Profiles
通过.war方式安装的jenkins 路径是默认的,只需要填写一下密码就可以了(就是电脑开机密码)。

注意:需要把相关的证书放到Keychains的系统目录下,证书默认都在登录目录下

企业微信截图_e54da8f0-a968-4de2-97c1-5699e93a5943.png

四、配置项目

创建一个任务>>>>>点击任务>>>>点击任务栏左侧的“配置”,配置分为6步,如下图


tuliu.png

1.General


tu7.png

parm.png

2.源码管理


tu8.png

3.构建触发器


tu9.png

指定时间构建,例如:
15 15 * * * #下午3:15构建
30 9 * * * #上午9:30构建

4.构建环境(我没选)
5.构建(这个比较操蛋,因为Jenkins对现在的Xcode9插件兼容性不好,打不了包,所以我们使用了xcodebuild打包,所以我直接选“执行 shell”进行构建)
Pod脚本(需要把ProjectName换成自己项目的名字)

#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

cd $WORKSPACE/ProjectName

/usr/local/bin/pod update --verbose --no-repo-update
#配置json文件(项目通过这个文件选择环境、加密de)
echo "{\"environmentType\":\"$environmentType\",\"isEncrypt\":\"$isEncrypt\"}" > cofig.json

构建脚本

#工程名字(Target名字)
Project_Name="XXXXXX"
#配置环境,Release或者Debug
Configuration="Release"

#AdHoc版本的Bundle ID
AdHocBundleID="com.xxxxxx.xxx"

#加载各个版本的plist文件(cd $WORKSPACE/ProjectName)复制(ADHOCExportOptionsPlist)文件到Project文件下
ADHOCExportOptionsPlist=./ADHOCExportOptionsPlist.plist

ADHOCExportOptionsPlist=${ADHOCExportOptionsPlist}

ADHOCCODE_SIGN_IDENTITY="iPhone Distribution: Beijing xxxxxx"
ADHOCPROVISIONING_PROFILE_NAME="xxxxxxx-xxxxxx-xxxxxx-ba4a-xxxxxxx"

#adhoc脚本
xcodebuild -workspace $Project_Name.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath build/$Project_Name-adhoc.xcarchive clean 


xcodebuild archive -workspace $Project_Name.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath build/$Project_Name-adhoc.xcarchive CODE_SIGN_IDENTITY="${ADHOCCODE_SIGN_IDENTITY}" PROVISIONING_PROFILE="${ADHOCPROVISIONING_PROFILE_NAME}" PRODUCT_BUNDLE_IDENTIFIER="${AdHocBundleID}"  


xcodebuild -exportArchive -archivePath build/$Project_Name-adhoc.xcarchive -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath build/$Project_Name-adhoc.ipa

ipa上传蒲公英:

#把ipa包上传到蒲公英
curl -F 'file=@/Users/name/.jenkins/workspace/Project/build/Project-adhoc.ipa/Project.ipa' -F '_api_key=b27f12cd8c5d6b09e580dffxxxxxxxxx' https://www.pgyer.com/apiv2/app/upload

上传svn(这个也比较操蛋最新版的jenkins不支持svn插件了,so)

#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

Project_Name="Name"

cd /Users/apple/.jenkins/workspace/$Project_Name/build

if [ ! -d "Users/apple/.jenkins/workspace/$Project_Name/build/测试" ]; then
    svn co svnUrl --depth=empty --username uesrname --password *******
fi

cd /Users/apple/.jenkins/workspace/$Project_Name/build/测试

find . -name "*.ipa" -type f -print -exec rm -rf {} \;

svn update  

cp -r /Users/apple/.jenkins/workspace/$Project_Name/build/$Project_Name-adhoc.ipa/$Project_Name.ipa /Users/apple/.jenkins/workspace/$Project_Name/build/测试/$Project_Name$BUILD_NUMBER-App.ipa

svn add *

svn ci -m "版本号为2.4.0"

6.构建后操作(看兴趣,不搞也可以)
配置个E-mail notification


peizhiImg.png

emailImg.png

这个多说一句,这次填的密码是动态授权码而不是账户密码。
最后保存走人。
Editable E-mail notification也差不多,这里就不写了,如果有疑问请@我

  • 归档成品
    **/.ipa
    A03BC082-B5D5-479B-87FE-F8D18BC3199F.png

五、 jenkins使用

选中项目>>>左边工具栏“立即构建”


tu11.png

最后去工作区 按着你设置的路径找到 ipa文件下载就下来使用,或者去svn找你上传的ipa文件,或者去蒲公英查找

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

推荐阅读更多精彩内容