文档库 最新最全的文档下载
当前位置:文档库 › jenkins+osx虚拟机+xcode实现自动打包

jenkins+osx虚拟机+xcode实现自动打包

jenkins+osx虚拟机+xcode实现自动打包
jenkins+osx虚拟机+xcode实现自动打包

jenkins+osx虚拟机+xcode实现自动打包

一、VMware安装osx系统

1、安装VMware 12,安装完成后关闭VMware,打开系统进程管理,进入服务管

理,关闭如下4个服务:

VMnetDHCP

VMUSBArbService

VMware NAT Service

VMwareHostd

2、下载unlocker206.zip 工具,解压后,找到unlocker206\win-install.cmd 以管

理员身份运行,直到运行命令窗口关闭。

3、成功完成步骤2后,VMware就可以识别和安装苹果osx系统了,如无法添加

osx系统虚拟机,请检查步骤1和2是否按要求完成。

4、打开VMware,新建虚拟机,选择需要安装的osx系统:

5、按步骤设定完成后,进入虚拟机设置页面,设置光驱读取的iso镜像路径(下

载完整的osx的iso镜像文件,如下载的是dmg文件,则可下载使用

“UltraISO软碟通V9.6.0.3000”将dmg文件转换为iso镜像文件):

6、开启虚拟机,如果出现如下报错:

.

则需找到所建立的虚拟机中的 XXXX.vmx 文件(XXXX代表你建立的虚拟机名称)如下图:

,使用记事本打开后,在 smc.present = "TRUE" 后添加“smc.version = 0”(建议您复制,不包括引号)后保存,问题即可解决。然后重启虚拟机即可。

7、运行安装后,按如下步骤安装osx:

抹掉成功后,然后点击左上角的磁盘工具,选择退出磁盘工具。然后在安装界面点击继续,再点击安装,,,,静待佳音,以后就是初次进入系统的配置了。

8、系统安装完成后,配置网络为桥接,设置mac的网络为DHCP自动获取,然后

通过AppStore下载安装xcode(如果提示系统版本过低,则需先升级系统版

本),安装完成后再安装jdk1.8(jenkins的slave节点机要求安装1.8版本)

9、打开mac的系统偏好设定---- 共享,选择“远程登录”,允许访问栏选择“仅

这些用户”,添加当前登录的用户到允许列表中。

10、Git生成秘钥,打开终端,输入命令 ssh-keygen -t rsa ,后续全按回车,成功

生成秘钥。打开xcode,同时按下“Windows”+ “,”两个键打开git秘钥配对。

在弹出的配对框中,点击+号,选择添加“Add Repository…”,选择git 和秘

钥的私钥。点击保存完成mac系统秘钥配对设置。

完成mac的配置后需登录gitlab,进入你的账号的如下页面

点击添加公钥,在下面输入你mac上生成的公钥,可打开终端,

cd 到home目录,然后 cd到 .ssh目录下,用vi打开 rsa_id.pub,复制全部内

容输入到gitlab,点击保存即可完成git通信配置。

11、安装xcode编译证书(该步骤请ios开发同事帮忙),安装完成后使用命令行

xcodebuild编译验证是否配置正确。

12、登陆Jenkins,点击下图红圈按钮进入节点添加:

下面是节点配置:

注意事项:

A、填写正确mac虚拟机ip 和已建立好的作为工作空间的文件夹路径

B、选择启动方法,推荐选择Launch slave agents on Unix machines via SSH

C、设定登陆认证Credentials:点击,进入认证添加页面,

选择Username with password,然后输入mac虚拟机中你添加到远程登陆的用户名和密码。点击ADD完成添加,然后在Credentials后的选择框中选择你刚添加的认证。

完成以上步骤后点击保存,完成Jenkins的节点添加。

13、节点添加完成后,需关闭虚拟机和其所在物理机防火墙,或添加22端口的入

站出站规则。然后连接节点完成Jenkins与mac虚拟机的通信。

14、配置xcode构建项目:按图操作

点击新建,进入项目新建页面

输入项目名称,选择“构建一个自由风格的软件项目”,点击“ok”进入详细配置页面:

A:配置概要信息

注意图中最后一个红圈部分,一定要添加正确,勾选后,填写你配置连接好的mac节点名称,否则Jenkins无法实现远程构建。

B:源码管理设定

注意输入正确的git源码库的URL,和gitlab浏览器浏览的URL,以及版本。

C:构建触发器

此处配置构建触发机制,当前选择的是轮询git库触发构建(@hourly表示轮询

间隔为1小时)

也可配置远程URL触发,自定义URL,远程登录该URL即可触发构建。

D、构建设定

点击添加构建步骤,选择“xcode”,注意选择前需先安装Xcode integration

插件,如未安装可进入Jenkins的系统管理—插件管理中搜索安装该插件。

选择xcode后进行配置构建信息:

先是基础设定:

?Target:就是我们在项目中建立的Target如果不清楚有哪些Target的情况下可以到xcodeproj或xcworkspace的目录下运行如下命令

xcodebuild -list即可看到Targets,其中是所有可以用的target。

?Clean before build?:这个是在编译前是否clean一次,一般是选择YES。

?Configuration: 对应的是xcodebuild命令里的-configuration的参数,可选项为[Debug、Release],一般都填Debug,这样就可以将打包后的

ipa交付给测试人员测试

?Pack application and build .ipa?:这个是在结束是是否要产生对应的ipa文件,我们此处不勾选,通过shell命令实现。

再是签名设置:

如果不知道具体填什么可以到钥匙串访问中寻找 iPhone Distribution:开头

的所使用的证书,然后选中后点击右键选择显示简介,在弹出的窗口中找到常

用名称,将其复制填入即可。注意下面几个参数:

?Unlock Keychain?: Jenkins需要访问Keychain,获取响应的key,所以需要授权。选上就自动解锁。需要提供密码。

?Keychain path: 默认都是${HOME}/Library/Keychains/login.keychain ?Keychain password: 钥匙串的密码

然后是Advanced Xcode build options(xcodebuild命令的配置)

因当前项目是按工作空间编译打包,所以必须配置的是(注意,进入如下配置前,需先保存构建项目并运行一次,因为mac虚拟机上当前的代码还未通过Jenkins下载下来,所以无法找到要编译的代码)

⑴Xcode Schema File :该参数通过在工程目录下执行 xcodebuild –list 查看

Schema字段查找。(使用工作空间打包时,该选项必填,否则无法编译打包)

⑵Xcode Workspace File:输入mac虚拟机上需编译的工作空间中 *. Workspace的文件路径,注意不能携带该文件的扩展名 . Workspace。

如是按项目编译则需配置

Xcode Project Directory和Xcode Project File,注意这两项也是配对出现的,必须同时配置。

E、将app签出为ipa包:

构建完成后生成的是app包,需使用shell命令签出为ipa包,命令如下:xcrun -sdk iphoneos PackageApplication -v */WenWenJewel.app -o

*/wenwen_debug.ipa

注意其中 * 号代表的是Jenkins生成的app包的保存路径,该值需先运行一次构建并编译成功后通过日志取得。

F、将生成的ipa包进行处理,将老的ipa包备份,将新的ipa包发送到存储服务器。参考命令如下:

bakdate=`date '+%Y%m%d%H%M%S'`

echo $bakdate

ssh aiproxy@120.25.196.51 "mv sftp/ios/wenwen_debug.ipa

sftp/ios/his/wenwen_debug.ipa.$bakdate"

scp /Users/wenwen/Library/Developer/Xcode/DerivedData/WenWenJewel-hkezjvjdiojeeqfamltancfhslkk/Build/Products/Debug-

iphoneos/wenwen_debug.ipa

aiproxy@120.25.196.51:/app/aiproxy/sftp/ios

G、发布到fir.im:先下载插件:

https://www.wendangku.net/doc/597894203.html,/fir-plugin-0629.hpi

然后再Jenkins中添加插件系统管理---插件管理进入如下页面:

找到刚下载的插件上传即可完成安装。然后添加构建后步骤:

配置如下:

Fir.im Token :登陆fir,点击

获取token复制就行

IPA/APK Files (optional):你要上传的ipa存放目录,如果是默认打包,可以不填。

H、添加构建后操作的邮件提醒,输入需要提醒的邮箱。

相关文档