关于iOS自动化构建其实并不复杂,经过一些简单的Git与Xcode指令,加上UI,咱们本身也能够动手编写一款自动化构建工具。这在以前的博客中也有涉及,有兴趣的朋友能够在以下地址找到这篇博客:java
本身动手设计一款iOS自动构建发布工具:http://www.javashuo.com/article/p-wampomlc-u.htmlgit
本篇博客主要记录使用Jenkins搭建iOS自动化构建项目的过程,关于Jenkins的更多自动化脚本的应用,有机会后面再出专门的博客介绍。api
Jenkins的安装很是方面,在以下官网能够直接下载Jenkins的安装包,其中有支持各个平台的安装包,选择本身所须要的进行下载安装便可。xcode
安装完成后,Jenkins会自动启动运行,在当前电脑的8080端口开启一个Web应用服务,若是是第一次安装启动,咱们须要配置一个帐户做为初始用户。app
对于在Mac上Jenkins的启动,有两种方式:curl
方式一:直接运行Java归档文件启动Jenkinsiphone
若是是Mac电脑,Jenkins安装完成后,在Applications目录下会多出一个Jenkins文件夹,这个文件夹中包含一个jenkins.war的文件,以下图所示:工具
使用以下命令来启动Jenkins:ui
java -jar /Applications/Jenkins/jenkins.war
使用这种方式启动的Jenkins,要关闭服务须要找到Jenkins服务对应的PID,在终端输入以下命令:
ps
在终端输出的信息中,能够看到Jenkins服务所对应的PID号,以下图:
终端使用以下命令将此服务杀死便可:
kill -9 PID号
方式二:使用Mac的启动进行控制器启动Jenkins
若是成功安装了Jenkins,在Mac电脑磁盘的资源库中的LaunchDaemons文件夹下能够找到Jenkins的启动配置文件,以下图:
在命令行中执行以下命令便可启动Jenkins服务:
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
使用以下命令关闭Jenkins服务:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
在Jenkins的主页选择新建一个项目,建立选项中,咱们输入项目名称,并选择构建一个自由风格的软件,以下图:
下一步将进入到项目配置界面,首先须要设置下通用的配置,以下图:
其中,描述部分能够填写项目的相关介绍,丢弃旧的构建设置构建记录保存的天数和最多保持多少个构建记录等。
源码管理的配置是比较重要的一步,其用来设置构建项目从哪里拉取项目的源代码以及进行源码更新的操做。以下图:
若是使用的是Git仓库,如上图所示,须要配置项目的路径,帐户以及要进行构建的分支。帐户的主要用途是使得Jenkins有权限拉取项目的代码,若是以前没有添加过,能够点击右侧的Add按钮进行添加,以下图:
能够选择配置用户名加密码的方式添加帐户,也可使用SSH公钥的方式。
下一步咱们须要配置构建的触发器,构建触发器有多种形式,好比定时触发构建,远程触发,代码提交后触发等等,以下图:
其中远程触发是指咱们能够经过远程访问Jenkins服务器地址加上令牌参数来触发构建。
以后再构建一栏中选择增长构建步骤->执行Shell,添加以下Shell脚本:
export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 /usr/local/bin/pod install xcodebuild -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名.xcarchive" -workspace 你的项目名.xcworkspace -sdk iphoneos -scheme "你的项目名" -configuration "Release" archive xcodebuild -exportArchive -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名.xcarchive" -exportPath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/buildIPA" -exportOptionsPlist '/Users/Shared/Jenkins/Home/workspace/Tictalk-iOS/ExportOptions.plist' -allowProvisioningUpdates curl -F "file=@/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/buildIPA/你的项目名.ipa" -F "uKey=蒲公英userKey" -F "_api_key=蒲公英apikey" https://qiniu-storage.pgyer.com/apiv1/app/upload
上面脚本中,xcodebuild -archivePath 命令用来编译项目,若是你的项目没有使用workspace,须要将命令中的workspace修改为project,configuration参数用来配置编辑的方式,Release为发布环境。xcodebuild -exportArchive 命令用来处处API包,须要额外注意,提早咱们须要在/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名这个目录下添加一个ExportOptions.plist文件,新Xcode若是不配置这个文件是没法打包成功的。curl -F 命令是用来将打包好的IPA包自动上传到蒲公英分发平台。
ExportOptions.plist文件编写格式以下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>compileBitcode</key> <false/> <key>method</key> <string>ad-hoc(IPA包模式)</string> <key>provisioningProfiles</key> <dict>(下面设置bundleID对应的provisioningProfiles文件名) <key>com.***</key> <string>AD_HOC</string> <key>com.***.TKNotificationCentent</key> <string>Content</string> <key>com.***.TKNotificationService</key> <string>Service</string> </dict>(下面配置证书) <key>signingCertificate</key> <string>iPhone Distribution</string> <key>signingStyle</key> <string>manual</string> <key>stripSwiftSymbols</key> <true/>(下面配置teamID) <key>teamID</key> <string>KJYHPT****</string> <key>thinning</key> <string><none></string> </dict> </plist>
配置完了上面的脚本,你能够尝试点击当即构建按钮进行构建,固然构建过程当中极有可能会出错,你能够根据log输出检查下是不是由于下面的问题。
多是Jenkins找不到git所在位置,在Jenkins的系统设置中选择全局工具配置,配置git路径以下图所示:
这一步出错的可能性极大,首先你的电脑可使用pod不表明jenkins用户有使用pod的权限,最好使用jenkins用户登陆电脑,进行pod的更新升级,或者直接使用jenkins用户登陆,找到咱们的项目,手动使用pod进行第三方的安装。
和git命令出错的问题基本一致,咱们须要配置路径。在Jenkins的系统设置中找到系统配置,设置xcode相关工具以下:
首先确保你的应用证书放在了钥匙串的系统分类下,如图:
其次,须要将Provisioning Profiles文件复制到下面的目录下,切记:
/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles
最后,请确承认以使用Xcode手动进行编辑和打包。并且证书和Provisioning Profiles文件必定要正确和匹配。