文档章节

iOS Jenkins+蒲公英实现持续集成

zh_iOS
 zh_iOS
发布于 2018/07/05 18:38
字数 960
阅读 30
收藏 0

随着项目的迭代速度不断加快,原始的使用xcode -> product -> archive 的方式已经不能满足迭代需要。还要现在已经有比较成熟的 Jenkins + 蒲公英持续集成方案。最近学习研究学了下这个方案。林林总总,遇到许多坑也学习到很多 。这里把直接把正确的方向分享记录下来 。方便下次再配置环境的时候可以一步到位,直取敌首。

    如果从官网下载安装jenkins的apk包,会默认安装的 /Users/Shared/jenkins 目录下。安装在这个目录下我们使用 jenkins账户访问主账户资源的时候会遇到各种权限问题,我遇到的就是:在jenkins配置页面执行shell脚本的时候提示 permission denied,原因可能是jenkins安装在这个目录下无权访问主账户的某些文件 。 个人也尝试了网上大部分的通过命令行修改jenkins用户组的方法,效果并不理想(也可能是我操作方式不对 )。 如果能把jenkins安装在主账户的某个目录下不就是可以解决这个问题了么,从这个角度出发,于是有了下面一种比较好的解决方法 。

    通过homebrew安装而不是apk包 。首先你要安装homebrew 。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后 brew install jenkins 。 安装完成之后执行 war包 (需要java运行环境)。

java -jar /usr/local/Cellar/jenkins/你的jenkins版本号/libexec/jenkins.war --httpPort=8080

完成之后不要着急打开web browse 输入 localhost:8080 。

在这之前先修改下 jenkins的配置文件 。org.jenkins-ci.plist

open /Library/LaunchDaemons

用 sublime打开 org.jenkins-ci.plist文件 。打开之后是下面这个样子 。

    上图中 全中的位置就是你的JENKINS_HOME 的位置。

然后 sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist 启动jenkins 。如果不行,正所谓重启破万法 ,重启下电脑 。

    打开浏览器 输入 localhost:8080 就会进入jenkens的主页面 。第一次会让你输入一个账号密码之类的, 其中有个默认的管理员密码在 jenkens 的secret ,这个默认打不开的,可以拷贝出来,然后找到里面一个 inititalPassword的文件复制初始密码 。登录之后就可以创建自己的账号了 。

    创建好之后创建一个自由风格的任务 。进入到配置页面,源码管理,构建环境,构建触发器等这些可以不用填写 ,其他一些配置可以看需要。主要的就是 构建 ->执行shell 脚本 。

把shell脚本和配置文件放到项目的根目录下 。 执行shell 脚本的框框里执行 。

# 进入项目根目录下
cd 项目的根目录下
sh shell.sh

保存之后点击构建就可以了 。至于如何编译打包还有上传蒲公英这些操作都在脚本里了,编译打包使用的是xcbuild 因此打包时xcode中证书等需要配置好。 其中 exportAppstore 和 exportTest 两个plist文件是打包的配置文件 ,根据需要选择对应的就可以 ,plist中具体如何配置,其实可以先用xcode打包到处一份 xcarchivie 文件,里面会有详细的配置,比照里面的plist配置照葫芦画瓢就行 。

脚本地址: https://github.com/zh-ios/ZHProject.git

至此打包上传不再麻烦 。

 

 

参考:

https://www.jianshu.com/p/dc6f3fea7aa9

https://blog.csdn.net/u013602835/article/details/79790020

© 著作权归作者所有

共有 人打赏支持
zh_iOS
粉丝 28
博文 73
码字总数 34061
作品 0
石景山
程序员
私信 提问
Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点...

nineep
2018/06/27
0
0
React Native 【学习总结】-【Jenkins集成】

简述 Jenkins是一个持续集成工具,它本身有很丰富的插件提供使用,方便持续集成,为开发省时省力,下面是项目中对新的RN项目做的持续集成例子,通过该例子学会如何使用jenkins。 Jenkins安装...

Pape
2018/05/18
0
0
蒲公英:生命,就不该浪费在一些无趣的事情上

把大象装进冰箱要几步?你告诉我:三步。 把测试应用分发给测试者要几步?答曰:难计其数。 现在做开发的同志们有福了,蒲公英把你的测试应用分发简化为两个步骤: 拖拽上传你的app安装包。 ...

rabbit狂躁症
2014/11/19
717
3
详解 | 企业签名的包支持推送功能吗?

蒲公英提供长期稳定不掉线、可带推送功能的ios企业签名服务,跳过漫长艰难审核过程,直接为用户提供高速下载安装服务:https://www.pgyer.com/app/signature 开门见山,先给一个答案:企业签...

蒲公英开发者服务平台
02/26
0
0
使用Jenkins配置iOS自动化构建工具

使用Jenkins配置iOS自动化构建工具 关于iOS自动化构建其实并不复杂,通过一些简单的Git与Xcode指令,加上UI,我们自己也可以动手编写一款自动化构建工具。这在之前的博客中也有涉及,有兴趣的...

珲少
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【机器学习PAI实战】—— 玩转人工智能之商品价格预测

摘要: 我们经常思考机器学习,深度学习,以至于人工智能给我们带来什么?在数据相对充足,足够真实的情况下,好的学习模型可以发现事件本身的内在规则,内在联系。我们去除冗余的信息,可以...

zhaowei121
17分钟前
0
0
Spring拓展接口之FactoryBean,我们来看看其源码实现

是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身...

java菜分享
21分钟前
2
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

阿里云官方博客
27分钟前
0
0
深入理解 Hive 分区分桶 (Inceptor)

分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查...

hblt-j
35分钟前
0
0
数据结构

什么是数据结构 1、数据 数据是描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。简言之,数据就是计算机加工处理的原料,是信息的载体。 2、数据...

stars永恒
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部