基于美团的多渠道打包shell 脚本

6月18日-青龙面板-美团脚本学习教程 6.10日青龙美团可用脚本链接: 回应下最近的一些问题问:这个脚本能稳定多久?答:问出这种问题的真的很小白,羊毛项目有长久的吗?是长久的别人还告诉你?问:这个脚本买了售不售后?答:脚本才几块,本地搭建完成后,一个号一天回本~ 你在问我售不售后,这个价卖的只是脚本加教程,至于脚本更新问题,看心情~ (白嫖党可以理解成不售后)问:为什么跑出来是0金币?答:情况很多,可...... 阅读详情

如果之前没有了解过美团多渠道打包的请查阅美团多渠道打包

好了话不多说下面来看一下脚本文件

#!/usr/bin/env bash
# !/usr/bin/bash
#//由于项目中需根据不同项目打不同的渠道包故传入参数 项目名
model=$1
# 空文件 便于写入此空文件到apk包中作为channel文件
src_empty_file='wc.txt'
# 创建一个空文件(不存在则创建)
if [ -e $src_empty_file ]; then
    rm  $src_empty_file
fi

touch $src_empty_file

if [ ! $? -eq 0 ]; then
   exit 1;
fi
# 获取当前目录中所有的apk源包
src_apks=()
#//由于目录问题,我将shell脚本放在project/doc/channel 下 ,如果和我的不同请自行更改
file_path=$(dirname $0)/../../../"${model}/build/outputs/apk/"
for file in $(cd $file_path;ls); do
newFile=${file_path}$file
  if [ -f $newFile ];then
      basename $file | grep '\.apk$' && src_apks=("${src_apks[@]}" "${file_path}$file")
      echo $basename
  fi
done
  echo ${src_apks[@]}

# 获取渠道列表,txt文件中只需写入渠道,每个渠道单行
if [ $model = "ssq" ];then
    channel_file='SSQChannel.txt'
else
    channel_file='CommonChannel.txt'
fi
f=$(cat $channel_file)

for src_apk in ${src_apks[@]};do
    # file name (with extension)
    src_apk_file_name=$(basename $src_apk)
    # 分割文件名与后缀
    src_apk_name=${src_apk_file_name%.apk}
    # 后缀名,包含.   例如: ".apk "
    src_apk_extension=${src_apk_file_name##*.}
    # 创建生成目录,与文件名相关
#    output_dir='output-'${src_apk_name}//如果需要生成新的目录则启用
    output_dir=$(dirname $0)/../../../"${model}/build/outputs/apk/"
#   if [ -e $output_dir ]; then
#       rm -r $output_dir
#   fi
    mkdir -p $output_dir

    # 遍历渠道号并创建对应渠道号的apk文件
    for line in $f;do
         target_channel=$line
         target_apk=${output_dir}${model}-${target_channel}-"release".${src_apk_extension}
        echo "${output_dir}=======>${src_apk_name}=======>, ${target_channel}  =======>, ${src_apk_extension}  =======>"
        # 拷贝建立新apk
        cp  $src_apk $target_apk
        # 初始化渠道信息
        empty_channel_file="META-INF/wcchannel_${target_channel}"
        # 写入渠道信息
        if [ ! -e $(dirname $empty_channel_file) ]; then
            mkdir -p $(dirname $empty_channel_file)
        fi
        touch $empty_channel_file
        jar -uvf $target_apk -C . $empty_channel_file
    done
done
rm -rf ./META-INF/

这里的话 执行本脚本之前请确保 已经存在release包并且位于model/build/outputs/apk/下执行完成本脚本之后为命名方便,我的release包为modelname-channel-release.apk

重点内容 注意这种方式只适用于加在不同资源在代码中根据渠道号进行切换

下面给出获取渠道号的java代码(其实上面链接中已经有了):

public static String getChannel(Context context) {
        ApplicationInfo appinfo = context.getApplicationInfo();
        String sourceDir = appinfo.sourceDir;
        String ret = "";
        ZipFile zipfile = null;
        try {
            zipfile = new ZipFile(sourceDir);
            Enumeration<?> entries = zipfile.entries();
            while (entries.hasMoreElements()) {
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                String entryName = entry.getName();
                if (entryName.startsWith("mtchannel")) {
                    ret = entryName;
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (zipfile != null) {
                try {
                    zipfile.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        String[] split = ret.split("_");
        if (split != null && split.length >= 2) {
            return ret.substring(split[0].length() + 1);

        } else {
            return "";
        }
    }

好到此结束,大功告成!

Android开发Gradle高级技巧、自定义Gradle-Task、打包完成自动签名、执行Shell脚本 Android进阶学习全套手册Android对标阿里P7学习视频BAT TMD大厂Android高频面试题###二:废话不说了直接进入正题,自定义Gradle Task先看下一个基本的task结构(当然也还要一些其他东西,这就需要去Gradle文档查看了)//依赖于其他Task执行完,在执行本Task//先执行doFirst{// 后执行doLast{####签名系统apk所需要的东西,两个系统提供的证书,一个jdk提供签名jar文件。 阅读详情

相关推荐

Android APK签名演进:从v1到v4的安全架构与实战指南

数字签名是软件安全领域的核心机制,它通过非对称加密技术确保数据的完整性和来源可信性。其基本原理是开发者使用私钥对软件包生成唯一的数字摘要,用户则使用公钥进行验证,任何篡改都会导致验证失败。这项技术在保障软件供应链安全方面具有重要价值,广泛应用于应用分发、系统更新和代码防篡改等场景。在Android生态中,APK签名机制正是这一原理的具体实践,它作为应用的“数字身份证”,经历了从v1到v4的持续演进。其中,v2签名通过全文件哈希彻底解决了v1的“后门攻击”漏洞,而v4签名则创新性地引入Merkle树结构,为增

weixin_34198881的博客 388

美团青龙教程(2023.8.30最新版)附脚本

美团青龙教程

weixin_49808708的博客 5万+

美团买菜抢菜脚本源码+项目说明.zip

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 美团买菜抢菜脚本源码+项目说明.zip

[转]iPhone多渠道自动打包Shell脚本介绍

[转]iPhone多渠道自动打包Shell脚本介绍 摘要   随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道打包成了一件费时费力的工作,本文提供一种比较智能的打包方式来减少其带来的各种不便。 TAG Ios打包,app打包,iphone打包,iphone自动化打包,ios打渠道包,iph

SergioWoo的专栏 1435

美团技术--多渠道打包脚本

对于游戏每次发布新版本时,都会发布到国内各大应用市场,为了统计不同应用市场的推广效果,我们会为每一个apk添加唯一的标识(渠道号),方便进行数据统计… 按照这个想法,本人一开始是通过在Android工程下的清单文件里面添加一个渠道标签,如下: <meta-data android:name="CHANNEL_ID" android:value="XXX"/> 然后封装一个工具类,在游戏启动的时候去动态获取这个Cha

你的外祖父的博客 2705

青龙美团教程

青龙美团

哈哈哈哈 4052

Gradle极速打包方案

简书排版 http://www.jianshu.com/p/08a441fa3204目录 - 简介 - 方案 - 源码 - 参考简介关于急速打包 之前有过一篇文章《Gradle编译打包小结》 笔者平时也是用这种常规方式打包编译的,速度比较慢,尤其是在渠道比较多的的时候 笔者整理了一些网络上的资料,大致有两类方案,作个小结。方案1.使用美团的方案 美团使用的是python打包,脚

handy周 1763

极速打包shell版】

同步发表至 http://avenwu.github.io/2014/12/16/fast_apk_release/ 前言 前阵子无意间看到美团的技术文章,一口气读了几篇java、android相关的博文,写的都非常不错,其中有一篇讲得是android渠道包的问题,抱着好奇心读完全文,文中提到了几种渠道包生成方式,从ant+for循环,maven,gradle, zip+python,随着时间的迁...

weixin_33896726的博客 136

自动化打包资源混淆集成python实践----打包

1、自动化打包方案  1)友盟多渠道多渠道打包 2)gradleproductFlavors系统的条件编译 3)美团打包 4)APK文件注释写入渠道号 2、各打包方案简介 1)友盟多渠道多渠道打包(window 绿色版,gradle版本 现在过时) 原理:拆包分解apk,修改AndroidManifest....

weixin_30587025的博客 262

android 乐固渠道打包,Jenkins奇技淫巧 — Python乐固,多渠道打包篇(Android自动化构建)...

Jenkins奇技淫巧 — 安装篇(mac)Jenkins奇技淫巧 — 配置篇Jenkins奇技淫巧 — 安全篇Jenkins奇技淫巧 — 发送邮件篇Jenkins奇技淫巧 — 全局变量篇Jenkins奇技淫巧 — 新建任务篇Jenkins奇技淫巧 — 插件篇Jenkins奇技淫巧 — 问题篇Jenkins奇技淫巧 — 命令篇Jenkins奇技淫巧 — 环境配置篇(Android自动化构建)Jen...

weixin_31577315的博客 349

Linux环境基于Jenkins搭建Android自动化构建平台(二)

文章目录Linux环境基于Jenkins搭建Android自动化构建平台(二)前言配置Jenkins构建参数编写shell脚本编写初始化脚本编写执行脚本构建扩展[JSP实现遍历指定路径下文件](https://download.csdn.net/download/zcmain/12009662) Linux环境基于Jenkins搭建Android自动化构建平台(二) 上篇主要介绍Jenkins搭建...

zcmain的专栏 708

如何快速自动化打出多个渠道包。(本篇转载)

转载原文地址 http://blog.csdn.net/myliuyx/article/details/52171145   传统打包方法原理 传统的打包方法都是在AndroidManifest添加渠道标示,每打一次包修改一次标示的名称。效率特别的低,一个稍微大一点的项目打上几十个渠道包可能需要几个小时半天的时间。 美团打包方法原理 由于传统的打

u014470404的博客 927

2024年Android最新百度T6团队实力打造!Gradle-与-Android-构建入门-系统教程,2024年最新2024Android最新大厂面试真题总结

希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer!如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。

2301_79985012的博客 1124

按键精灵怎么打地鼠_怎么在美团种水果(媷羊毛)

第一次写文章,今天就写一下我自己之前在美团种水果,勉强算作是媷羊毛吧。第一步,打开美团App,在首页会看到免费领水果的标志,点入其中。第二部,进入果园,选择你需要的水果,然后种下小树苗。(这是我领了水果后再种下的,哈哈哈)第三步,浇水在上面截图中,右下角有一个小水壶,点击之后,自动浇水,你的树就会慢慢成长起来。注意果树是有几个周期的,简单来说就是进化,前面几个周期需要的时间不用很长,最后的周期时间...

weixin_39720510的博客 1555

美团外卖上抢券 Python来实现

通过以上步骤,我们成功编写了一个简单的 Python 脚本来实现美团外卖的抢券功能。虽然这个示例代码可能需要根据实际情况进行调整,但它为我们提供了一个良好的起点。希望这个教程能够帮助你更好地理解如何使用 Python 进行自动化操作,并为你的生活带来便利。如果你对这个项目有任何疑问,或者希望了解更多关于 Python 自动化的内容,请在评论区留言,我会尽快回复你!

孤客科技 3800

美团抢单脚本辅助工具,众包全自动抢单辅助器,OCR智能检测【仅供学习参考】

基于AutoJS的美团众包抢单辅助工具实现方案,包含OCR识别、自动抢单和防检测功能:包含三个核心模块:主程序负责调度抢单流程,OCR模块增强订单识别准确率,防检测模块模拟人类操作特征。使用时需开启无障碍服务和悬浮窗权限。下载地址:https://www.pan38.com/share.php?code=yULhG 提取码:2233。声明:仅供学习参考使用!

2503_90251840的博客 4365
上一篇: Git config 配置及SSH key生成
下一篇: gradle 压缩资源配置
BlueZhang521
博客等级 码龄11年 34粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值