前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 自动打包-FastLane

iOS 自动打包-FastLane

原创
作者头像
莫空9081
修改2021-04-20 10:11:35
2.4K0
修改2021-04-20 10:11:35
举报
文章被收录于专栏:iOS 备忘录

iOS自动打包

使用FastLane打包

安装 fastlane

  • 通过HomeBrew安装
代码语言:txt
复制
brew install fastlane
  • 通过Bundler安装
  1. 安装 bundler
  2. 然后在项目根目录下创建./Gemfile文件,编辑内容
代码语言:txt
复制
// 安装 bundler

$ gem install bundler
代码语言:txt
复制
//然后在项目根目录下创建./Gemfile文件,编辑内容

source "https://rubygems.org"

gem "fastlane"

编辑Gemfile文件:

代码语言:txt
复制
source "https://rubygems.org"

gem "fastlane", "2.180.1"

# 如果使用Cocoapods,需要添加下面这行

gem "cocoapods"
  • 通过ruby gems安装
代码语言:txt
复制
sudo gem install fastlane

fastlane安装成功后,安装两个插件,用于版本号管理和打包成功后上传到对应的第三方平台

代码语言:txt
复制
// 添加fastlane插件

// versioning使用参考,https://github.com/SiarheiFedartsou/fastlane-plugin-versioning,用于版本号获取和修改

// firim是fir平台插件

fastlane add_plugin versioning

fastlane add_plugin fir_cli # https://github.com/FIRHQ/fastlane-plugin-fir_cli

// pgyer是蒲公英平台

// fastlane add_plugin pgyer

fastlane内容编辑

fir平台的fir相关参数参考:传送门

编辑Fastfile,定义一个Action,名字为TestFir,指定输出包名为(版本号+时间),打包后包到目录为./build目录下,打包完成后上传到fir。如下

代码语言:txt
复制
default_platform(:ios)

platform :ios do

  desc "Description of what the lane does"

  lane :TestFir do

    time = Time.new.strftime("%Y%m%d%H%M") # 获取时间格式,格式参考https://www.runoob.com/python/att-time-strftime.html

    # verion = get_version_number_from_list() # 获取版本号

    version = get_version_number_from_xcodeproj(build_configuration_name: 'Release') # 使用参考GitHub链接,https://github.com/SiarheiFedartsou/fastlane-plugin-versioning

    ipaName = "Release_#{version}_#{time}.ipa" # 生成ipa包的名字格式

    gym(

      clean: true, # 打包前清理项目

      silent: true, # 隐藏没有必要的信息

      scheme: "Your Scheme Name", # 指定项目的scheme名称

      export_method: "ad-hoc", # 打包的类型,有:ad-hoc, enterprise, app-store, development

      configuration: "Release", # scheme: 默认为Release,还有Debug

      output_name: "#{ipaName}", # 输出的报名

      output_directory: "./build" # 输出的位置

    )

    # 自己的fir账号,可配置内容参考https://github.com/FIRHQ/fastlane-plugin-fir_cli

    fir_cli api_token: "xxx",  changelog: "My First Fir Upload"

    # 蒲公英的配置 替换为自己的api_key和user_key

    # pgyer(api_key: "\*\*\*\*\*\*", user_key: "\*\*\*\*\*\*",update_description: options[:update_info])

  end

end

使用时,在命令行输入fastlane TestFir即可

代码语言:txt
复制
fastlane TestFir

如果想要在执行命令时从外部传入参数,则可以按照下面的方式使用,在do后面添加 |options|,使用时,options:optionName这种方式来获取从外面传入的值

代码语言:txt
复制
lane :ActionName do |options|

    gym(

      configuration: options[:configuration],#环境

      )

    # 自己的fir账号

    fir_cli api_token: "xxx",  changelog: options[:changelog]

  end

从外面调用的方式如下:

代码语言:txt
复制
fastlane ActionName configuration:"adhoc" changelog:"first submit"

使用Jenkins打包,未完待续

参考

iOS 之 自动打包 fastlane + fir + pgy 【进阶使用】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iOS自动打包
    • 使用FastLane打包
      • 安装 fastlane
      • fastlane内容编辑
    • 使用Jenkins打包,未完待续
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档