Jenkins CI for iOS:值不值得学

这门资料解决的核心问题,是 iOS 开发中“手动打包与质检”带来的效率损耗。很多团队的日常是:开发写完代码,手动连真机测试,手动 Archive 导出 ipa,再手动传给测试。一旦遇到频繁改 Bug,打包就成了纯粹的体力活,还容易因为本地环境不一致导致“在我电脑上没问题”的扯皮。这套资料把 CI(持续集成)真正落地到了 iOS 场景,它不是泛泛讲 Jenkins 怎么装,而是从代码变动、自动化质检到组件打包,串起了一条真实的流水线。如果你每天还在重复手动构建,或者团队急需一套自动化的代码准入机制,这门课就值得花时间看;如果你只是写写个人小项目,暂时不涉及多人协作和频繁发版,优先级可以往后排。

适合什么基础与建议先看哪几块

看这套资料前,你需要具备基础的 iOS 开发能力,熟悉 Git 命令和 Xcode 的常规打包流程,最好对 Shell 脚本有基本概念。完全没接触过命令行的新人会有些吃力。拿到资料后,建议不要从头按部就班顺看,而是先看第一部分里关于“需求开发生命周期”和“CI Pipeline”的内容,建立流水线的全局认知;接着直接跳到 Jenkins 本地安装与创建第一个 Job 的章节,把环境跑通。很多人学 CI 容易卡在环境配置上,尤其是 SSH 免密 Clone 仓库这块,资料里刚好有对应场景,建议边看边在自己电脑上复现,不要只停留在看视频阶段。

学完能独立做什么与资料怎么配合练习

学完后,你应该能独立为一款 iOS 应用搭建基础的自动化构建流程。具体来说,能配置 Jenkins 拉取远端 Git 代码,自动执行编译检查,并在代码提交时触发流水线,最终产出可供测试的安装包。这相当于替团队搭好了一个不知疲倦的“打包机器人”。配合资料练习时,核心原则是“边看边搭”。不要把视频当爽文看,准备一台干净的 Mac,跟着视频一步步装 Jenkins、配 SSH 密钥、写构建脚本。遇到编译报错先自己查文档,因为真实工作中的 CI 环境远比视频复杂,脚本权限、依赖冲突都是常态。建议先跑通一个最简单的“拉代码+编译”任务,再逐步加复杂度,把学到的流水线拆分方法用到自己的实际项目里。


学会在 iOS 开发中,如何使用 jenkins 来实现各种各样的自动化任务!

课程目录

*   01 介绍 CI for iOS/

  *   01 CI 不是仅仅指打包.mp4 07:13

  *   02 CI Pipeline.mp4 06:26

  *   03 从一个需求开发的生命周期说起.mp4 02:44

  *   04 划分整个生命周期.mp4 07:11

  *   05 阶段1:变动代码的自动化质检流程 pipeline.mp4 04:28

  *   06 阶段2:组件、应用的 Web CI 系统.mp4 04:28

  *   07 主流的 CI 工具.mp4 04:46

  *   08 课程内容安排.mp4 05:25

*   02 jenkins 基础使用/

  *   01 本地安装 jenkins.mp4 05:41

  *   02 创建、触发第一个 jenkins job.mp4 05:56

  *   03 ssh 免密码方式 clone git repo.mp4 14:18

  *   04 source 配置在 CI 机器上的变量.mp4 06:36

  *   05 job 结束时,展示二维码图片.mp4 09:41

  *   06 curl 触发 job.mp4 07:10

  *   07 ruby 封装 curl 命令.mp4 14:51

  *   08 ruby net/http POST 请求触发 job.mp4 06:25

*   03 手动化的组件开发过程/

  *   01 App(壳)与 组件.mp4 04:33

  *   02 组件 - 本地开发.mp4 05:57

  *   03 组件 - new_feat 开发分支 - 合并请求.mp4 05:09

  *   04 组件 - new_feat 开发分支 - 自动化流程.mp4 05:53

  *   05 组件 - 主干分支 - 发布版本号.mp4 10:10

  *   06 组件 - 版本号 - pod repo push.mp4 22:46

  *   07 组件 - 版本号 - 提测 - 集成.mp4 12:39

  *   08 组件 - 版本号 - 集成 - 请求.mp4 02:31

  *   09 组件 - 版本号 - 提测、集成 - 流程简化.mp4 04:36

  *   10 iOS CI/CD 自动化流程简介.mp4 08:14

*   04 Jenkins 配置 ruby 环境/

  *   01 初始化 App 项目的 fastlane 环境.mp4 06:57

  *   02 尝试将 App 项目跑在 Jenkins 环境下.mp4 02:55

  *   03 Jenkins job shell 无法直接使用 RVM.mp4 02:21

  *   04 RVM 给出的 Jenkins CI 使用文档.mp4 06:44

  *   05 解决 JOB shell 中 RVM 无法切换 gemset.mp4 08:31

  *   06 App 项目保留 Gemfile.lock?.mp4 09:03

  *   07 App 项目「不」保留 Gemfile.lock?.mp4 02:17

*   05 让流程自动化/

  *   01 自动化到底是要做什么?.mp4 02:58

  *   02 组件(仓库) - 变动分支 - 合并1.mp4 13:14

  *   03 组件(仓库) - 变动分支 - 合并2.mp4 14:33

  *   04 组件(仓库) - 版本号 - 发布.mp4 28:00

  *   05 组件(仓库) - 版本号 - 集成 - CocoaPods.mp4 10:02

  *   06 组件(仓库) - 版本号 - 集成 - 独立文件.mp4 06:54

  *   07 组件(仓库) - 版本号 - 集成 - 自定义工具.mp4 13:06

  *   08 组件(仓库) - 版本号 - 集成 - 具体实现.mp4 15:34

  *   09 App(仓库) - 创建 - 新版本.mp4 22:17

  *   10 App(仓库) - 创建 - 新版本 - 重构.mp4 15:14

  *   11 App(仓库) - 创建 - 新版本 - add tag.mp4 12:59

  *   12 App(仓库) - 创建 - 新版本 - 最终版.mp4 02:05

  *   13 App(仓库) - 更新 - 已有版本.mp4 09:54

  *   14 App(仓库) - 打包、发布、提审.mp4 15:22

*   06 通用化 CI 处理流程/

  *   01 打造 跨多语言、跨多 App 的 CI 执行流程.mp4 10:22

  *   02 前面实现的那些自动化 job 存在的问题.mp4 09:44

  *   03 如何做到 跨多语言、跨多App ?.mp4 14:46

  *   04 1 抽象接口 与 n 具体实现.mp4 21:48

  *   05 接口中增加:输入 和 输出.mp4 09:04

  *   06 输入.mp4 12:48

  *   07 输出.mp4 02:47

  *   08 接口中增加:workspace、app.mp4 14:40

  *   09 将App中的CI脚本,独立到一个仓库内.mp4 25:40

  *   10 脚本仓库,具体实现一个自动化能力.mp4 08:05

  *   11 .my-ci.yml 解析器.mp4 04:50

  *   12 .my-ci.yml 解析器,要做的事情.mp4 13:45

  *   13 确定 .my-ci.yml 解析器的外部调用.mp4 26:29

  *   14 initialize.mp4 13:04

  *   15 main.rb.mp4 08:01

  *   16 task begin 和 end.mp4 04:55

  *   17 write input/output file.mp4 06:10

  *   18 clone app.mp4 10:25

  *   19 read app .my-ci.yml.mp4 09:12

  *   20 exec app .my-ci.yml.mp4 35:12

  *   21 app script output.mp4 18:40

*   07 跑在 jenkins 环境/

  *   01 准备将前面一系列操作,都放到jenkins中.mp4 02:23

  *   02 准备3个git仓库.mp4 05:46

  *   03 增加 App/.my-ci.yml 自动化能力描述文件.mp4 08:09

  *   04 每一个能力都单独对应一个JOB.mp4 35:22

  *   05 所有JOB都调用 .my-ci.yml 解析库.mp4 21:18

  *   06 最终调用的 toolbox 脚本库.mp4 19:04

*   08 master 与 slave 主从节点/

  *   01 1 master + N slave.mp4 05:53

  *   02 打开 JOB 并发.mp4 06:40

  *   03 1个 master 主节点.mp4 02:33

  *   04 修改 jenkins 服务的 ip 和 port.mp4 06:20

  *   05 N个 slave 子节点.mp4 22:15

*   09 jenkins Pipeline/

  *   01 创建一个 pipeline 形式的 JOB.mp4 07:38

  *   02 jenkinsfile pipline 语法.mp4 02:12

  *   03 pipeline 节点.mp4 01:48

  *   04 agent - post.mp4 18:28

  *   05 stages - stage - steps.mp4 06:50

  *   06 steps 使用 内置命令.mp4 06:54

  *   07 环境变量.mp4 07:45

  *   08 自定义 环境变量.mp4 06:54

  *   09 if 环境变量 else.mp4 02:11

  *   10 def 定义变量.mp4 02:21

  *   11 options 设置 pipeline 或 stage.mp4 03:51

  *   12 parameters 设置 pipeline 所需参数.mp4 08:39

  *   13 triggers 定时器.mp4 11:29

  *   14 when 条件执行 stage.mp4 08:51

  *   15 if else 条件执行 steps 内的脚本.mp4 03:35

  *   16 script 脚本域.mp4 03:49

  *   17 script 内使用 try - catch.mp4 01:42

  *   18 parallel 并行多个 stage.mp4 12:13