美文网首页我的收藏iOS归纳
iOS使用fastlane一行命令上传到蒲公英

iOS使用fastlane一行命令上传到蒲公英

作者: 天寒地裂 | 来源:发表于2021-06-18 12:06 被阅读0次

    iOS使用fastlane一行命令上传到蒲公英

    1、安装fastlane

    1.1 安装fastlane

    sudo gem install fastlane
    

    1.2 检查版本 fastlane

    fastlane --version
    

    2、工程添加fastlane

    2.1 初始化配置

    $ cd 项目目录
    $ fastlane init
    

    2.2 初始化什么样的配置,上传到蒲公英,我们选4

    What would you like to use fastlane for?
    1.   Automate screenshots
    2. ✈️  Automate beta distribution to TestFlight
    3.   Automate App Store distribution
    4.   Manual setup - manually setup your project to automate your tasks
    

    这个地方会要你选择。
    1.自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框.
    2.自动发布beta版本用于TestFlight
    3.自动的App Store发布包
    4.手动设置
    我这里是选的第4个。自行选择就好。

    有可能会遇到卡着的情况,比如:


    -w583

    这里如果卡住,取消重新来一次

    2.3 安装蒲公英的 Fastlane 插件

    在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。

    fastlane add_plugin pgyer
    

    2.4 安装fir的 Fastlane 插件

    在终端中,输入以下命令,即可安装fir的 fastlane 插件。

    fastlane add_plugin fir
    

    或者

    fastlane add_plugin fir_cli
    

    或者

    fastlane add_plugin firim
    

    3、配置

    3.1 配置Appfile文件,配置如下:

    app_identifier "" # 你App的bundleID
    apple_id "" # 你的开发账号邮箱
    

    3.2 配置Fastfile文件,配置如下:

    default_platform(:iOS)
    
    platform :iOS do
      desc "Description of what the lane does"
      lane :build do |options|
        #输出ipa包路径
        outputDir = "~/ipa"
        gym(
            # 指定输出的ipa名称
            output_name:"XXXApp_#{options[:log]}",
            # 指定项目的scheme  工程名字
            scheme:"XXXX",
            # 是否清空以前的编译信息 true:是
            clean:false,
            # 指定打包方式,Release 或者 Debug
            configuration:"Debug",
            # 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
            # 注:由于使用手动配置证书,在export_options指定打包方式
            #export_method:"#{ipa_exportMethod}",
            # 指定输出文件夹
            output_directory: outputDir,
            # Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
            export_xcargs:"-allowProvisioningUpdates",
            # 隐藏没有必要的信息
            silent:true,
            # 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
            export_options: {
                method:"development"
                },
            include_bitcode: false,
            workspace: "XXXX.xcworkspace",  #如果项目使用CocoaPods需要加上
            )
    end
    end
    

    一个lane就是一个任务,build名字可以自己改,gym是fastlane提供的打包工具,括号里面就是你自己配置的一些东西。意思你用fastlane打包的时候,Xcode也可以编译运行手机程序了,不影响你Xcode工作,只是不能修改代码,但是打断点、看图层还是可以的。
    最后一个就是蒲公英的配置了

    配置上传蒲公英

    # => 上传pgyer
    lane :uppgy do |options|
     
        build(log: "#{options[:log]}")
        pgyer(api_key: "XXXXXXXXXXXXXXXXXXXXXXXX", user_key: "XXXXXXXXXXXXXXXXXXXXXXXX", update_description: "XXXXX", password: "123", install_type: "2")
    end
    

    update_description更新描述,password配置安装密码,如果配置加上这个,同时install_type也要加上,type为2,如果不要密码,就不用加上password,install_type也不用,如下

    # => 上传pgyer
    lane :uppgy do |options|
     
        build(log: "#{options[:log]}")
        pgyer(api_key: "XXXXXXXXXXXXXXXXXXXXXXXX", user_key: "XXXXXXXXXXXXXXXXXXXXXXXX", update_description: "XXXXX")
    end
    

    配置firm

    # => 上传fir
    lane :upfir do |options|
     
        build(log: "#{options[:log]}")
        firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX")
        #fir_cli api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", changelog: "#{options[:log]}"
    end
    

    firm有两个上传方法,fir_cli和firim看那个可以用用哪个,另一个要注释掉,前面加个#就是注释

    4、上传

    cd 到工程目录下,和fastlane同级的目录。输入如下指令

    fastlane iOS upfir
    

    等待打包上传即可

    4.1 fir 上传成功

    -w517

    Tips:踩坑指南

    1.报错Error setting value 'XXXXX.xcworkspace' for option 'workspace'

    打开Fastfile文件,修改以下地方

    workspace: "XXXXXX.xcworkspace",  #如果项目使用CocoaPods需要加上
    

    2.报错Could not find action, lane or variable 'fir_cli'.

    -w570

    没有安装插件,回到2.4,执行以下命令

    fastlane add_plugin fir_cli
    

    3.报错You passed invalid parameters to 'firim'.

    -w563 -w577

    传入了无效参数,打开Fastfile文件,修改以下地方

    firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", changelog: "#{options[:log]}")
    

    改成

    firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX")
    

    或者

    firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", app_changelog: "#{options[:log]}")
    

    如果有其他问题,请在评论区留言,我会尽可能回复,谢谢

    参考文档:

    使用 Fastlane 上传 App 到蒲公英
    fastlane文档

    相关文章

      网友评论

        本文标题:iOS使用fastlane一行命令上传到蒲公英

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