面试

iOS使用 fastlane 完成 xcode 自动打包上传(2

2019-01-09  本文已影响53人  笨笨编程

介绍

其实自动化打包工具有很多,用的比较多的有 Jenkins 、Python、fastlane。曾经一直使用的 Jenkins 来构建,但是 Jenkins 需要我们配置的东西比较多(仓库地址、git/svn 账号和密码、分支等)而 fastlane 是我目前遇到最简单快速的(iOS、Android都支持)github地址文档地址

安装前准备工作

检测 ruby 版本.png

开始安装

使用

  1. 自动截屏。帮我们自动截取APP中的截图.
  2. 自动发布beta版本用于TestFlight.
  3. 自动发布到AppStore.
  4. 手动设置.
    这里我们选择 4 、一直按 enter 就ok了

配置

上一步执行成功 我们项目会多出这两个文件


FB95F6D8-FA51-44E1-8AD0-2C0696828770.png
# 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

# 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

上传蒲公英

# 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

上传成功.png

参考文章:
gym 插件更多用法
cocoachina文章

上一篇下一篇

猜你喜欢

热点阅读