美文网首页
使用Flutter Distributor打包Flutter应用

使用Flutter Distributor打包Flutter应用

作者: 卢叁 | 来源:发表于2022-06-28 16:38 被阅读0次

    Flutter Distributor是使用Dart写的CI工具,可用于打包和发布Flutter应用。官方文档

    安装
    dart pub global activate flutter_distributor

    用法
    distribute_options.yaml 添加到项目根目录,并设定ipa、apk文件输出路径:
    output: dist/

    配置发布项
    build_argsflutter build命令所支持的参数,可根据项目进行修改。

    env:
      PGYER_API_KEY: 'your api key'
    output: dist/
    releases:
      - name: dev
        jobs:
          # 构建 apk 包并将其发布到 pgyer
          - name: release-dev-android
            package:
              platform: android
              target: apk
              build_args:
                target-platform: android-arm,android-arm64
                dart-define:
                  APP_ENV: dev
            publish_to: pgyer
          # 构建 ipa 包并将其发布到 pgyer
          - name: release-dev-ios
            package:
              platform: ios
              target: ipa
              build_args:
                export-options-plist: ios/ExportOptions.plist
                dart-define:
                  APP_ENV: dev
            publish_to: pgyer
    

    发布应用

      # 安卓包
      flutter_distributor release --name dev --jobs release-dev-android
      # iOS包
      flutter_distributor release --name dev --jobs release-dev-ios
      # iOS及安卓包
      flutter_distributor release --name dev
    

    目前Flutter Distributor还没支持打完包后钉钉通知相应测试人员,所以可以自己添加脚本使用curl来做,shell脚本如下:

    #!/bin/bash
    
    check_results=`flutter_distributor --version`
    if [[ $check_results =~ "0.1.8" ]]
    then
        echo "flutter_distributor version is 0.1.8, it seems not need to install flutter_distributor again."
    else
        echo "It is going to install flutter_distributor  0.1.8 version"
        dart pub global activate flutter_distributor 0.1.8
    fi
    
    
    echo "请选择打包方式 ? [ 1:安卓 2:iOS 3:iOS加安卓 4:安卓国内v7及v8]"
    read number
    while ([[ $number != 1 ]] && [[ $number != 2 ]] && [[ $number != 3 ]] && [[ $number != 4 ]])
    do
    echo "请选择打包方式 ? [ 1:安卓 2:iOS 3:iOS加安卓 4:安卓国内v7及v8]"
    read number
    done
    
    
    url="https://oapi.dingtalk.com/robot/send?access_token=xxx"
            readonly url;
            echo $url
    
    downUrlForiOS="https://www.pgyer.com/xxx"
            readonly downUrlForiOS
            echo $downUrlForiOS
    
    downUrlForAndroid="https://www.pgyer.com/xxx"
            readonly downUrlForAndroid
            echo $downUrlForAndroid
    
    #at 
    phones='"xxx","xxx"'
          readonly phones;
           echo $phones
    #测试描述
    desc='请测试'
    
    echo $number
    
    if [ $number -eq 1 ];then
      echo "安卓开始打包"
      # 安卓包
      flutter_distributor release --name dev --jobs release-dev-android
      # 上传蒲公英
      curl -H 'Content-Type: application/json' -X POST  -d '{
        "at": {
           "atMobiles":['"$phones"'],
           "isAtAll": false
        },
       "text": {
            "content":"安卓新包:'$downUrlForAndroid','$desc'"
        },
        "msgtype":"text"
      }' $url
    
      echo -e "\n upload android success \n"
    
    elif [ $number -eq 2 ]; then
      echo "iOS开始打包"
      # iOS包
      flutter_distributor release --name dev --jobs release-dev-ios
      # 上传蒲公英
      curl -H 'Content-Type: application/json' -X POST  -d '{
        "at": {
           "atMobiles":['"$phones"'],
           "isAtAll": false
        },
        "text": {
            "content":"iOS新包:'$downUrlForiOS','$desc'"
       },
        "msgtype":"text"
      }' $url
    
      echo -e "\n upload iOS success \n"
    
    elif [ $number -eq 3 ]; then
      echo "安卓及iOS开始打包"
      # iOS&安卓包
      flutter_distributor release --name dev
       # 上传蒲公英
      curl -H 'Content-Type: application/json' -X POST  -d '{
        "at": {
            "atMobiles":['"$phones"'],
            "isAtAll": false
        },
        "text": {
            "content":"安卓新包:'$downUrlForAndroid',\n iOS新包: '$downUrlForiOS','$desc'"
        },
        "msgtype":"text"
      }' $url
    
      echo -e "\n upload iOS、android success \n"
    fi
    exit
    

    相关文章

      网友评论

          本文标题:使用Flutter Distributor打包Flutter应用

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