jenkins + Git + fastlane + 蒲公英实现自动化打包上传

jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第1张图片

搭建Jenkins环境

安装jenkins(需要安装java环境)

从jenkins官网下载或者是从清华大学开源镜像网站进行下载下载地址

我自己安装的jenkins的包版本是jenkins-2.121.1.pkg

安装完成后,Safari可能会自动打开,如果没有自动打开,打开浏览器,输入http://localhost:8080

如果页面提示不能连接服务器的错误,重启电脑。然后再输入http://localhost:8080进入登录页面。

根据提示,找到/Users/Shared/Jenkins/Home/ 这个目录,找到secrets文件,显示简介,设置所有人都可以读与写的权限,并找到initialAdminPassword文件,同样放开权限,复制出密码,登录进去,一路安装过来,输入用户名、密码、邮件等。最后点击Save and Finish。

jenkins打包的相关插件

  1. 证书管理插件 链接

  2. xcode插件 链接

  3. 脚本执行插件 链接

  4. git插件 链接

安装这几个插件,并且重启jenkins,下面是几个jenkins的相关东西

1、重启Jenkies

    http://localhost:8080/restart

2、重新加载配置信息

    http://localhost:8080/reload
证书管理插件
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第2张图片
WechatIMG8.jpeg

注 developer只是一个用于测试开发的证书,password 一定要填写正确的钥匙串的密码,Code Signing Identity 是从钥匙 找到相应的证书,然后显示简介复制来,这 Identities少要填两项,是因为这放个的话后的设置Code Signing Identity能动对应上。

/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles

移动复制相关文件

把需要的文件移动到对用目录下

一 、将/Users/用户名/Library的MobileDevice文件夹拷贝到/Users/Shared/Jenkins/Library下

注意:是将MobileDevice这个文件夹拷贝过去,而不是MobileDevice里的文件,/Users/Shared/Jenkins/Library 目录下是没有MobileDevice这个文件夹,所以先创建一个MobileDevice文件夹。

在终端输入

sudo mkdir /Users/Shared/Jenkins/Library/MobileDevice
sudo cp -r /Users/xxx/Library/MobileDevice/ /Users/Shared/Jenkins/Library/MobileDevice/

如果没有mobileDevice这个文件夹,应该就是没有安装xcode

二 、将/Users/用户名/Library/Keychains/下的login.keychain及login.keychain-db这两个文件拷贝到/Users/Shared/Jenkins/Library/Keychains文件夹下面
注意:Mac OS 10.12以下的没有login.keychain-db这个文件,只需要拷贝login.keychain文件。

在终端输入:

cd /Users/Shared/Jenkins/Library/
sudo mkdir Keychains
sudo cp /Users/xxx/Library/Keychains/login.keychain ./Keychains/
sudo cp /Users/xxx/Library/Keychains/login.keychain-db ./Keychains/

再将这个login.keychain拷贝到桌面上 如果没有login.keychain,请把login.keychain -db改为login.keychain

三 、 钥匙串权限、~/Library权限以及电脑用户管理权限
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第3张图片
WechatIMG6.jpeg

点击显示简介,更改相关权限

jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第4张图片
WechatIMG7.jpeg
四 、 找到Library资源库文件夹,设置共享与访问权限,everyone读与写都可以,并且应用于下层目录

开始构建项目

构建操作,起名字点击输入一个任务名称,选择构建一个自由风格
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第5张图片
WechatIMG9.jpeg
git拉取代码,并且把相关git相关上传到全局变量
WechatIMG13.jpeg

把这个东西作为全局变量复制到对应的地方

jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第6张图片
WechatIMG10.jpeg
Keychains and Code Signing Identities
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第7张图片
WechatIMG11.jpeg

注意第一次选择,可能不会出现Code Signing Identity,这个时候,保存项目再退出来后再进去就是可以看到了

上传蒲公英的相关操作
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第8张图片
WechatIMG12.jpeg

fastlane搭建

fastlane 介绍

fastlane 是一款为 iOS 和 Android 开发者提供的自动化构建工具,它可以帮助开发者将 App 打包、签名、测试、发布、信息整理、提交 App Store 等工作完整的连接起来,实现完全自动化的工作流,如果使用得当,可以显著的提高开发者的开发效率。

依赖环境:
Xcode7+
macOS or Linux with Ruby 2.0.0 +

安装fastlane
$ sudo gem install fastlane

如果报错:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander 
使用: sudo gem install -n /usr/local/bin fastlane

cd到对应的目录,使用fastlane init 我选择的是4。目录的结构是

jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第9张图片
WechatIMG14.jpeg

fastlane的文件代码操作
注意:一定要安装执行下面的命令

fastlane add_plugin pgyer

[图片上传失败...(image-111f54-1531193590583)]

# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

# 定义fastlane版本号
fastlane_version “2.99.0”

# 定义打包平台
default_platform :ios

lane :beta do
  gym(
#输出的ipa名称
output_name:”QKiOS_IPA”,
# 是否清空以前的编译信息 true:是
clean:true,
# 指定打包方式,Release 或者 Debug
configuration:"Debug",
# 指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development
export_method:"development",
# 指定输出文件夹
output_directory:"./fastlane/build",
)
pgyer(api_key: "蒲公英的api_key", user_key: "蒲公英的user_key")

Jenkins的shell脚本

先执行pod操作,如果是使用cocoapod安装的话

#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

cd $WORKSPACE/

echo ++++++++++++++++++

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

echo begin
echo ++++++++++++++++++

解锁keychain

#bin/security - l
/usr/bin/security unlock-keychain -p q1234 ~/Library/Keychains/login.keychain-db

fastlane 进行打包

#bin/bsah - l

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

cd $WORKSPACE/

pwd

PATH="/usr/local/bin:$PATH"

# 进行打包操作
/usr/local/bin/fastlane beta 

打包成功的输出

jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第10张图片
WechatIMG15.jpeg
jenkins + Git + fastlane + 蒲公英实现自动化打包上传_第11张图片
WechatIMG16.jpeg

集成的时候遇到的问题

  1. CodeSign 签名失败,执行解锁keychain的shell脚本
CodeSign /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/QKiOS-ceqftwbkurbqjxfyflrsrfuzezvs/Build/Intermediates.noindex/ArchiveIntermediates/QKiOS/InstallationBuildProductsLocation/Applications/QKiOS.app```

你可能感兴趣的:(jenkins + Git + fastlane + 蒲公英实现自动化打包上传)