美文网首页工作生活
fastlane自动化打包-iOS

fastlane自动化打包-iOS

作者: CoderCurtis | 来源:发表于2019-07-02 22:06 被阅读0次
    • 终端判断是否安装了ruby(参考文章讲版本要大于2.0.0)

    $ ruby -v
    
    Snip20190702_1.png
    • 检查ruby源

      gem sources
      
      Snip20190702_2.png
      • 如果需要更换ruby源
        • 先移除当前ruby源
        gem sources --remove https://gems.ruby-china.org/
        
        • 添加新的ruby源
        gem sources -a https://rubygems.org/
        
        • 再次查看ruby源 就更换为最新的了
        gem sources
        
        Snip20190702_3.png
      • 如果ruby版本过低 可以升级
    gem update --system
    
    • 确认是否安装了Xcode命令行工具

      xcode-select --install
      
      • 如果出现以下情况 则代表已经安装
        Snip20190702_4.png
      • 若出现以下情况 点击【安装】就可
        Snip20190702_5.png
    • 安装fastlane

      gem install fastlane -NV
      
      • 使用[gem install fastlane -NV]命令 若出现如下报错:
      You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
      
      更换以下命令
      sudo gem install fastlane -NV -n /usr/local/bin
      
      • 根据网络状况,等待命令全部执行完毕后 看到如下提示安装成功
        Snip20190702_6.png
    • 配置fastlane

      cd 项目目录
      fastlane init
      
      • 终端框中会出现4种选项 这里我选择的是4
      • 参考说出现以下表明成功
        屏幕快照 2019-07-02 21.01.50.png
        但是我等了好久 终端框没见动静 关闭了终端框 然后重新打开终端框后仍输入
      fastlane init
      
      终端框出现了如上所示图片中内容。
      这时查看你的iOS工程可看到比原先多出了一些文件
    屏幕快照 2019-07-02 21.06.16.png
    • 打包上传到蒲公英

      • 安装蒲公英插件
      fastlane add_plugin pgyer
      
      WechatIMG9.png
      等待几分钟后 输入了两次开机密码后 提示成功
      WechatIMG10.png
      • 修改Fastfile 内容
        • 打开自动生成的Fastfile文件
      vim ./fastlane/Fastfile
      
      然后可以看到
      WechatIMG6.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 "上传蒲公英"
      lane :TestPgyer do #TestPgyer 为lane 名称,只要和后面的lane保持一致即可,我们执行时就是执行这个方法
      scheme_name = "xxx"
      #导出路径  我们可以桌面创建IPA_Info(没有的话会自动创建,名字可自定义) 文件夹来集中管理生成的ipa等文件
      output_directory = "/Users/luckycodercai/Desktop/IPA_Info"
        # add actions here: https://docs.fastlane.tools/actions
      #导出名称 
      output_name = "#{scheme_name}_#{Time.now.strftime('Pgyer%Y%m%d%H%M%S')}.ipa"
      gym(
        export_method: "development", #这里填写导出方式 ad-hoc、enterprise、app-store  
        #Xcode 9 默认不允许访问钥匙串的内容,必须要设置此项才可以
        export_xcargs: "-allowProvisioningUpdates", 
        scheme: scheme_name,# target的名字
        clean: true, # 在构建前先clean
        output_directory: output_directory, #ipa输出目录
        output_name: scheme_name #ipa名字
    ) 
      # 上传蒲公英,update_description为版本更新描述。
      pgyer(api_key: "5d7f7f8f23cc9b636d19a2a7ab165xxx", user_key: "39b4763cb82f856c7d67af5b262e9xxx", update_description: "hello")
      end
    end
    
    • 打包并自动上传 App 到蒲公英

    //在项目目录下执行
    fastlane TestPgyer #和前面lane后面的名称保持一致
    
    WechatIMG17.png
    • 执行结束后 桌面会生成output_directory定义的文件夹,里面包含一个压缩包和ipa包并且会自动上传到蒲公英
    WechatIMG19.png WechatIMG8.png

    多target打包

    target -> Edit Scheme -> 勾选Shared
    可以点击Manage Schemes 然后列表中查看或勾选相应的scheme.
    WechatIMG13.png WechatIMG15.png WechatIMG16.png

    比如两个target: 分别为xxx和xxxDev 则若要打包xxx,Fastfile中的scheme_name = "xxx"若要打包 xxxDev 则Fastfile中的scheme_name修改为scheme_name = "xxxDev"


    • 蒲公英有提供多种自动化打包方式,其中使用 Fastlane 上传 App 到蒲公英是种超级简单的方式:
      • 若工程中仅存在一个target,则生成的ipa包等直接存放于工程根目录下,ipa也会自动上传到你设置的蒲公英账号上。
      • 若工程中存在多个target,需要按照上述对需要打包的target勾选Shared选项,打包时,终端会询问你想打包哪个target,生成的ipa包等直接存放于工程根目录下,ipa包会自动上传到设置的蒲公英账号上。

    打包并上传到fir.im

    与蒲公英操作基本一致:
    • 安装fir插件
      fastlane add_plugin firim
      
    WechatIMG28.png
    中间输入一次y和两次开机密码
    提示Successfully installer plugins表示插件安装成功
    WechatIMG29.png
    • 安装官方工具fir-cli
    gem install fir-cli
    

    如果报如下图权限错误,则更换命令:

    sudo gem install -n /usr/local/bin fir-cli --no-ri --no-rdoc
    
    WechatIMG30.png
    提示如下图 Successfully install xxx gems installed时表明安装成功
    WechatIMG31.png
    • 修改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 "上传fir"
    lane :TestFir do #TestFir 为lane 名称,只要和后面的lane保持一致即可,我们执行时就是执行这个方法
    scheme_name = "xxxDev"
    #导出路径  我们可以桌面创建xxxIPA(没有的话会自动创建) 文件夹来集中管理生成的ipa等文件
    output_directory = "/Users/luckycodercai/Desktop/xxxIPA"
      # add actions here: https://docs.fastlane.tools/actions
    #导出名称 
    output_name = "#{scheme_name}_#{Time.now.strftime('fir_im%Y%m%d%H%M%S')}.ipa"
    gym(
      export_method: "development", #这里填写导出方式 ad-hoc、enterprise、app-store  
      #Xcode 9 默认不允许访问钥匙串的内容,必须要设置此项才可以
      export_xcargs: "-allowProvisioningUpdates", 
      scheme: scheme_name,# target的名字
      clean: true, # 在构建前先clean
      output_directory: output_directory, #ipa输出目录
      output_name: scheme_name #ipa名字
    ) 
    # 上传fir
    firim(firim_api_token: "7844e5febf265cc35b5d47dfae43bxxx")
    end
    end
    
    • cd到工程目录
    打开到工程目录
    fastlane TestFir
    
    WechatIMG32.png WechatIMG33.png WechatIMG34.png
    • 执行fastlane TestFir

    遇到报错:

    Could not find action, lane or variable 'firim'. Check out the documentation for more details: https://docs.fastlane.tools/actions
    

    使用命令:

    sudo fastlane add_plugin firim
    

    重新安装fir插件

    WechatIMG35.png WechatIMG36.png

    参考:
    fastlane docs
    iOS实现fastlane自动化打包
    官方工具 fir-cli 使用说明

    相关文章

      网友评论

        本文标题:fastlane自动化打包-iOS

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