持续集成与jenkins
持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。
Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
0x01 Jenkins的安装
1.安装方式
1. 源码
直接在前往官网下载安装即可
2. homebrew
- 首先安装brew,可直接在
Terminal
中执行
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装brew
- brew安装完成之后继续执行
brew install jenkins
准备工作就此完成
2. 配置自动启动
* 配置launchd
文件
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
pilst
文件的详细说明可以在官网找到详细说明。
注意:如果需要在内网其他设备访问,需要将
<string>--httpListenAddress=127.0.0.1</string>
这行删除
* 启动Jenkins
终端运行
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
启动jenkins
现在就可以通过localhost:8080
访问jenkins
3. Xcode偏好设置添加开发者账号
0x02 创建工程
1. 点击新建
2. 创建一个自由风格的软件
149794645897473. 源码管理我这里选择git
14979465324871
注意: 如果
Credentials
报错,请确认有权限访问git
项目。Branch Specifier (blank for 'any')
可指定构建分支,可修改。源码库浏览器
选择自动就好
如果项目含有submodules
,点击Additional Behaviours
添加一个Advanced sub-modules behaviours
,勾选Recursively update submodules
。
4. 构建触发器
这里我选择Poll SCM
这里我选择每隔2分钟检测一次git
版本是否有更新,如果有更新则开始集成。参数解释可点击jenkins
问号。
5. 添加构建步骤
1. 点击添加构建步骤
,选择Xcode
14979478444688
如果没有Xcode选项,请前往
系统管理->管理插件->可选插件
,搜索Xcode并安装。
2. 设置工程
14979477283037Target
是工程的名字,Configuration
可是这为Release
与Debug
,这里由于是开发包,所以我选择Debug
。
3. 自动生成ipa
14979478833833
4. 解锁Keychain
14979479484489
Keychain path
填写${HOME}/Library/Keychains/login.keychain
,密码是你设置的密码。
5. 高级设置
14979480943857如果使用了*.xcworkspace
需要填写Xcode Workspace File
,反之不需要要填。
6. 点击保存
0x03 开始集成
项目进入详情页,点击立即构建
即可开始集成
0x04 常见错误
1. FATAL: No global development team or local team ID was configured.
前往配置->Code signing & OS X keychain options
,在Development Team ID
输入Team ID
可在
Keychain
找到开发者证书iPhone Distribution: **** (329***)
,括号内的就是Team ID
2. xcodebuild: error: The workspace named "Demo" does not contain a scheme named "Demo". The "-list" option can be used to find the names of the schemes in the workspace.
使用Xcode
打开需要构建的工程一次即可。(部分Schemes
不是共享的,使用Xcode
打开一次可自动生成Schemes
)
3. `The following build commands failed:
PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock ~/Library/Developer/Xcode/DerivedData/Demo-gkdfdjvhexwyaxdihkolvjuorxbo/Build/Intermediates/ArchiveIntermediates/Demo/IntermediateBuildFilesPath/Demo.build/Release-iphoneos/Demo.build/Script-7D2AC29159F170198B856782.sh`
添加一个构建步骤Execute bash
, 内容如下
#!/bin/bash -l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
pod install --verbose --no-repo-update
并拖拽到Xcode
构建的前面
4. xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
在终端运行
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
5. 无法正常打包
在终端输入
open ~/.jenkins/workspace/
使用Xcode
打开工程并Archive
,查看错误原因。
网友评论