Flutter 项目一键打包多个渠道包的实现
前言在移动开发中通常需要对应用进行不同渠道的打包以满足多平台推广需求。本文将介绍如何通过一键打包脚本实现 Flutter 项目多渠道打包并生成指定的渠道 APK 文件。效果图实现步骤1. 定义渠道索引和名称首先在代码中定义一个渠道索引和渠道名称的数组以便在打包时区分不同渠道。Flutter 支持在构建应用时通过 dart-define 传递不同的构建参数我们可以利用这一特性传递渠道标识。// 渠道下标——打包时可更改——传给后端 int channelTypeIndex int.fromEnvironment(CHANNEL_INDEX, defaultValue: 0);channelTypeIndex 会根据不同的构建命令动态设置值2. 编写打包脚本 build_channels.sh在项目根目录新建 build_channels.sh 文件并编写如下代码#!/bin/bash #运行./build_channels.sh # 定义所有渠道的索引和对应的名称 channels(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) names(官网专业版 百度竞价1专业版 百度竞价2专业版 百度竞价3专业版 百度竞价4专业版 百度竞价5专业版 百度竞价6专业版 百度信息流2专业版 360竞价1专业版 360竞价2专业版 360竞价3专业版 神马竞价1专业版 神马竞价2专业版 神马竞价3专业版 uc信息流1专业版 百度知识营销专业版 360品专专业版) # 版本号这里手动指定版本号或者从其他地方读取 version1.0.0 # 遍历每个渠道进行打包 for i in ${!channels[]} do channel${channels[$i]} name${names[$i]} echo Building channel $channel ($name)... # 执行 flutter build apk 指令为每个渠道设置不同的渠道下标 flutter build apk --release --no-tree-shake-icons --dart-defineCHANNEL_INDEX$channel # 找到生成的 APK 并重命名为特定渠道的名称格式为 test_版本号_渠道名.apk APK_SOURCE_PATHbuild/app/outputs/flutter-apk/app-release.apk APK_TARGET_PATHbuild/app/outputs/flutter-apk/test_${version}_${name}.apk if [ -f $APK_SOURCE_PATH ]; then mv $APK_SOURCE_PATH $APK_TARGET_PATH echo Channel $channel ($name) APK built successfully and saved to $APK_TARGET_PATH else echo Error: APK for channel $channel ($name) not found! fi done echo All channels built successfully!3. 脚本解读•渠道索引与名称通过 channels 数组定义了每个渠道的索引并在 names 数组中定义了渠道名称。•版本号设置可以在 version 变量中修改版本号自动生成的 APK 文件将包含此版本号。•遍历打包通过 for 循环遍历所有渠道依次运行打包命令。•文件重命名打包完成后脚本会将生成的 app-release.apk 重命名为 test_版本号_渠道名.apk以便区分不同渠道的 APK 文件。4. 运行脚本确保脚本具有执行权限然后在终端运行./build_channels.sh5. 运行结果运行后会在 build/app/outputs/flutter-apk/ 目录下生成不同渠道的 APK 文件文件名格式为 test_1.0.0_渠道名.apk。本文介绍了如何通过 Flutter 和 Shell 脚本实现自动化渠道打包节省了手动切换渠道标识的时间方便后续的渠道分发和管理。

相关新闻

企业级跨平台多媒体处理解决方案:ffmpeg静态二进制文件架构设计与最佳实践

企业级跨平台多媒体处理解决方案:ffmpeg静态二进制文件架构设计与最佳实践

企业级跨平台多媒体处理解决方案:ffmpeg静态二进制文件架构设计与最佳实践 【免费下载链接】ffmpeg-static ffmpeg static binaries for Mac OSX and Linux and Windows 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpeg-static ffmpeg静态二进制文件项目…

2026/10/27 11:21:15 阅读更多 →
如何快速获取中小学电子课本:离线下载终极指南

如何快速获取中小学电子课本:离线下载终极指南

如何快速获取中小学电子课本:离线下载终极指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: https…

2026/11/5 16:40:12 阅读更多 →
从入门到精通:REP分类报告与交互式可视化完全指南

从入门到精通:REP分类报告与交互式可视化完全指南

从入门到精通:REP分类报告与交互式可视化完全指南 【免费下载链接】rep Machine Learning toolbox for Humans 项目地址: https://gitcode.com/gh_mirrors/rep3/rep REP(GitHub 加速计划)是一款面向人类的机器学习工具箱(M…

2026/11/11 17:51:49 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻