Jenkins+iOS持续集成细节记录

栏目: Java · 发布时间: 5年前

内容简介:iOS持续集成采用Jenkins已经是一个非常成熟的方案了,以前公司用过,自己还没尝试搭建过,这次尝试了一下,踩了很多坑,网上的很多文章都是早些年的,都9102年了,Jenkins也有了很多变化,Xcode也是10.x版本了。我分享一下我个人觉得要注意的细节。我的项目集成了cocoapods和2个Project,其中一个Project用了Git的submodule。Jenkins下载安装,完成后打开Jenkins的界面,下载一些插件,新建一个空的任务。接下来开始配置,配置我是分三步:1、下载源码 2、配置证

iOS持续集成采用Jenkins已经是一个非常成熟的方案了,以前公司用过,自己还没尝试搭建过,这次尝试了一下,踩了很多坑,网上的很多文章都是早些年的,都9102年了,Jenkins也有了很多变化,Xcode也是10.x版本了。我分享一下我个人觉得要注意的细节。

环境介绍

  • 系统版本:macOS Mojave 10.14.4 (18E226)
  • Xcode版本:Version 10.1 (10B61)
  • Jenkins版本:Jenkins ver. 2.164.2

我的项目集成了cocoapods和2个Project,其中一个Project用了Git的submodule。

开始搭建

Jenkins下载安装,完成后打开Jenkins的界面,下载一些插件,新建一个空的任务。接下来开始配置,配置我是分三步:1、下载源码 2、配置证书和打包选项 3、上传ipa。

下载源码

源码我使用的是Git,代码放在gitee,其实放哪都是类似的。设置Repository URL和SSH,如果配置错误的话,界面会一直报错。Submodule的配置,需要勾选上 Additional Behaviours 勾上 Recursively update submodulesUse credentials from default remote of parent repository 其中第二项的意思是submodule的验证跟主项目一致,我的项目是一致的,可以勾上,若不是的话,需要在想办法,这里没有在深入研究。 cocoapods的话需要在构建中加入shell

export LC_ALL=en_US.UTF-8
/usr/local/bin/pod install --verbose --no-repo-update 

复制代码

可以先尝试一下构建,如果成功。建议去 工作空间 ,找到项目所在的目录,把整个项目复制出来,自己先编译一下,是否能编译过。

注意:

  • 源码SSH一定要切换到jenkens账户,否则一直报错,参考 指定Git源代码时提示无权限
  • 当时我配置URL clone的方式,怎么都会报错,后来换成SSH就OK了。
  • export LC_ALL=en_US.UTF-8 这句话得加,否则会报错

配置证书和打包选项

配置证书比较繁琐,首先去 Jenkins Keychains and Provisioning Profiles Management 上传本机的keychain和Provisioning Profiles,这个网上有教程,可以参考一下,这里介绍的比较详细。Provisioning Profiles拿到的都是UUID的文件名,可以去用xcode打开项目,build settings,搜索profiles,就能找到对应的UUID,上传即可。 添加完后,再到回到 刚建的任务-设置-构建-增加构建步骤 ,新增一个xcode,开始配置xcode。

第一项 General build settingsDevelopment Team ID 这一项,如果不知道从哪里查的话,先用自己的xcode打个包,导出ipa的文件目录中有 ExportOptions.plist 中的 team id 。 把 Generate Archive? 设置为 YES ,又会多出很多选项, Output directory 建议是 ${WORKSPACE}/Build ,如果不在workspace的话,会报错。

第二项 Code signing & OS X keychain options :我一开配置好的,然后选 Read from Xcode Project ,一直都是失败,建议不要勾选这个选项。勾选 Manual signingUnlock Keychain? 把该选的选上, Keychain password 就是本机的登录密码。

第三项 Advanced Xcode build options :这个也比较简单,如果项目是workspace,直接在 Xcode Workspace File 填上workspace的路径就行了,注意不需要填后缀。但是建议还是把其他选项都填上,其中 Xcode Project Directory 会影响第四项的配置,不填的话,会找不到info.plist,导致无法更改 CFBundleVersion

第四项 Versioning :这一项是用于每次构建,动态变更build number的,一般在 Technical version 填上 ${BUILD_ID}

配置完成后,可以构建一下,看看能不能成功。如果失败的话,可以查看一下原因,或者仿照第一步拉源码,把项目拷出来,用xcodebuild尝试打包,确保自己的项目是可以打包的,再查找Jenkins配置的问题。

上传ipa

这一部非常简单,我使用的是蒲公英, 使用 Jenkins 实现持续集成 (iOS) ,先去Jenkins插件下一个 Upload to pgyer ,再到 刚建的任务-设置-构建-增加构建步骤 ,增加一个 Upload to pgyer with api v2pgyer api_key 可以在蒲公英官网找到, scandir 就是ipa所在的目录, file wildcard 是指ipa的文件通配符,注意不是文件的全程,如果目录下只有一个ipa,使用 *.ipa 即可。

结语

每个人的环境和需求都不一样,如果配置过程中出了问题,一定要多看控制台输出,看看哪里报错,报错的原因是什么,错误信息还是比较详细的,一步一步解决。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

特斯拉之父

特斯拉之父

竹内一正 / 千太阳 / 中信出版社 / 2014-12 / 39.00

马斯克的成就前无古人地跨越了各个领域,曾大起大落,成为亿万富翁后,又曾濒临破产。他凭借极强的控制欲、坚强的意志力把人生浓缩得异常精彩,拓展了人类对自身智力与能力限度的想象。乔布斯离开了,马斯克来了,后者离人更远,离神更近。 他的创业故事就是一部真实的好莱坞大片 美国《财富》杂志 “2013年度商业人物” 史上最富激情、传奇、未来感的企业家 他是个外表优雅的生意人、太空的挑战......一起来看看 《特斯拉之父》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具