美文网首页OC-开发案例收集
Fastlane使用说明 自动化打包

Fastlane使用说明 自动化打包

作者: TeeMo_Yan | 来源:发表于2018-12-09 01:17 被阅读145次

    Fastlane 使用大致流程如下:

    思路弄清楚后操作时,参照demo中的文件修改即可。参数可以自定义配置(参数说明可查看官方文档) 

    一.安装fastlane

    1.安装最新的Xcode命令行工具:

    xcode-select --install

    2.使用安装fastlane,下面两种方法使用其中一个即可

    sudo gem install fastlane -NV

    或者:

    brew cask install fastlane

    Fastlane官方文档https://docs.fastlane.tools/getting-started/ios/setup

    现在对Appfile,Fastfile,Gemfile,Deliverfile文件说明如下(后面会用到)

    Appfile: 存储有关开发者账号相关信息

    Fastfile: 核心文件,用于命令行调用和处理具体的流程,lane相对于一个action方法或函数 

    Gemfile 类似于cocopods 的Podfile文件

    .env 配置环境变量(在fastlane init进行初始化后并不会自动生成,如果需要可以自己创建

    Deliverfile: deliver工具的配置文件,上传截图苹果和后台一些app信息  (默认不生成,需要sudo gem install deliver安装)然后在fastlane 目录下执行deliver init 即可)

    要注意的点:

    build_app命令等同于gym(别名)

    deliver 命令相当于upload_to_app_store(别名)

    二. 使用(操作流程)

    2.1 在项目目录下执行    fastlane init

    新版本安装的时候出现了下面的分支选择,按要求选择就行

    1. 📸  Automate screenshots (自动截屏

    2. 👩‍✈️  Automate beta distribution to TestFlight (自动testfilght型配置)

    3. 🚀  Automate App Store distribution (自动发布型配置)

    4. 🛠  Manual setup - manually setup your project to automate your (需要手动配置内容)

    这里我们选择4,然后一直按回车。会生成Gemfile文件,fastlane文件夹,Appfile,Fastfile文件

    Appfile: 存储有关开发者账号相关信息

    Fastfile: 核心文件,用于命令行调用和处理具体的流程,lane相对于一个action方法或函数 

    Gemfile 类似于cocopods 的Podfile文件

    .env 配置环境变量(在fastlane init进行初始化后并不会自动生成,如果需要可以自己创建

    Deliverfile: deliver工具的配置文件,上传截图等 (默认不生成,需要sudo gem install deliver安装)然后在fastlane 下执行deliver init 即可)#此处不使用,自己去苹果后台配置

    注意:自动生成的Gemfile里的路径需要把'.' 改为'fastlane'

    plugins_path = File.join(File.dirname(__FILE__), '.', 'Pluginfile')eval_gemfile(plugins_path) if File.exist?(plugins_path)

    plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path)

    执行init 执行init后生成

    2.2.1 修改Fastfile文件(以下为部分示例,后面有完整demo。这种使用时在项目目录下执行fast lane即可) 

        desc "Push a new release build to the 蒲公英" 

        lane :pgyAction do

        increment_build_number(xcodeproj: "XXXX")//这里是build版本号自增,防止小于等于之前build号,这里需要打开Xcode-- build Setting --Versioning System --为Apple Generic (此处有坑,后面解释)

        build_app(workspace: "项目名", scheme: "XXXX")

        # 插件 --- 蒲公英

        # fastlane add_plugin pgyer   发布到蒲公英需要执行这个命令安装pgyer工具

        # fastlane add_plugin firim    发布到firim需要执行这个命令安装firim工具

        # fastlane add_plugin fastlane-plugin-version  安装版本管理

       pgyer(api_key:"XXXX",    

       user_key:"XXXX")

       #这里的"XXX"可以使用.env里的环境变量替 换为 ENV['User_Key'] 注:User_Key环境变量

      end

    使用时在项目目录下执行fastlane 即可,选择对应操作

    还有一种写法外部传入版本号和build参数 (这种使用时需fastlane adhoc_pgy version:1.5 build:1 

    fastlane  lane名称 version: build:)

     # 函数(一个方法)

    desc "版本处理"

    def setup_version_build(options)

    increment_build_number(

    build_number:options[:build])

    increment_version_number(

    version_number:options[:version])

    end

    ---------------------------------------------------

    desc "上线蒲公英"

    lane :adhoc_pgy do |options|

    setup_version_build(options)#调用上面函数

    #increment_build_number(xcodeproj: ENV['Xcodeproj'])#不需要执行这行

    build_app(

    workspace: ENV['Workspace'],#指定workspace (使用cocopods)

    scheme: ENV['Scheme'],#指定打的哪个scheme

    silent: true,

    clean: true,#打包前clean

    output_directory: ENV['Pgy_Output_Path'],#输出目录

    output_name: logDirectory,#输出名字

    export_xcargs: "-allowProvisioningUpdates",#允许自动更新配置

    export_method:"ad-hoc")#出包方法 app-store, ad-hoc, package, enterprise, development

    pgyer(api_key: ENV['Api_Key'],

    user_key: ENV['User_Key'])#ENV['XX']使用环境变量,看2.2.3

    end

    2.2.2修改Appfile文件(部分)

    # Appfile使用.env方式直接读取变量即可 (看2.2.3)

    app_identifier         ENV['App_Identifier']

    apple_id                   ENV['Apple_Id']

    team_id                    ENV['Team_Id']

    2.2.3 添加环境变量.env

    在fastlane文件夹下创建添加.env 环境变量(touch .env )

    例如:# 蒲公英 的api_key

    Api_Key = "de1a6608cce966dee05a5df3c654113b"

    # 蒲公英 的user_key

    User_Key = "cd4b534a73e5bce41a9fa92b1fdc7b31"

    2.2.4 添加发布到蒲公英和fir工具,如不需要可跳过

      在项目中fastlane目录下执行

      fastlane add_plugin pgyer   发布到蒲公英需要执行这个命令安装pgyer工具

      fastlane add_plugin firim    发布到firim需要执行这个命令安装firim工具

      安装后生成Pluginfile

    2.3以上要修改的地方修改好了(发布是否需要指定版本号和build)

    1.不需要指定版本号,使用build自增(不指定版本号,使用时执行fastlane命令)

    increment_build_number(xcodeproj: ENV['Xcodeproj'])#修改Fastfile 需要执行这行 

    ---------------------------------------------------------

    2.指定版本号和build(使用时执行fastlane + lane名 version:X build:X)例如fastlane adhoc_pgy version:1.5 build:1  

    setup_version_build(options)#调用函数  #修改Fastfile  需要执行这行 

    不指定版本选3发布蒲公英

    如出现Apple Generic Versioning is Not enabled ,需要打开Xcode-- build Setting --Versioning System --为Apple Generic 。如果已经打开,还是报错。Xcode10的问题,需要在Xcode菜单栏选择File-- Workspace Setting就会出现如下的界面,选择Legacy Build即可

    出现SuccessFully Exported 则导出ipa和dSYM成功

    导出ipa

    发布蒲公英成功如下图:

    导出包成功发布成功

    是否需要自动发布APP后台截图 和更新信息 备注等:配置有两种方法

    发布到appstore时 发现后台的描述不见了或者被覆盖了,需要在lane 里添加禁止使用元数据和截图.不传截图和元数据 skip_screenshots,skip_metadata设为true。要传的话设为false 如下图。(PS:可以配置多个参数,需要可查看下面Deliver文件说明传送门)

    1.修改Fastfile文件pload_to_app_store 方法添加参数

    pload_to_app_store(skip_screenshots: true,skip_metadata: true )

    2.在fantlane文件夹下,修改Deliverfile 文件,如下图(没有的话在fantlane文件夹下执行deliver init)

    skip_screenshots(true) 

    skip_metadata(true)

    如果需要手动上传元数据等,可以先更新下来,然后修改需要的txt文件。如下图:截图则放在screenshots下即可.发布时会弹出一个html文件预览配置的信息(如下图),终端会弹出Does the Preview on path './fastlane/Preview.html' look okay for you? 查看没问题后y ,如果错了n ,然后修改。

    从App Store Connect下载现有屏幕截图

    fastlane deliver download_screenshots

    从App Store Connect下载现有元数据

    fastlane deliver download_metadata

    修改需要的txt文件 html文件预览 是否使用预览效果

    部分deliver参数

    关于Fastlane 和deliver 的详细参数可以查看官方文档

    Fastlane官方文档https://docs.fastlane.tools/getting-started/ios/setup

    Deliver文件说明传送门https://docs.fastlane.tools/actions/deliver/#more-options

    Demo传送门:https://github.com/TeeMoYan/FastlaneDemo.git

    shell自动化打包:https://www.jianshu.com/p/e8297a8f9c1f

    相关文章

      网友评论

        本文标题:Fastlane使用说明 自动化打包

        本文链接:https://www.haomeiwen.com/subject/jfafhqtx.html