iOS使用 fastlane 完成 xcode 自动打包上传(2
2019-01-09 本文已影响53人
笨笨编程
介绍
其实自动化打包工具有很多,用的比较多的有 Jenkins 、Python、fastlane。曾经一直使用的 Jenkins 来构建,但是 Jenkins 需要我们配置的东西比较多(仓库地址、git/svn 账号和密码、分支等)而 fastlane 是我目前遇到最简单快速的(iOS、Android都支持)github地址、文档地址
安装前准备工作
- 首先确认是否安装了 ruby ( 默认 mac 都已经安装好了)
ruby -v
- 查镜像、修改镜像
查看源:gem sources
删除源:gem sources --remove https://gems.ruby-china.org/
更换源:gem sources -a https://gems.ruby-china.com
开始安装
- 安装 fastlane
执行命令:sudo gem install fastlane -NV
如果出现 错误ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.
表示没有权限,需要把安装路径也加进去。
重新执行:sudo gem install fastlane -NV -n /usr/local/bin
等待安装成功如下图
安装成功.png
使用
- 打开终端 cd 到你的项目下
- 执行 fastlane 命令
fastlane init
如图:
执行命令.png
下面会有四个选项供你选择
- 自动截屏。帮我们自动截取APP中的截图.
- 自动发布beta版本用于TestFlight.
- 自动发布到AppStore.
- 手动设置.
这里我们选择 4 、一直按 enter 就ok了
配置
上一步执行成功 我们项目会多出这两个文件
FB95F6D8-FA51-44E1-8AD0-2C0696828770.png
- Appfile 文件
# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile
APP_IDENTIFIER 就是我们工程的 boundle_id
APPLE_ID 就是你的AppleID
- Fastfile 文件
# 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)
platform :ios do
desc "Description of what the lane does"
lane :custom_lane do
# add actions here: https://docs.fastlane.tools/actions
end
end
lane :custom_lane do 中的 custom_lane 是函数的名称,可以随意修改,打包执行命令的时候使用。
# add actions here: https://docs.fastlane.tools/actions 这块就是让我们加具体执行的插件、命令等操作用于打包。
下面是我项目的配置
# 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)
platform :ios do
desc "Description of what the lane does"
lane :Demo do #函数名称,执行打包的时候使用 (冒号后面不能有空格)
# add actions here: https://docs.fastlane.tools/actions
time = Time.new.strftime("%Y%m%d") #获取时间格式
version = get_version_number#获取版本号
ipaName = "Debug_#{time}.ipa"
gym(
scheme:"Demo", #项目名称
export_method:"development",#打包的类型
configuration:"Debug",#模式,默认Release,还有Debug
output_name:"#{ipaName}",#输出的包名
output_directory:"./build/#{version}"#输出的位置
)
end
end
重新 cd 到项目目录,执行命令 fastlane Demo. 成功截图如下:
image.png
上传蒲公英
- cd到项目下、安装 pgyer 插件
- 执行命令
fastlane add_plugin pgyer
- 重新修改 Fastlane 文件,如下:
# 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)
platform :ios do
desc "Description of what the lane does"
lane :Demo do #函数名称,执行打包的时候使用 (冒号后面不能有空格)
# add actions here: https://docs.fastlane.tools/actions
time = Time.new.strftime("%Y%m%d") #获取时间格式
version = get_version_number#获取版本号
ipaName = "Debug_#{time}.ipa"
gym(
scheme:"Demo", #项目名称
export_method:"development",#打包的类型
configuration:"Debug",#模式,默认Release,还有Debug
output_name:"#{ipaName}",#输出的包名
output_directory:"./build/#{version}"#输出的位置
)
pgyer(api_key: "#{api_key}", user_key: "#{user_key}")
end
end
重新执行 fastlane Demo
参考文章:
gym 插件更多用法
cocoachina文章