同一个应用有时需要打包生成不同包名的版本,而包名和密钥以及资源文件需要一样对应,这就需要多个密钥和多个资源文件。
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-2025 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 
浙公网安备33010602001649号