apk多渠道自动打包

废话不多说,上干货:

插件,,下载后解压缩OrchidShell.rar

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

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

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>: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>的名称。例如:

<applicationandroid: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文件自动打包生成出来以后的存放路径。注意插件会在这个路径下创建以你的工程名为名称的文件夹。

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

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

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

青春一经典当即永不再赎

apk多渠道自动打包

相关文章:

你感兴趣的文章:

标签云: