跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

FAQ-鸿蒙sdk如何动态设置appkey和channel?

使用preInit方法覆盖umconfig.json中的appkey和channel

  1. 示范代码根据构建参数设置不同的appkey

import BuildProfile from 'entry/BuildProfile';
setLogEnabled(true);
export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    // LogUtil.disable();
    // Logger.disable=true;
    let  buildMode = BuildProfile.BUILD_MODE_NAME;
    console.log('build mode is ', buildMode);
    let appKey = buildMode == "debug" ? 'debug的appkey' : '正式的appkey';
    let channel = buildMode == "debug" ? 'debug' : 'release';
    preInit({
      context: this.context.getApplicationContext(),
      plugins: [new InternalPlugin({}), new ApmPlugin({runInWorker:true,enableJSCatch:false})],
      appKey: appKey,
      channel: channel,
    });
    init();
  }
}
  1. 上述代码中 BuildProfile怎么来的可参考鸿蒙官方的开发文档,如何获取构建参数 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-get-build-profile-para-guide#section16792943572, 特别注意,BuildProfile的引入,尤其是在hap中,通过hap的package.json中的包名/BuildProfile来获取,实际hap中并不会出现一个BuildProfile文件,但是可以引入,har包中不同,har包中会在模块根目录生成BuildProfile文件,这是正常的。

  2. 如需根据其他构建参数设置不同的appkey,比如为不同的product设置不同的appkey,也是同理一下是其他的参数示意图,其中PRODUCT_NAME对应不同的product

  3. image.png