批量打渠道包

最近要进行打包全自动化,把打渠道包的功能也给运营来做,所以要把打渠道包的事情转移到服务器上,

默认 本机支持如下命令:java,7z,zipalign
*.keystore 和 SignApk.jar 在 ANDROID_HOME\tools\ 文件夹下
参数1:工作目录,参数2:源apk路径
useage: ./channelbuild.sh D:\\ C:\\Users\\13051041\\Desktop\\sign\\test.apk
注意你需要设置下keystore的位置和渠道号

#!/bin/sh
#Author:wuchenjie(13051041),DATE:2016/10/14
# 默认 本机支持如下命令:java,7z,zipalign
# *.keystore 和 SignApk.jar 在 ANDROID_HOME\tools\ 文件夹下
# 参数1:工作目录,参数2:源apk路径
# useage: ./channelbuild.sh  D:\\ C:\\Users\\13051041\\Desktop\\sign\\test.apk
# 注意你需要设置下keystore的位置和渠道号

#keysrote 的位置
export suningKeystorePath=$ANDROID_HOME/tools/*.keystore
#渠道号:
declare -A channels=(["360"]="360" ["baidu"]="baidu" ["androidSC"]="androidSC" ["测试中文"]="测试中文")

export key=*
export storepass=*
export keypass=*export unsignedapk=*
export signedapk=*
export releaseapk=release.apk
export workfiledir=$1
export originApkPath=$2

export SignApkPath=$ANDROID_HOME/tools/SignApk.jar

echo $workfiledir
echo $originApkPath

function readyTempApk(){
	rm -rf $workfiledir/tmp;
	rm -rf $workfiledir/out;

	mkdir $workfiledir/tmp;
	mkdir -p $workfiledir/tmp/assets;

	cp $originApkPath $workfiledir/tmp/suning_tmp.apk;
	echo $originApkPath
	echo $workfiledir/tmp/suning_tmp.apk
	7z d $workfiledir/tmp/suning_tmp.apk META-INF;
}

function buildingApk(){
	echo "***********************building  start*******************************"

	cp $workfiledir/tmp/config_channel.txt $workfiledir/tmp/assets/config_channel.txt;
	cp $workfiledir/tmp/suning_tmp.apk $workfiledir/tmp/$unsignedapk;

	cd $workfiledir/tmp
	pwd
	7z a $workfiledir/tmp/$unsignedapk assets/config_channel.txt;
	cd $workfiledir	

	java -jar $SignApkPath $suningKeystorePath $storepass suning $keypass $workfiledir/tmp/$unsignedapk $workfiledir/tmp/$signedapk

	zipalign -v 4 $workfiledir/tmp/$signedapk $workfiledir/tmp/$releaseapk;
	rm $workfiledir/tmp/$unsignedapk;
	rm $workfiledir/tmp/$signedapk;

	echo "***********************building  end***********************************************"
}

function loopthoughChannel(){
	for key in ${!channels[@]}
	do
		rm -rf $workfiledir/tmp/config_channel.txt;
		echo  \{\"CHANNEL_ID\":\"$key\",\"CHANNEL_NAME\":\"${channels[$key]}\"\}  >> $workfiledir/tmp/config_channel.txt;
		buildingApk;
		mkdir -p $workfiledir/out/${channels[$key]}
		echo $workfiledir/out/${channels[$key]}/${channels[$key]}"-suning-release.apk"
		mv $workfiledir/tmp/$releaseapk  $workfiledir/out/${channels[$key]}/${channels[$key]}"-suning-release.apk"

	done
}

readyTempApk;
loopthoughChannel;

  注意,有编码格式的问题,我上传个附件是linux环境下的:http://files.cnblogs.com/files/chenjie0949/channelbuild.sh

时间: 2024-08-08 03:55:23

批量打渠道包的相关文章

Unity3D脚本批量打包渠道包

最近在研究Unity3D脚本批量打包,比如在Android平台下各种不同分辨率和不同内存大小的机器,可能还有不同的渠道包,不同渠道可能用的SDK都不一样,这一切的一切都表明你的代码无法做到自适应的,除非批量打包提供各个平台的预定义标签#define . Unity默认提供了一些预定义标签如: UNITY_EDITOR  : 编辑器模式下. UNITY_STANDALONE:PC Mac Linux模型下. UNITY_IPHONE:IOS模式下. UNITY_ANDROID:ANDROID模式下

iOS使用脚本批量打渠道包

最近我们接到了新的需求,需要打出类似xx001-xx100共100个这样的ipa渠道包,不需要签名.(这批ipa包后续会用企业证书签名,不会影响AppStore的) 这些包所有的功能.内容都是一样的,区别在于不同的包在统计.连接我们服务器时会提供一个不同的字符串标示. 如果按照常规的打包方式,我们需要不断的修改工程中的值,然后一个个打包……这种毫无技术含量的活怎么能忍受! 简单思考之后可以想到,我们可以通过使用shell脚本来实现批量打包,渠道信息可以保存在应用的info.plist里面. 批量

Android批量生成渠道包

1.在www.apache.org上下载ant并在自己计算机上配置Ant的运行环境(我的资源中共享了从Apache下载的ant包,大家也可以自己去官网下载) 2.检测是否安装成功 开始-->运行--cmd--输入ant回车,如果出现以下提示,则表示Ant环境设置已经配置好 3.为了能让ant能批量生成android的apk文件,需要将ant-contrib-1.0b3.jar(我的资源中有此文件可下载)文件放到ant的lib目录中去 4.在Eclipse中指定Ant目录(不要用Eclipse自带

Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包

上篇介绍了怎么使用ant自动编译打包现有的android项目,这篇将继续介绍如果如何在ant打包应用的时候加入签名信息以及自动打包渠道包. 1. 加入签名信息: 在项目的根目录下建一个ant.properties文件,输入如下内容,其中keystore密码和alias密码可以不指定(防泄漏),那么在命令执行的过程中会要求你输入. [html] view plaincopy #keystore的路径,必须使用正斜杠 key.store=E:/wp_android_sample/me.key #ke

Android应用发布的准备——生成渠道包

我们需要使用一个变量标明该app的渠道,通常我们可以在manifest中的application节点下声明,如下. <meta-data android:name="CHANNEL_NAME" android:value="CHANNEL_VALUE" /> 然后将CHANNEL_VALUE的值替换成对应的渠道名.我们可以使用gradle的flavor替我们完成 productFlavors { wandoujia {} qihu360 {} baidu

美团Android自动化之旅—适配渠道包

概述 前一篇文章(美团Android自动化之旅-生成渠道包)介绍了Android中几种生成渠道包的方式,基本解决了打包慢的问题. 但是,随着渠道越来越多,不同渠道对应用的要求也不尽相同.例如,有的渠道要求美团客户端的应用名为美团,有的渠道要求应用名为美团团购.又比如,有些渠道要求应用不能使用第三方统计工具(如flurry).总之,每次打包都需要对这些渠道进行适配. 之前的做法是为每个需要适配的渠道创建一个Git分支,发版时再切换到相应的分支,并合并主分支的代码.适配的渠道比较少的话这种方式还可以

教你快速高效接入SDK——打包工具的实现(反编译资源动态整合打渠道包)

整套u8sdk的核心思想,就是让我们的SDK接入成本,能够控制在1,而不是N.啥意思呢?就是,我开发第一款游戏的时候,我接了这些SDK,当我开发第二款,第三款游戏的时候,这套SDK可以尽可能的复用,而不是每开发一款游戏,又从头去接各个渠道sdk.所有的游戏都能够使用同一套SDK接入框架,来快速完成SDK的接入工作.那么,在U8SDK里,我们怎么做到呢?请看我们总体的思路: 游戏A,游戏B,游戏C是三款不同的游戏,对于他们来说,他们只需要调用U8SDK抽象层提供的接口,就完成了所有SDK的接入工作

itms-services协议:跳转网页部署及PHP动态生成 iOS渠道包IPA一键安装之plist

相信很多人尝试过使用揣果测试库(http://ipa.chuaiguo.com/)的无线安装测试IPA安装包功能.有心人一定注意到其itms-services协议的一键安装地址的url=部分并不是我们常见的plist文件路径,而是一个install.php通过增加参数的形式自动生成输出了plist.之前因为笔者的项目中渠道包不多,所以懒得去写这样一个文件帮助部署,可是最近,笔者的项目的渠道包不断增多了,显然部署多个plist文件管理上似乎越来越麻烦了,于是笔者开始仿照揣果实现了并结合自己项目的需

使用python判断Android自动化的渠道包是否全部打完

Android客户端测试上线总会有很多的渠道包,渠道的打包可是使用自动化,但是每次打完都是好几十个或者几百个apk,很南确定是不是所有的渠道都已经打完,所以就有了下面的一段代码,主要就是为了检查是否将所有的渠道包打包完毕: # coding=utf-8 import os import xlrd #获取给定excel列表中的所有渠道号 def add_Qudao_Name(): data=xlrd.open_workbook(excel_path) table=data.sheets()[0]