乐趣区

关于ios:iOS-Fastlane

  • 问题

    天天打包,即使面对的是肤白貌美小姐姐,终有装置辨认别烦我的苦恼以及事到一半打个包的郁闷,

    咋整?

    Fastlane 吧!

  • 思路

    1.xcode-select 装置,确定装置了最新版本

    xcode-select --install

    2. 装置 fastlane, 独自装置,去掉 sudo; 应用零碎自带的 ruby,须要 sudo 权限

    sudo gem install fastlane

    3. 我的项目根目录,初始化 fastlane

    fastlane init  // 命令行
    
    // 执行后果
    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
    ?  4

    4. 配置下 Fastfile 文件

    default_platform(:ios)
    platform :ios do 
      lane :beta_release do |options|
        # 版本号设置
        increment_build_number(build_number: options[:buildnumber]
          )
        # 打包 ipa 文件
        buildapp(
          workspace: "xxx.xcworkspace",
          configuration: "Release",
          scheme: "xxx",
          export_method: "ad-hoc",
          output_name: "xxx.ipa"
          )
        
        # 上传到蒲公英
        pgyer(api_key: "xxx", user_key: "xxx", update_description: options[:message])
      end
    
      desc "build app"
      private_lane :buildapp do |options|
        gym(workspace: options[:workspace],
          configuration: options[:configuration],
          scheme: options[:scheme],
          clean: true,
          export_method: options[:export_method],
          output_directory: "./fastlane/package/",
          output_name: options[:output_name],
          sdk: "iphoneos"
          )
      end 
    end
    

    5. 管制 Version 版本号设置自增

    Versioning System 设置为 Apple Generic

    6. 增加 pgyer 插件,可上传到蒲公英

    sudo fastlane add_plugin pgyer

    7. 调用形式

    /usr/local/bin/fastlane beta_us_release message:"打包啦" buildnumber:101
  • 结语

    工程中的 Pod 执行,可放在 lane 中执行,或脚本执行,各凭爱好不细说,

    可能问题:

    1. 出错 fastlane_xcode_build_settings_timeout

    命令行中运行如下来更新 timeout 工夫

    export FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120

    2.Fastlane bundle update 执行卡住

     查看 ruby 源
    gem source -l
    
    替换源
    gem source --add https://gems.ruby-china.com/ --remove https://rubygems.org/
    
    替换 Gemfile 文件
    source "https://rubygems.org" 替换成  source "https://gems-china.org"
    
    删除 fastlane 文件夹,关上终端,cd 到工程目录下,再次执行 fastlane init

    3.invalid byte sequence in US_ACSII 谬误

     解决办法:export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    export LC_ALL=en.us.UTF-8
退出移动版