我是 Zero,废话不多说,脑图奉上

脑图梳理

只要你关注 Flutter,这篇文章你绝对用得着 ==> 强烈建议➕收藏

多渠道打包介绍

多渠道打包的主要作用是满足产品的运营需求,统计渠道和活动效果。
在之前原生(Android、iOS)开发 App 有各种工具来辅助我们完成多渠道打包。
在我们开发过程中也需要为渠道功能负责,原生的开发工具就基本满足我们调试渠道包内容,但是在 Flutter 上需要更多的配置才可以完成,下文将一一介绍从配置=>调试=>打包的全部流程和细节。

多渠道配置

Flutter v1.17 开始,Flutter 命令工具增加了自定义参数的功能 --dart-define,我们可以用这个命令参数在打包或运行 App 时设置参数即可。

首先确定 Flutter 版本,我的版本是 v1.22.6

flutter run --dart-define=APP_CHANNEL=ZeroFlutter

当然你可以传递多组参数

flutter run --dart-define=APP_CHANNEL=ZeroFlutter --dart-define=OTHER_VAR=Dart

在 Dart 代码中你需要这样写,一定是和命令参数是对应的

// main.dart
class EnvironmentConfig {static const APP_CHANNEL = String.fromEnvironment('APP_CHANNEL');static const OTHER_VAR = String.fromEnvironment('OTHER_VAR');
}

运行查看结果

  • 先修改 Flutter 项目对应的代码
// my_home_page.dart
Text('App 渠道:${EnvironmentConfig.APP_CHANNEL}',style: Theme.of(context).textTheme.bodyText1,
),
Text('其他参数:${EnvironmentConfig.OTHER_VAR}',style: Theme.of(context).textTheme.bodyText1,
),
  • 然后运行项目
flutter run --dart-define=APP_CHANNEL=ZeroFlutter --dart-define=OTHER_VAR=Dart
  • 查看结果


这里可以看到已经把对应的参数内容显示出来了,接下来就是具体业务层怎么来使用的问题了,下面内容也会介绍使用场景,继续往下看

Flutter 多渠道打包详解(埋点统计系列文章)相关推荐

  1. Flutter app打包详解

    Flutter app打包跟常规打包是差不多的,以android为例: 配置构建信息 这一步呢主要是检查配置app的基础信息: applicationId versionCode versionNam ...

  2. 《Qt 数据库详解》博客系列文章

    本文章原创于www.yafeilinux.com 转载请注明出处. 由于该系列文章图床都挂了,特下载原文博客的word版. 详细博客请点附件下载. 21-Qt数据库(一)简介 22-Qt数据库(二)添 ...

  3. KVM详解,学习kvm系列文章

    目录 (1):简介及安装 1. KVM 介绍 1.0 虚拟化简史 1.1 KVM 架构 2. KVM 的功能列表 3. KVM 工具集合 4. RedHat Linux KVM 安装 4.1 在安装  ...

  4. 导出jar插件_Fluttify输出的Flutter插件工程详解

    系列文章: yohom:Fluttify输出的Flutter插件工程详解​zhuanlan.zhihu.com yohom:开发Flutter插件必备原生SDK->Dart接口生成引擎`Flut ...

  5. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  6. Maven打包详解(“There are test failures”)

    Maven打包详解("There are test failures") 以下操作都是在IDEA软件内进行的. 第一步:idea界面中选择右边的Maven projects 界面: ...

  7. Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例)

    Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑配置文件(pml.xml)(我 ...

  8. flutter 生命周期详解

    flutter 生命周期详解 简介 一.widget 生命周期 二.APP 生命周期 总结 简介 众所周知,程序是有生命周期的,那么flutter 的生命周期是什么呢? flutter 的生命周期大体 ...

  9. Android-使用Jenkins自动化打包详解-Linux篇

    文章目录 购买和使用阿里云 安装宝塔面板 安装Tomcat 安装 jenkins 配置jenkins 设置FTP jenkins 常规操作 修改admin密码 购买和使用阿里云 首先购买阿里云,可从以 ...

最新文章

  1. 免费查找AI最优论文神器来啦:一键出结果,分分钟提取论文表格、最新数据...
  2. [Warning] TIMESTAMP with implicit DEFAULT value is
  3. python开发环境spyder_spyder python 2.7-spyder(Python开发环境)下载 v2.1.10官方版--pc6下载站...
  4. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
  5. boost::sort模块实现spreadsort wstring 排序示例
  6. fatal: remote origin already exists.解决方法
  7. Angular 依赖注入 useClass 的实例创建位置
  8. 百度飞桨弯道超车了吗?!
  9. django 1.8 官方文档翻译: 3-3-5 编写自定义存储系统
  10. Thread+Handler 线程 消息循环(转载)
  11. hdu1864--dp
  12. smp格式音频转换mp3软件方法
  13. 通信系统中语音信号的仿真分析
  14. 西门子软件测试教程 博客,西门子视频教程合集
  15. Problem A. Snapper Chain 问题A.按扣链条 解决办法
  16. 华硕路由域名访问_“618” WiFi6 路由器选购推荐清单_路由器
  17. python学习记录三:关于ImageFont.truetype(‘Arial.ttf‘, 36)执行报错以及解决方案
  18. Java期末复习基础知识整理(有点长)
  19. 【C++】模板类的友元函数
  20. Codeforces Round #739 (Div. 3) ABCDEF1F2 解题思路

热门文章

  1. 简易的网上购物商城首页设计流程
  2. Javaweb1:HTML、各种标签
  3. Arduino使用敲击模块和光遮断
  4. 记录解决windows XP启动加载个人设置慢的问题
  5. dxp全称_DXP元件名字库
  6. 深度学习实现安全帽佩戴的检测
  7. hMailServer邮件服务下载安装详细步骤、汉化、配置(内含解决.NET Framework和libmysql.dll32位库的问题)
  8. Js各种时间转换问题(YYYY-MM-DD 时间戳 中国标准时间)
  9. 2014第二十二届全国青少年信息学奥林匹克联赛初赛
  10. 风力发电机 有功功率 无功功率 理论有功功率