同一个应用有时需要打包生成不同包名的版本,而包名和密钥以及资源文件需要一样对应,这就需要多个密钥和多个资源文件。
TuSDK 支持同一个应用对应多个 master key,比如现有应用包名为org.lasque.demo
,有dev
、release
两个渠道,分别对应的包名为org.lasque.dev
和org.lasque.release
,用户可以通过以下几个步骤轻松生成两个渠道的包。
首先需要在控制台新建两个应用,包名分别为org.lasque.dev
和org.lasque.release
,打包并下载这两个应用的资源文件。
打开项目下的 build.gradle 文件,添加 productFlavors 以指定渠道名称,如下:
productFlavors {
release {
applicationId "org.lasque.release"
}
dev {
applicationId "org.lasque.dev"
}
}
因为不同包名需要对应不同的资源文件,所以可以在 build.gradle 文件中分别为每一个包名指定资源文件的位置,如下:
sourceSets {
release {
assets.srcDirs = ['src/main/releaseAssets']
}
dev {
assets.srcDirs = ['src/main/devAssets']
}
}
然后在src/main
目录下面新建releaseAssets/TuSDK.bundle
和devAssets/TuSDK.bundle
两个文件夹,将刚才在控制台下载的资源文件分别放入对应的TuSDK.bundle
文件夹下。
在 Application 类的 onCreate() 方法中,根据 getPackageName() 方法的取值加载不同的密钥,如下:
@Override
public void onCreate()
{
super.onCreate();
// 设置资源类,当 Application id 与 Package Name 不相同时,必须手动调用该方法, 且在 init 之前执行。
// 这里 org.lasque.demo 指的是用户的 AndroidManifest.xml 文件中的 package属性所对应的值
TuSdk.setResourcePackageClazz(org.lasque.demo.R.class);
if (this.getPackageName().equals("org.lasque.release"))
{
this.initPreLoader(this.getApplicationContext(),
// 这里写上 "org.lasque.release" 包名所对应的密钥
"2d7bacb0ceaaffe5-00-ltfmn1");
}
else if (this.getPackageName().equals("org.lasque.dev"))
{
this.initPreLoader(this.getApplicationContext(),
// 这里写上 "org.lasque.dev" 包名所对应的密钥
"55388f0fe2a28b16-00-ltfmn1");
}
}
上面都配置好了之后,打开 Build Variants 窗口,点击对应 Module下的Build Variant属性,选择 Debug或者是 Release版本,选择好了之后运行项目即可安装所选择的渠道包Apk。
©2019-2024 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号