使用flutter_distributor打包Flutter应用

1. 通过flutter脚本打包

1.1 iOS打包

1.1.1 自动创建证书打包
flutter build ipa  --export-method ad-hoc --dart-define=ENV=$name
1.1.2 手动创建证书打包
flutter build ipa --export-options-plist shell/AdHocExportOptions.plist --dart-define=ENV=$name --dart-define=APP_NAME=$name

1.2 Android打包

flutter build apk --dart-define=ENV=$name --release --target-platform android-arm,android-arm64 --split-per-abi

2. 通过flutter_distributor打包

flutter_distributor 传送门

2.1 通过命令打包

flutter_distributor package --platform ios --targets ipa --build-export-options-plist  shell/AdHocExportOptions.plist --build-dart-define=ENV=$name

2.2 通过配置文件打包

项目根路径添加’distribute_options.yaml’文件

env:
  PGYER_API_KEY: '***' # 蒲谷英 token
  FIR_API_TOKEN: '***' # fir token
  APPSTORE_USERNAME: 'app store username' # app store 登录用户名
  APPSTORE_PASSWORD: '***' # App Store 专用密码
output: dist/ # 输出路径
releases:
  # 开发环境
  - name: dev # 命令名称
    jobs:
      # Build and publish your ipa pkg to pgyer
      - name: ios # job名称
        package:
          platform: ios/android # 平台
          target: ipa # 打包方式
          channel: channel # 渠道
          build_args: # 构建参数
            target-platform: android-arm,android-arm64 # 安卓构建平台
            export-options-plist: shell/AdHocExportOptions.plist # iOS打包配置文件
            dart-define: # 自定义参数
              ENV: dev # 环境参数
            split-per-abi: # 安卓是否分开打包, 不要带参数 
        publish_to: fir/pgyer/appstore # 上传平台

所有jobs一块打包

flutter_distributor release --name {命令名称} --skip-clean

单个job打包

flutter_distributor release --name {命令名称} --jobs ios --skip-clean
  • --skip-clean: 是否忽略flutter_clean

2.3 配合脚本打包

echo '请选择打包环境类型'
echo '0: dev'
echo '1: test + release'
read env
case $env in
0)
    env='dev'
    ;;
1)
    env='test_release'
    ;;
*) 
    echo '你没有输入 0 到 1 之间的数字, 默认打dev的包'
    env='dev'
    ;;
esac

# 钉钉群 Webhook 地址
url="https://oapi.dingtalk.com/robot/send?access_token=***"
# readonly url;
echo $url
# 测试地址
downloadUrl="fir/pgyer安装包下载地址"
# readonly downloadUrl
echo $downloadUrl
# 测试描述
desc='请测试'

echo "开始打 $env 环境的包"
flutter_distributor release --name $env --skip-clean

# 发送钉钉通知
curl -H 'Content-Type: application/json' -X POST  -d '{
  "at": {
      "isAtAll": true // 是否@所有人
  },
  "text": { // 描述信息
      "content": "'$env'环境包已打好, 安装包地址: '$downloadUrl','$desc'"
  },
  "msgtype": "text"
}' $url
echo -e "\n钉钉通知已发送 \n"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值