【iOS】Jenkins+GitLab自动化打包,并发布到蒲谷英和App Store

1、Jenkins安装

1.1 前期准备

jenkins是基于Java开发的一种持续集成工具,需要安装Java的JDK,Mac环境是默认就有,直接忽略这一步就行。

1.2 使用命令安装

命令行直接输入
安装:brew install jenkins
停止运行:brew services stop jenkins
启动:brew services start jenkins/直接写jenkins
重启:brew services restart jenkins

1.3 Jenkins激活

安装成功后,在浏览器打开http://localhost:8080

在这里插入图片描述

从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)
在这里插入图片描述

1.4 点击建议安装(插件)

在这里插入图片描述

在这里插入图片描述

1.5 创建jenkins管理用户

在这里插入图片描述

在这里插入图片描述

2、安装插件

插件
Xcode integration
Build Name and Description Setter
PostBuildScript
Git Parameter(分支管理)


在这里插入图片描述

在这里插入图片描述

3、ssh配置和GitLab账号密码配置

3.1 ssh配置

如果GitLab已经配置了ssh,直接使用GitLab上的公钥;
如果未配置GitLab,终端运行ssh-keygen -t rsa -C "[email protected]" -b 4096,生产公钥和私钥,将公钥配置到GitLab上
然后将咱们获得的公钥配置到Jenkins上

在这里插入图片描述

里面的username 你可以随便定义;
private key 选择第一个的话,你需要把你刚生成的证书的私钥填到这个框框里;
password 是你证书的密码 ,若是空的,就不填
在这里插入图片描述

3.2 GitLab账号密码配置

在这里插入图片描述

在这里插入图片描述

4、创建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里用到了PPAutoPackageScript
https://github.com/jkpang/PPAutoPackageScript

在这里插入图片描述
cd $WORKSPACE
cd iosjenkinstest/PPAutoPackageScript
sh PPAutoPackageScript.sh
在这里插入图片描述

最后保存就可以了

5、 构建打包任务

在这里插入图片描述

6、 上传蒲公英命令

以下命令,放到PPAutoPackageScript.sh文件最下方即可

echo "\033[32m*************************  开始上传到蒲公英  *************************  \033[0m"

#上传至蒲公英

uKey="29e2dab13db2035dcca9daa88831d6"

#蒲公英上的API Key

apiKey="c433baa4112755aba1079b34f17e21"

IPA_PATH=$export_ipa_path/$ipa_name.ipa

curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
echo "\n"
echo "\033[32;1m====>上传结束  \033[0m"

7、上传App Store

在Xcode11是采用官方的上传工具xcrun altool 参数apikey apiIssuerapiIssuer在appstore connect的用户和访问中的密钥里面设置.


在这里插入图片描述
# 验证ipa包
xcrun altool --validate-app -f ${exportIpaPath}/${project_name}.ipa -t ios --apiKey apikey --apiIssuer apiIssuer 
# 上传ipa包
xcrun altool --upload-app -f ${exportIpaPath}/${project_name}.ipa -t ios  --apiKey apikey --apiIssuerapiIssuer

你可能感兴趣的:(【iOS】Jenkins+GitLab自动化打包,并发布到蒲谷英和App Store)