美文网首页iOS打包审核
Fastlane自动化打包

Fastlane自动化打包

作者: CowboyBebop | 来源:发表于2018-08-27 18:27 被阅读29次

    参考: https://blog.csdn.net/kuangdacaikuang/article/details/80443515
    https://docs.fastlane.tools

    一,先安装Fastlane

    安装fastlane,

    sudo gem install fastlane --verbose
    

    查看fastlane 版本

    fastlane --version
    

    二,创建demo工程

    因为大多数项目,都会使用pod ,所以这样也是用了pod


    image.png

    三,初始化

    • 1,cd 到项目目录下,fastlane init 之后会有4个选项


      image.png

      分别是截图,测试,上传App Store,手动设置,这里我们选择3,


      image.png
      然后输入开发者账号和密码。

    可能你会遇到下面这样的错误


    image.png

    因为它默认的源是:https://rubygems.org,但是我本地的是https://gems.ruby-china.com,这个是因为上面的source 被墙了,就换成了下面那个,你可以在Gemfile文件里将它换成后面那个。

    image.png
    然后执行:bundle update,就行了。

    四,安装其他插件

    你可以选择上传到firm 或者蒲公英平台都可以,这里我选择是蒲公英。

    • 1,安装蒲公英插件
    bundle exec fastlane add_plugin pgyer
    
    • 2,安装版本控制versioning插件
    bundle exec fastlane add_plugin versioning
    

    -3,安装版wait_xcrun插件

    bundle exec fastlane add_plugin wait_xcrun
    

    五,修改Fastfile 文件

    image.png

    安装完了,我们可以看看fastlane 这个文件夹下面的文件,Appfile 是放APP ID的一些信息,Pluginfile 是插件的一些信息,metadata 是App Store 的一些元数据,screenshots 是放截图的,Fastfile 是我们真正要修改的文件

    需要实现的功能:
    1,buidl版本号自增,
    2,拉取git提交记录作为蒲公英的上传描述,
    3,邮件通知测试人员,
    4,新建文件夹放导出的IPA 包
    5,配置文件的更新:update_project_provisioning

    # 1,版本自增,2,拉取git提交记录作为蒲公英的上传描述,3,邮件通知测试,4,新建文件夹放导出的IPA 包
    default_platform(:ios)
    platform :ios do
      before_all do
        puts "在打包之前"
        # git_pull
        cocoapods
      end
      after_all do
      puts "打包完成,并上传蒲公英成功"
      end
    
    
      desc "build版本自增"
      lane :build_number do
    
        #fastlane add_plugin versioning
        increment_build_number_in_plist
      end
    
      desc "上传到蒲公英,请用 fastlane beta desc:xxx "
      lane :beta do |option|
    
        changelog = option[:desc]
        # 如果没有写描述,就拉取git最好一次commit 作为描述
        if option[:git] == "y"
          git_add(path: ".")
          git_commit(path: ".", message:changelog)
          push_to_git_remote
    
        elsif changelog.nil?
          changelog = last_git_commit[:message]
          puts "changelog: #{changelog}"
          
        else
    
        end
        #版本自增
        increment_build_number_in_plist
    
        #编译打包参数
        # 项目名称
        scheme_name = "FastlaneDemo"
        # Debug 方法
        configuration = "Debug"
        # Info.plist的路径
        plist_path = "./#{scheme_name}/Info.plist"
        # version 版本号
        version = get_info_plist_value(path: plist_path, key: "CFBundleShortVersionString")
        # build 版本号
        build = get_info_plist_value(path: plist_path, key: "CFBundleVersion")
        # APP名称
        app_name = get_info_plist_value(path: plist_path, key: "CFBundleDisplayName")
        # IPA 的存放路径,如果项目用git 管理的,这个文件夹应该要忽略掉,
        output_directory = "./IPA"
        # 拼接出 ipa 包的名称,会根据打包方式,version版本号,build 版本号,当前打包时间拼接出包名
        output_name = "#{scheme_name}_#{configuration}_#{version}_#{build}_#{Time.now.strftime('%Y%m%d%H%M')}.ipa"
        
        #编译 
        gym(
          scheme: scheme_name, 
          workspace: "#{scheme_name}.xcworkspace",
          clean: true, 
          export_method:'ad-hoc', 
          configuration: configuration, 
          output_directory: output_directory, 
          output_name: output_name
          )
    # 这句会编译出 dsym 文件
    #   build_app(export_method: "ad-hoc")
        #填上你在蒲公英后台的key
        pgyer(api_key: "换上自己的key", user_key: "换上自己的key", update_description: changelog)
      end
    end
    

    六,打包测试

     fastlane beta desc:第一次打包测试
    
    • 1,打包之前先执行pod install,我们需要在Gemfile 文件里加上
      gem "cocoapods"
    before_all do
       puts "在打包之前"
       # git_pull
       cocoapods
     end
    
    image.png
    • 2,打包成功


      image.png
    • 3,还需要实现的功能:邮件通知测试人员,这个要用ruby 写请求。

    FastlaneDemo

    相关文章

      网友评论

        本文标题:Fastlane自动化打包

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