Jenkins配置

一、安装Jenkins

  • 安装前准备:(安装JDK8.0、tomcat下载)
    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)
例如下图:


Jenkins配置_第1张图片
tuyi.png

三、配置证书

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

cd ~/Library/Keychains

在终端键入ls详见下图


tuer.png

将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,也可以创建一个快捷方式名字叫做login.keychain,upload就好了。


Jenkins配置_第2张图片
tusan.png

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

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

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

Jenkins配置_第4张图片
企业微信截图_e54da8f0-a968-4de2-97c1-5699e93a5943.png

四、配置项目

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


tuliu.png

1.General


Jenkins配置_第5张图片
tu7.png

Jenkins配置_第6张图片
parm.png

2.源码管理


Jenkins配置_第7张图片
tu8.png

3.构建触发器


Jenkins配置_第8张图片
tu9.png

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


Jenkins配置_第9张图片
peizhiImg.png

Jenkins配置_第10张图片
emailImg.png

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

  • 归档成品
    **/.ipa
    Jenkins配置_第11张图片
    A03BC082-B5D5-479B-87FE-F8D18BC3199F.png

五、 jenkins使用

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


Jenkins配置_第12张图片
tu11.png

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

  • 注意:最后多说一句,如果你的ObjectC项目中使用了动态库,那么脚本可能就打不出ipa包了。这是因为动态库不编译在二进制文件中。

你可能感兴趣的:(Jenkins配置)