首页 > 其他分享 >Flutter 项目一键打包多个渠道包的实现

Flutter 项目一键打包多个渠道包的实现

时间:2024-11-06 17:44:18浏览次数:5  
标签:专业版 APK 一键 channels 渠道 build apk 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品专专业版')

# 版本号,这里手动指定版本号,或者从其他地方读取
version="1.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-define=CHANNEL_INDEX=$channel
  
  # 找到生成的 APK 并重命名为特定渠道的名称,格式为 test_版本号_渠道名.apk
  APK_SOURCE_PATH="build/app/outputs/flutter-apk/app-release.apk"
  APK_TARGET_PATH="build/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.sh

5. 运行结果

运行后,会在 build/app/outputs/flutter-apk/ 目录下生成不同渠道的 APK 文件,文件名格式为 test_1.0.0_<渠道名>.apk。

本文介绍了如何通过 Flutter 和 Shell 脚本实现自动化渠道打包,节省了手动切换渠道标识的时间,方便后续的渠道分发和管理。

标签:专业版,APK,一键,channels,渠道,build,apk,Flutter,打包
From: https://blog.csdn.net/qq_52871405/article/details/143402088

相关文章

  • python项目打包指南
    #Python是解释型语言,我们写的Flask或Django项目如果部署,#源码可能会泄露,因此我们可以把项目打包成exe,来保护源码#需要用到工具-pyinstaller:把python项目打包成不同平台的可执行文件-nsis:NSIS(NullsoftScriptableInstallSystem)是一个开源的Windows系统下安装程序制作......
  • Unity 一键导出exe
    publicstaticvoidSettingPlayer(){RefreshAllScene(true);string[]scenesNamseList=scenesName.Split('\\');string[]sceneNamesList_Right=scenesNamseList[scenesNamseList.Length-1].Split('/');......
  • 《女神异闻录5皇家版》游戏辅助工具修改器操作手册:一键开启金手指
    《女神异闻录5皇家版》(Persona5Royal)是一款深受玩家喜爱的角色扮演游戏。对于希望使用游戏辅助工具或修改器的玩家来说,重要的是要确保所使用的工具是可靠的,并且遵守游戏的服务条款。不当使用修改器可能导致游戏账户被封禁。如果你仍然想了解如何使用修改器,请按照以下一般......
  • 2025 - 全网最牛的生物信息学分析 - 一键式生成DIFF_GSEA_WGCNA_GO_KEGG_DO
    2025-全网最牛的生物信息学分析-一键式生成DIFF_GSEA_WGCNA_GO_KEGG_DO先给你炫一下图直接上代码setwd("/Users/wangyang/Desktop/BCBM/02DIFF_GSEA_WGCNA")#引用包library(ggplot2)library(limma)library(pheatmap)library(ggsci)library(dplyr)lappl......
  • 在 Windows 中,diantz 工具可用于将现有的文件打包为 CAB 文件,类似于 makecab 命令。di
    diantz|MicrosoftLearn.cab文件(Cabinet文件)是一种压缩文件格式,用于存储多个文件或文件夹。它通常用于Windows操作系统中,作为安装包的一部分,尤其是在驱动程序、应用程序和系统文件的分发中。.cab文件通过压缩算法(如LZX或MSZIP)减小文件体积,便于存储和传输。它可以包......
  • Flutter+鸿蒙NEXT开发获取系统文件路径
    Flutter+鸿蒙NEXT开发获取系统文件路径在具体的开发过程中,有时需要获取临时目录、文档目录等需求.本文具体讲解怎么在Flutter中可以利用path_provider插件来完成此项工作,OpenHarmonySIG组织对该插件做了鸿蒙NEXT系统的适配,接下来将详细讲解如何利用path_provider插件来获取系统文......
  • 通过VITE/rollup实现一个工程的代码分别打包成SPA(单页面应用)和MPA(多页面应用)
    问题背景我们的客户开发的系统会销售给多个不同的单位使用,并且是需要私有化部署的。在有的客户那里,直接部署完就结束了。但是另外一些客户,提出了一些特别的要求。他们要求我们的系统只需要提供一个个功能页面,无需提供菜单管理等功能。功能页面的调度、管理、权限等工作,则是由......
  • 诛仙3:幻心千劫|单机安装教程|虚拟机一键端|GM工具包
    天给大家带来一款单机游戏的架设:诛仙3-幻心千劫-16职业。游戏版本:v4.4.0只适用于单机娱乐,此教程是本人亲测所写,踩坑无数,如果你是小白跟着教程走也是可以搭建  亲测视频演示https://githubs.xyz/show/297.mp4 游戏安装步骤此游戏架设需要安装虚拟机,没......
  • TaTa_0.0.6,视频图片4K修复工具,模糊一键变高清
    这款神奇的工具就是TaTa!它采用的是开源模型Real-ESRGAN-ncnn-vulkan技术,专门用于图像清晰化处理。无论你的原始图片有多么模糊,只需轻轻一点,它就能让你的图像瞬间变得清晰无比,甚至能够达到4K的画质!当然,他也有修复视频和其他功能适用的系统:windows系统下载好软件后,解压安......
  • 视频多功能助手,智能去重去水印一键剪辑
    软件介绍:视频一键搬运软件,支持全平台去水印,各种去重方法。新手直接使用,操作方便,流量天花板部分功能:全平台去水印多平台搬运去重专项+随机2.1专项+移动溶图专项+随机扫光专项+随机镜头视频特效智能抽帧智能锐化黑白视频智能降噪智能模糊智能边框智能调色镜......