文章目录

  • 前言
  • 前置工作
  • 1、安装 jenkins
  • 2、jenkins配置
    • 2.1 打开浏览器,进入到 jenkins 初始化
    • 2.2 安装插件
    • 2.3 环境变量配置
  • 3、创建任务
    • 3.1 新建任务
    • 3.2 配置任务
      • 3.2.1 源码管理
      • 3.2.2 构建环境
    • 4 立即构建
  • 遇到问题
    • 1.pod install 问题
    • 2. 组件化遇到问题
  • 写在最后

前言

自动化历程:
网上文章很多,但是大多都不是特别详细,按照上面步骤来,大多都走不通,所以才写出了这篇文章,以方便自己以后使用
1、初识fastlane,在第一次了解fastlane时候,感觉很方便,但是看了很多网上教程,始终不得入门
2、初识 Jenkins,在前段时间,我的Android小伙伴问题使用没使用Jenkins,我楞了一下,决定问题啥是Jenkins,然后了解后,我感觉别人有的我也要!经过查看网上教程和多次实践,始终都是失败,不过倒是实现了使用fastlane进行自动化打包,最终决定,自己开心就好,还是不要和别人攀比了。
3、过了一段时间,还是咽不下这口气,查看Jenkins错误报告和各种实践,最终成功构建。Jenkins打包成功

前置工作

要做Jenkins自动打包,要配合fastlane来使用(不知道别人怎么处理的,不过我这边是这么做的)
关于 fastlane、以及蒲公英插件配置使用,看下面这篇文章
iOS fastlane 自动打包,上传蒲公英

1、安装 jenkins

brew install jenkins

卸载可以把 install 替换成 uninstall就可以了
brew uninstall jenkins
命令行安装成功后 启动 jenkins

启动 jenkins: brew services start jenkins
停止 jenkins:brew services stop jenkins
重启 Jenkins:brew services restart jenkins

2、jenkins配置

2.1 打开浏览器,进入到 jenkins 初始化

此时可使用 http://localhost:8080 访问 jenkins 进入 \Jenkins\secrets 目录,打开 initialAdminPassword 文件复制出密码即可

2.2 安装插件

然后安装推荐的插件:此处默认就好

安装 jenkins 推荐通用的插件 接下来是漫长的等待

等完成之后,选择系统管理 - 管理插件。
安装 GitLab 插件
在可选插件中选择 GitLab Plugin 和 Gitlab Hook Plugin 进行安装。

安装 Xcode 插件
在可选插件中选择 Xcode integration 进行安装。

2.3 环境变量配置

去到 系统管理 -> 系统设置 -> 全局属性 -> 环境变量 中的环境变量进行配置
其中键固定 PATH
值:终端输出值:(echo $PATH)获取

3、创建任务

3.1 新建任务

选择新建任务,输入任务名称,选择第一个,构建一个自由风格的软件项目

3.2 配置任务

3.2.1 源码管理

  1. 选择Git 在 repository URL 添加你的git地址
  2. 在Branches to build 填写你的指定git分支

3.2.2 构建环境

此处是重点,我的大多失败历程都是因为这块没有处理好
选择 执行shell ,此处是 pod update 而非 pod install,为了防止组件或者三方库更新,以拉取最新代码

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
echo -e "=========安装更新pod==========="
pod update
echo -e "=======打包上传======="
fastlane app

4 立即构建

上面配置完毕之后,回到任务中,点击立即构建,下面会有一个执行的进度条, 很抱歉我失败了36次,最后才成功
立即执行前提:
1、构建的项目,拉取到制定的jenkins的workspace中,能进行fastlane自动打包

遇到问题

1.pod install 问题

也是网上提出最多的 Build step ‘Execute shell’ marked build as failure 问题
1.1、如果没有3.2.2 执行shell,jenkins 只会从git上拉取代码, 我的第一个问题一直失败到这里,如下图所示,仅仅是代码,没有三方库的pods文件
1.2、虽然我项目可以fastlane app执行,但是下面拉取的代码,无论通过jenkins还是 fastlane 都没法自动打包,所以我在shell添加了 pod update,
1.3 之所以是 update 而不是 install, 是获取最新代码,为了防止组件或者三方库更新,以拉取最新代码

2. 组件化遇到问题

也就是第一个问题中的1.2,如下图
git仓库没办法拉取指定组件代码,把下面未注释代码,改成已经注释的,指定git地址和 提交commit,就能拉取了
此处建议使用branch指向git分支,那么git就会自动拉取该分支最新代码
例如

pod 'YLHomeModule',   :git=> 'https://git.xxxx/YLHomeModule.git',  :branch => 'feature/1.4.0'


报错截图

最后,完结散花

iOS Jenkins + fastlane自动打包,蒲公英上传相关推荐

  1. iOS fastlane 自动打包,上传蒲公英

    文章目录 前言 fastlane 介绍: 1. 安装环境 1.1 安装 Homebrew 1.2 安装 fastlane 2. fastlane 配置 2.1 进入到工程目录 .xcworkspace ...

  2. Centos配置Jenkins实现Android自动打包并上传到蒲公英

    本篇文章来自 徐永红  的投稿,给大家讲解Centos配置Jenkins实现Android自动打包并上传到蒲公英,希望对大家有所帮助. 徐永红 的博客地址: https://xuyonghong.cn ...

  3. iOS架构-自动打包并上传到App Store(python)(21)

    这里是摘自一篇用python 语法写的脚本,这里只是为了更好的理解自动化打包上传App Store的原理的. 一. iOS 自动打包并上传到App Store(python) 我们平时大都是用Appl ...

  4. Gradle自动化之自动打包并上传到fir测试网站

    前言 每个项目都需要测试,没有测试的项目是无法发布到线上的 而由于安卓的碎片化,公司里测试需要测几种不同版本的系统和不同厂商(型号)的手机,所以我平时发的测试包必须放到某个服务器或网站上,通过二维码的 ...

  5. ios 自动打包命令_【实践】iOS使用Jenkins实现自动化打包并上传蒲公英

    作者:怪兽monster 链接:https://www.jianshu.com/p/f4a0093d3bed 一.安装本地Jenkins 1.通过Home brew安装本地Jenkins brew i ...

  6. iOS自动打包,并上传蒲公英

    1. 下载gitHub文件 :  GitHub - xtyzmnchen/ios-autoTool-IPA: ios自动打包工具 2. 配置当前项目路径 \ 项目名称 \ 输出IPA包路径 \ 蒲公英 ...

  7. vue 自动打包部署上传服务器

    简单的4步配置,即可实现一键上传 执行命令 npm i fe-deploy-cli -g 进行全局安装 在项目根目录执行命令 deploy init 生成deploy文件夹 修改deploy文件夹下面 ...

  8. go Jenkins流水线极速打包镜像上传

    在使用Jenkins流水线进行打包时,发现直接使用Dockerfile去构建一个java或者go程序会非常慢,go好一点也要一分钟,java则需要3分钟以上.Java&Gradle极速打包设置 ...

  9. iOS 使用fastlane自动化打包步骤

    加粗样式### iOS 使用fastlane 自动打包步骤 !参考 1 查看ruby版本信息 本机是否安装ruby ruby -v 2 安装xcode命令行工具 点击同意即可 xcode-select ...

最新文章

  1. python写一个通讯录step by step V3.0
  2. html DOM操作表格及样式
  3. gitlab上传文件到group_gitlab恢复备份数据
  4. SparkSQL 将统计结果保存到Mysql
  5. C++PrimerPlus学习——第十三章编程练习
  6. BootStrapStudio文档阅读笔记-Getting Started Guide解析
  7. Hive安装Version2.1.0
  8. CSS:CSS定位和浮动
  9. 朱啸虎回应“美团滴滴合并”;小米成世界第四大手机制造商;Ant Design 3.26.1 发布 | 极客头条...
  10. python资料-(转)python资料汇总(建议收藏)零基础必看
  11. String:字符串常量池详解
  12. 站群php自动地图,Discuz自动采集-DZ站群系统自动更新-Discuz站群管理系统
  13. crontab每隔1小时运行一次
  14. 企业实战 -什么是代理服务器
  15. 徐州市纳西科技贸易有限公司 拖欠工资 李东来
  16. 男人好苦,好累,好受罪
  17. 谷粒商城-基础篇-环境搭建(P1-P44)
  18. 电磁兼容八种测试的「实质」
  19. Tensorflow2.0 自定义网络
  20. 计算机常用名词及解释

热门文章

  1. 怎样关闭2345迷你新闻弹窗和更隐蔽的迷你新闻弹窗呢,找到进程删除相应文件,终于解决了,记录一下屏蔽后的喜悦
  2. 什么是BOM?,什么是DOM? BOM跟DOM之间的关系
  3. android n 原生壁纸,安卓福利:来自VIVO X20全面屏原生壁纸 每一张都美的让人窒息!...
  4. 2022年一战跨考东南网安经验贴
  5. 新年第一弹:吐蛇一下2013春晚
  6. 指针(pointer)与引用(reference)
  7. 授人以鱼,不如授人以渔
  8. android studio找不到javax.xml.stream.*问题记录
  9. JS版数据结构第一篇(栈)
  10. python3实现简单的朗读器脚本(GUI)