iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

2023-05-16

一、环境配置

注意,本文章是以Jenkins2.263.4为例

1、首先安装Java环境:官网下载地址

2、安装Jenkins

建议下载Jenkins 2.263.4版本,因为最新版本存在login.keychain无法上传的bug, 在Jenkins官网下载下载完成后,打开终端,进入到 war 包所在目录,执行以下命令:

java -jar jenkins.war --httpPort=8080

待Jenkins启动后:

启动

3、登录

在浏览器页面输入以下地址,就打开Jenkins管理页面了

http://localhost:8080

登录密码路径

~/.jenkins/secrets/initialAdminPassword

进入~/.jenkins/secrets/initialAdminPassword路径查看密码,输入密码登录。

登录

5、插件安装

选择安装推荐的插件

插件安装

此过程据说很慢,但是我用的手机热点,没有科学上网,还是很快的。5分钟左右

推荐的插件下载

6、创建管理员

创建管理员

7、Jenkins URL 默认就可以

Jenkins URL

8、进入首页,先安装额外的插件

1)点击Manage Jenkins - Manage Plugins

2)搜索想要安装的插件

这里需要安装的插件有:

1)Keychains and Provisioning Profiles Management: 证书与描述文件的管理

2)Xcode integrationXcode:打包的插件,所以iOS的打包只能部署在Mac系统

9、配置项目的访问SSH私钥

如果你的电脑没有配置过SSH,此处以码云为例,可看码云官方文档,配置好SSH后再给Jenkins配置

证书管理
添加证书

创建一个SSH

SSH

终端执行一下操作,获取公钥

cat ~/.ssh/id_rsa.pub

填入保存即可

9、配置项目依赖的证书与描述文件

其实勾选自动签名,不用配置证书和描述文件也可以。

1)钥匙串文件路径:

~/Library/Keychains/

login.keychain-db

由于Jenkins里不能上传login.keychain-db这样后缀的文件,所以手动复制一份login.keychain-db到桌面,然后把文件名修改成login.keychain

我们再次来到Manage Jenkins 选择Keychains and Provisioning Profiles Management

点击选取文件,选取login.keychain后点击Upload

证书名称为钥匙串里常用名称,双击某个证书即可打开,copy一下就可以了

常用名称

输入完后先保存,在上传Provisioning Profiles

2)同样的方式,点击Keychains and Provisioning Profiles Management,讲描述文件上传,Provisioning Profiles Directory Path的路径写

其中{USERNAME}改为自己电脑的名称

/User/{USERNAME}/Library/MobileDevice/Provisioning Profiles

上传

10、配置邮箱系信息

如果需要邮件通知,则需要配置此项

a.进入Manage Jenkins - Configure System

b.填写系统管理员邮件地址

c.填写邮箱信息

d.全局设置邮件发送出发事件、这里选Always,是任何事件都会发送邮件

11、基本使用

主板
item页面
日志信息

二、环境配置

此处不是用的shell构建,以后再研究。

1、新建item

新建item

2、填入任务名称、选择Freestyle project

Freestyle project

3、General、填写描述

General

4、源码管理

源码管理

如果报错,说明是SSH配置有问题

5、构建触发器和构建环境,按需填写,此处我没设置

6、构建

1)如果用到了cocopods需要先用shell拉取pods仓库

#bin/zsh -l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

cd $WORKSPACE/

/usr/local/bin/pod update --verbose --no-repo-update

选择Execute shell

填入上述命令

更新Pods

7、配置Xcode部分

1)增加构建步骤-Xcode,以自动签名为例

增加构建步骤-Xcode

自动签名不需要填写Team ID

自动签名不需要填写Team ID

2)General build settings:一般设置

Settings部分

Clean before build : 勾选,据说不勾选启动图会有问题

Configuration:分Debug和Release,我要打可调式包,所以写的Debug

Xcode Schema File:如果是用到Cocopods,需要填写工程名

Pack application,build and sign .ipa:需要勾选

按需设置一下选项

Export method :development、ad-hoc、enterprise、app-store

3)Code signing & OS X keychain options:代码签名设置

此处我们选的自动签名

Automatic Signing :勾选自动签名

如果不想自动签名,选择下面的Unlock Keychain,前提是需要配置login.keychain和描述文件

3)Advanced Xcode build options:高级选项

8、上传fir.im、上传蒲公英、发送邮件、发送到钉钉群

1)上传fir.im

使用的是fir-cli上传,下面几个连接提供参考

介绍:https://github.com/FIRHQ/fir-cli

安装:http://blog.betaqr.com/use-fir-cli-in-jenkins/

使用:https://github.com/FIRHQ/fir-cli/blob/master/doc/publish.md

我们回到Jenkins中,找到上面的item,打开配置,在最下面增加构建步骤,选择Execute shell

增加构建步骤

根据fir-cli使用连接中介绍,编写一下shell

fir p ${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa  -Q -T abcdefghigklmnopqrstuvwxyz

需要修改的地方有两点

a、ipa路径:${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa

b、fir的API token:abcdefghigklmnopqrstuvwxyz

fir的API Token去fir平台获取,将两者换成自己的就可以了。

c、头像,点击API token

d、copy就可以了

API Token

2)发送到钉钉群,通过Webhook实现

当上传fir成功后,我们可以发消息到钉钉群,这里需要在钉钉群配置一个机器人。

a.在需要发消息的钉钉群,点击群设置 - 智能群助手 - 添加机器人

机器人管理

选择自定义

安全设置,我们选择自定义关键词

关键词添加为url

我们讲Webhook的地址复制出来,截取地址里的access_token备用

在上一步上传fir的shell脚本中加入access_token值就可以发送到群里了

shell脚本改为

fir p ${WORKSPACE}/build/Debug-iphoneos/JenkinsDemo.ipa --dingtalk-access-token="zyxwvutsrqpo" -Q -T abcdefghigklmnopqrstuvwxyz

access_token : zyxwvutsrqpo 讲这个值换成自己的就可以了

3)发送邮件

回到配置页面,滑到最下面,点击增加构建后操作步骤

选择Editable Email Notification

多个邮箱地址用英文逗号隔开

Content Type:选择Plain Text(text/plain)就可以

Triggers触发器按照下图配置,保存即可

3)上传蒲公英

先放一个蒲公英官方文档:https://www.pgyer.com/doc/view/jenkins_plugin

打开蒲公英,在API信息中获取API Key和User Key

在Jenkins插件中安装Upload to pgyer插件

返回item中的配置

在增加构建后操作步骤中选择Upload to pager with apiV1

配置一下信息,保存即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒 的相关文章

随机推荐

  • Centos7安装Redis

    今天和大家分享如何在Centos7上部署Redis数据库 xff0c 感兴趣的小伙伴可收藏 目录 一 准备工作 二 搭建服务器 三 部署Redis 3 1 远程登录我们的服务器 3 2 配置Redis 3 3 测试Redis 3 4 服务器
  • 详细介绍云服务器购买并使用

    由于原先的服务器块过期了 xff0c 所以今天和大家分享一下如何从头开始购买云服务器并使用 目录 一 详细步骤 1 选择服务器 xff1a 2 购买服务器 xff1a 3 配置服务器操作系统 4 进入控制台 5 管理服务器 6 登录系统实例
  • SDN初学者之路

    今天重新开始拿起SDN完成我的关于SDN控制器下关于交换机迁移的负载均衡问题研究 以此对于SDN 43 RYU 43 多控制器 43 交换机迁移 43 负载均衡相关进行整理记录 其中 xff0c 主要研究内容是交换机迁移过程中的路径最优化选
  • 腾讯云短信服务(详细教程-Django框架、API接口)实现

    今天和大家分享如何实现短信服务 xff0c 以腾讯云服务为例 目录 一 准备工作 二 短信服务接口开发 2 1 服务配置 2 2接口开发 三 测试短信服务 四 结束语 一 准备工作 腾讯云短信服务会发放免费的个人认证短信和赠送短信总共200
  • Pytest测试框架基础篇

    今天和大家分享一下pytest测试框架的基础篇 xff0c 内容包括 xff1a 了解pytest测试框架的特点 掌握pytest基本使用 掌握pytest常用的场景 掌握pytest运行参数和配置方法 目录 一 测试框架的作用和类型 1
  • Pytest测试框架进阶篇

    今天和大家分享pytest测试框架进阶篇 xff0c 也可以称之为pytest测试框架核心 xff0c 主要核心有 xff1a 掌握pytest fixture 掌握pytest mark 目录 一 掌握pytest fixture 1 1
  • PowerDesigner--快速创建表模型生成SQL语句

    今天和大家分享一个我常用的设计表模型的工具PowserDesigner 选择物理模型 创建表 字段 索引等 梳理表之间的关系 一键生成SQL语句 目录 一 准备工作 二 选择物理模型 三 创建表 字段等 3 1 创建表 3 2 创建字段 3
  • python读取txt文件内容并进行分析

    今天和大家分享一下python如何读取txt文件内容并进行数据分析的 需求 某txt文件中存在很多数据 这些数据的某一个属性主要分为A B C D四类 xff0c 要求把数据分成四类求某一数值属性的平均值 xff0c 并统计生成超过平均值两
  • python脚本控制服务器---paramiko的使用

    今天和大家分享一个第三方库paramiko xff0c 主要应用场景是在实现自动化操作服务器时使用 xff0c 模拟我们手动登录服务器 输入cmd命令等操作 最后封装成自己的工具 xff0c 方便后面调用 目录 一 安装paramiko 二
  • Vim编辑器常用快捷方式

    这几天在学习shell编程 xff0c 其中常常会用到Linux下的vim编译器 xff0c 今天就总结一些在vim编辑器中常用的快捷键 xff0c 方便我们更好的使用 目录 一 vi编辑器基本概念 二 模式切换 三 编辑模式 四 命令行模
  • Linux面试相关知识点看着一文就够了

    今天和大家分享一下linux操作系统下主要用到的几个知识点 xff0c 分别是 xff1a linux目录结构 linux常用命令 文件权限操作 服务操作 yum安装命令 docker服务 vim编译器 pymysql测试连接 用户及组命令
  • Python对象比较及深浅拷贝

    今天和大家分享一个python语言中特别重要的一个知识点 xff0c 比较及拷贝 目录 一 61 61 和 is 二 深浅拷贝 2 1 浅拷贝 2 2 深拷贝 三 总结 一 61 61 和 is 等于 61 61 和is是Python中对象
  • python中的值传递和引用传递

    今天和大家分享python中很重要的一个知识点 xff1a 参数传递 xff0c 其中包括值传递和引用传递 目录 一 为什么要熟悉值传递和引用传递 1 1 值传递 1 2 引用传递 二 Python变量及其赋值 三 Python函数的参数传
  • MySQL8.0下DATE,DATETIME和TIMESTAMP的自动初始化和更新

    MySQL8 0下DATE DATETIME和TIMESTAMP的自动初始化和更新 DATE日期类型DATETIME和TIMESTAMP的不同什么是时区自动变动 xff1f DATETIME和TIMESTAMP的相同点微秒小数部分自动初始化
  • Python爬虫实战分析

    今天看到特别好的一篇文章 xff0c 分享给大家 从头到尾看了一遍 xff0c 以实战的例子分析爬虫所需要用到的知识点 十分受益 真可谓 xff1a python万能模板 xff0c 有了这个模板 xff0c 想爬取什么内容 xff0c 根
  • ansible dns

    1 详细叙述ansible的工作原理 工作原理 xff1a ansible是基于Python开发 xff0c 集合众多运维工具的优势 xff0c 实现批量的部署操作 xff0c ansible是基于模块化 xff0c 本身并没有部署能力 x
  • pip 安装命令 及 配置Path路径

    pip 不是内部或外部命令 也不是可运行的程序 或批处理文件 pip 安装命令 及 配置环境变量 numpy 输入pip install numpy 时 xff0c 提示 以numpy 为例 pip 不是内部或外部命令 也不是可运行的程序
  • 1-python工厂模式

    文章目录 工厂模式定义 xff1a 它的优点 xff1a 可以有如下三种实现方式1 简单工厂模式2 工厂方法模式3 抽象工厂模式总结 工厂模式定义 xff1a 在面向对象编程中 xff0c 术语 工厂 表示一个负责创建替他类型对象的类 通常
  • Facebook_Pop的使用指北

    背景 最近公司有了一个创新项目 xff0c 就是在视频视图之上添加一层视图 xff0c 视图设计涉及到了复杂的控件动画 xff0c 会根据视频的播放 xff0c 显示一些控件 xff0c 控件有位移 缩放 旋转 shake等动画 在网上调研
  • iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

    一 环境配置 注意 xff0c 本文章是以Jenkins2 263 4为例 1 首先安装Java环境 xff1a 官网下载地址 2 安装Jenkins 建议下载Jenkins 2 263 4版本 xff0c 因为最新版本存在login ke