HarmonyOS 鸿蒙Next 区分debug和release模式
【HarmonyOS 鸿蒙Next API 11 学习】在代码区分debug和release模式,可以使用getBundleInfoForSelfSync( GET_BUNDLE_INFO_WITH_APPLICATION ) 中的appInfo.debug实现
【需求】
在代码区分debug和release模式
【方案】
可以使用getBundleInfoForSelfSync( GET_BUNDLE_INFO_WITH_APPLICATION ) 中的appInfo.debug实现
下图中,选择debug 再运行项目 appInfo.debug就是true,选择release就是false
【代码示例】
import { bundleManager } from ‘@kit.AbilityKit’;
@Entry
@Component
struct Page155 {
build() {
Column() {
Button(‘获取应用信息’).onClick(() => {
// let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
let data = bundleManager.getBundleInfoForSelfSync(bundleFlags);
console.info(‘data’, JSON.stringify(data,null,’–’))
console.info(‘data.appInfo.appProvisionType’, data.appInfo.appProvisionType)
console.info(‘data.appInfo.debug’, data.appInfo.debug)
})
}
.width(‘100%’)
.height(‘100%’)
}
}
补充:
如果有多个测试环境,也可以创建多个
可以在 build-profile.json5 中配置
像这样
添加后记得点 Sync Now
补充:build-->bulid hap(s)/APP(s) 时,注意右侧目录模块选择旁边原点所选择的默认值
测试步骤
【1】删除每次项目运行的build包
build/default/outputs/default/entry-default-signed.hap
build/default/outputs/default/entry-default-unsigned.hap
【2】添加pro2属性
build-profile.json5
【3】设置右上角项目模块目标为pro2
【4】build-->bulid hap(s)/APP(s)
【5】观察生成的build目录下的已签名文件
build/default/outputs/default/entry-default-signed.hap
【6】下载安装DevEco Testing,点击开始投屏,安装应用
【7】安装成功后,点击项目,查看运行结果
import BuildProfile from 'BuildProfile'
@Entry
@Component
struct Page010 {
aboutToAppear(): void {
console.info(BuildProfile.BUILD_MODE_NAME:${BuildProfile.BUILD_MODE_NAME}
)
}
build() {
RelativeContainer() {
}
.height(‘100%’)
.width(‘100%’)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
打印
BuildProfile.BUILD_MODE_NAME:pro2
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
import BuildProfile from 'BuildProfile'
@Entry
@Component
struct Page010 {
aboutToAppear(): void {
console.info(BuildProfile.BUILD_MODE_NAME:${BuildProfile.BUILD_MODE_NAME}
)
}
build() {
RelativeContainer() {
}
.height(‘100%’)
.width(‘100%’)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
请问:这部分代码具体放在哪个地方? 主项目还是DevEco Testing中呢?
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
放到DevEco Studio主项目里,
谢谢!明白了,前面的和这部分代码获取的内容不一样。还有个疑问,为啥要用DevEco Testing,模拟器不是可以直接测试吗^_^?
HarmonyOS的分布式文件系统让我在多设备间共享文件变得更加方便。
主要是考虑给非开发人员,比如测试人员测试的方法。方便截图、自动化测试等。
在HarmonyOS鸿蒙系统中,为了区分debug和release模式,你可以利用getBundleInfoForSelfSync(GET_BUNDLE_INFO_WITH_APPLICATION)
方法返回的ApplicationInfo
对象中的debug
字段。这个字段是一个布尔值,用于指示当前应用是否处于debug模式。
具体实现步骤如下:
- 调用
getBundleInfoForSelfSync(GET_BUNDLE_INFO_WITH_APPLICATION)
方法获取当前应用的BundleInfo
对象。 - 从返回的
BundleInfo
对象中获取ApplicationInfo
对象。 - 检查
ApplicationInfo
对象中的debug
字段。
示例代码如下:
BundleInfo bundleInfo = getBundleManager().getBundleInfoForSelfSync(GET_BUNDLE_INFO_WITH_APPLICATION);
if (bundleInfo != null && bundleInfo.getAppInfo() != null) {
boolean isDebugMode = bundleInfo.getAppInfo().debug;
if (isDebugMode) {
// 当前是debug模式
} else {
// 当前是release模式
}
}
这段代码会检查当前应用是否处于debug模式,并据此执行不同的逻辑。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html