一、安装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主页 点击左侧栏“系统管理”>>>>>>>“Keychains and Provisioning Profiles Management”
需要上传login.keychain文件,该文件获取方法,在终端中输入
cd ~/Library/Keychains
在终端键入ls详见下图
然后添加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的系统目录下,证书默认都在登录目录下
四、配置项目
创建一个任务>>>>>点击任务>>>>点击任务栏左侧的“配置”,配置分为6步,如下图
1.General
2.源码管理
3.构建触发器
指定时间构建,例如:
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
这个多说一句,这次填的密码是动态授权码而不是账户密码。
最后保存走人。
Editable E-mail notification也差不多,这里就不写了,如果有疑问请@我
- 归档成品
**/.ipa
五、 jenkins使用
选中项目>>>左边工具栏“立即构建”
最后去工作区 按着你设置的路径找到 ipa文件下载就下来使用,或者去svn找你上传的ipa文件,或者去蒲公英查找
-
注意:最后多说一句,如果你的ObjectC项目中使用了动态库,那么脚本可能就打不出ipa包了。这是因为动态库不编译在二进制文件中。