管理中心
我的
工具开发工具DevEco Studio(Windows/macOS版)构建应用定制构建灵活定制编译选项实践说明

实践说明

应用正式对外发布版本前,需要对应用进行代码调试。调试和正式发布版本,两者编译行为可能不同。此时,可以利用buildMode能力,来定制两个版本的编译差异性。

假设其中构建产物均为default,但编译行为不同:release模式下使能混淆,debug模式下使能调试。

示例工程中包含一个模块entry,将entry模块交付到构建产物default中,模块定制两种不同的编译模式debug、release,将两种构建模式均绑定到构建产物default中。工程示例图如下(模块):

工程级build-profile.json5示例

收起
自动换行
深色代码主题
复制
  1. {
  2. "app": {
  3. "signingConfigs": [],
  4. "products": [
  5. {
  6. "name": "default",
  7. "signingConfig": "default",
  8. "compatibleSdkVersion": "26.0.0",
  9. "runtimeOS": "HarmonyOS",
  10. "buildOption": {
  11. "strictMode": {
  12. "caseSensitiveCheck": true,
  13. "useNormalizedOHMUrl": true
  14. }
  15. }
  16. }
  17. ],
  18. "buildModeSet": [
  19. {
  20. "name": "debug"
  21. },
  22. {
  23. "name": "release"
  24. }
  25. ]
  26. },
  27. "modules": [
  28. {
  29. "name": "entry",
  30. "srcPath": "./entry",
  31. "targets": [
  32. {
  33. "name": "default",
  34. "applyToProducts": [
  35. "default"
  36. ]
  37. }
  38. ]
  39. }
  40. ]
  41. }

模块级build-profile.json5示例

entry模块

收起
自动换行
深色代码主题
复制
  1. {
  2. "apiType": "stageMode",
  3. "buildOption": {
  4. },
  5. "buildOptionSet": [
  6. {
  7. "name": "release",
  8. "arkOptions": {
  9. "obfuscation": {
  10. "ruleOptions": {
  11. "enable": true,
  12. "files": [
  13. "./obfuscation-rules.txt"
  14. ]
  15. }
  16. }
  17. }
  18. },
  19. {
  20. "name": "debug",
  21. "debuggable": true,
  22. "arkOptions": {
  23. "obfuscation": {
  24. "ruleOptions": {
  25. "enable": false
  26. }
  27. }
  28. }
  29. }
  30. ],
  31. "buildModeBinder": [
  32. {
  33. "buildModeName": "release",
  34. "mappings": [
  35. {
  36. "buildOptionName": "release",
  37. "targetName": "default"
  38. }
  39. ]
  40. },
  41. {
  42. "buildModeName": "debug",
  43. "mappings": [
  44. {
  45. "buildOptionName": "debug",
  46. "targetName": "default"
  47. }
  48. ]
  49. }
  50. ],
  51. "targets": [
  52. {
  53. "name": "default",
  54. },
  55. {
  56. "name": "ohosTest",
  57. }
  58. ]
  59. }

指定构建模式

命令行

示例1:构建APP时,构建产物为default,指定构建模式为debug,可执行如下命令:

收起
自动换行
深色代码主题
复制
  1. hvigorw --mode project -p product=default -p buildMode=debug assembleApp

编译产物示例如下:

示例2:构建APP时,构建产物为default,指定构建模式为release,可执行如下命令:

收起
自动换行
深色代码主题
复制
  1. hvigorw --mode project -p product=default -p buildMode=release assembleApp

编译产物示例如下:

DevEco Studio界面

在DevEco Studio界面进行可视化配置,Product选择default,Build Mode选择debug后,点击Build -> Build Hap(s)/APP(s) -> Build APP(s) ,打包出产物为default、构建模式为debug的APP包。