apk多渠道自动打包

时间:2021-10-05 09:28:19

废话不多说,上干货:


1. 下载兰贝壳儿Eclipse插件,下载后解压缩OrchidShell.rar

apk多渠道自动打包

2. 安装兰贝壳儿插件,建立Android工程

安装Eclipse插件,将OrchidShell文件夹拷贝到Eclipse的dropins文件夹下后,启动(重启)Eclipse

apk多渠道自动打包

在需要打包的Android工程上点击右键可看到菜单 “兰贝壳儿”,说明安装成功

apk多渠道自动打包

3. 使用配置文件、默认配置文件

兰贝壳儿使用xml作为插件配置文件,当需要打包的工程根目录中不存在配置文件,插件会新建一个默认的配置文件,文件名为bom.xml。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 北京兰贝科技有限公司版权所有 -->
<project>
	<dependencies>
		<dependency>
			<groupId>com.marsor.android.common</groupId>
			<artifactId>MarsorUtils</artifactId>
			<version>1.0.0-SNAPSHOT</version>
		</dependency>
	</dependencies>
	<repositories>
		<repository>
			<id>MarsorRepository</id>
			<name>Marsor Maven Mirror</name>
			<url>http://maven.marsorstudio.cn:8088/</url>
		</repository>
	</repositories>
	<package>
		<channels keyname="channelId">
			
			<channel value="baidu" />
			<channel value="wandoujia" />
			<channel value="91zhushou" />
			<channel value="googleplay" />
			<channel value="360zhushou" />
</channels><keystore path="E:\my\android.keystore" passwd="123456"><alias name="android.keystore" passwd="123456" /></keystore><outpath value="E:\Repos\output\" /></package></project>

4. 使用”打包发布”功能

点击兰贝壳儿菜单中的“打包发布”菜单,可以对工程按渠道分别打包,打包的过程中可以对apk文件进行自动签名。

注意打包发布前,需要修改配置文件中对应的项目:

<package>
		<channels keyname="channelId">
			<channel value="baidu" />
			<channel value="wandoujia" />
			<channel value="91zhushou" />
			<channel value="googleplay" />
			<channel value="360zhushou" />
		</channels>
		<keystore path="E:\my\android.keystore" passwd="123456">
			<alias name="android.keystore" passwd="123456" />
		</keystore>
		<outpath value="E:\Repos\output\" />
	</package>	

其中channels 的keyname=””是指在你的AndroidManifest.xml文件中配置的Application级的<Meta-data>的名称。例如:

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data android:name="channelId" android:value="10000" />

是对应于你要打包的每个渠道名称,也就是统计SDK中渠道的标识符。对于写在这里的每个渠道,插件会自动为其修改meta-data中的value值,并且打包为一个apk文件。然后为这个apk文件进行签名。

这里的keystore就是你对apk文件进行签名时使用的个人密钥。需要你将path修改为你的密钥库路径,passwd为密钥库的密码。

下面的alias是指每个密钥对应的别名,以及对应的密码。如果你有多个alias,可以在这里指定,插件会选取第一个可用的alias以及密码对应的密钥Key对你的apk文件进行签名。

<outpath value="F:\Repos\android\keystore\output\" />

这个路径就是你的apk文件自动打包生成出来以后的存放路径。注意插件会在这个路径下创建以你的工程名为名称的文件夹。

apk多渠道自动打包

代码中获取AndroidManifest.xml中生成的channelId的值:

ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),
            PackageManager.GET_META_DATA);
			String channelId=appInfo.metaData.getInt("channelId");
			Log.e(TAG, " msg == " + channelId );

大功告成,这就是神鸟凤凰,嘿嘿,还差个光圈