文章目录
-
- 一、前言
- [二、HarmonyOS NEXT 开发框架](#二、HarmonyOS NEXT 开发框架)
- [三、HarmonyOS NEXT开发指导](#三、HarmonyOS NEXT开发指导)
-
- [3.1 Windows环境准备](#3.1 Windows环境准备)
- 四、项目拆解
-
- [4.1 工程目录](#4.1 工程目录)
- [4.2 全局配置](#4.2 全局配置)
-
- [4.2.1 APP全局配置: AppScope层(AppScope/app.json5)](#4.2.1 APP全局配置: AppScope层(AppScope/app.json5))
- [4.2.3 签名全局配置](#4.2.3 签名全局配置)
- [4.3 APP代码初始化](#4.3 APP代码初始化)
- [4.4 APP签名文件配置](#4.4 APP签名文件配置)
- [4.5 证书申请](#4.5 证书申请)
-
- [4.5.2.1 创建.p12文件](#4.5.2.1 创建.p12文件)
- [4.5.2.2 申请证书及Profile](#4.5.2.2 申请证书及Profile)
- [4.5.2.3 注册调试设备](#4.5.2.3 注册调试设备)
- [4.5.2.4 申请调试Profile](#4.5.2.4 申请调试Profile)
- 4.5.2.5申请发布证书及Profile
- [4.5.3 证书签名使用](#4.5.3 证书签名使用)
- 五、参考资料
一、前言
2024年10月22日19:00,华为在深圳举办"原生鸿蒙之夜暨华为全场景新品发布会",主题为"星河璀璨,共见鸿蒙"。本次活动上,华为正式发布"纯血鸿蒙 "系统HarmonyOS 5.0(即HarmonyOS NEXT),据华为常务董事、终端BG董事长余承东透露,该系统是鸿蒙来诞生以来的最大一次升级。
值得注意的是,HarmonyOS 5.0是我国首个国产移动操作系统,也是继苹果iOS和安卓系统后,全球第三大移动操作系统。
华为鸿蒙操作系统最早于2019年发布,2021年正式搭载到智能手机上。随着系统的不断升级和更新,2023年9月,华为宣布全面启动鸿蒙原生应用,即完全使用自主"内核",在开发过程中不再依赖其他操作系统的开放源代码。
今年7月1日,中国信息通信研究院认证华为鸿蒙内核自主研发比率100%,自主成熟度A级。这意味着,华为鸿蒙操作系统正式成为完全"国产"的基础软件,因此有了"纯血鸿蒙"的称号。
10月8日,HarmonyOS NEXT正式开启公测,首批公测机型包括HUAWEI Mate X5系列、HUAWEI MatePad Pro 13.2英寸系列、HUAWEI Mate 60系列。此外,微博、WPS、钉钉等众多应用也同步开启了鸿蒙版公测。
10月22日,华为宣布,纯血鸿蒙将开启华为Pura 70系列,华为Pocket 2系列和华为MatePad Pro 11英寸 2024款三款设备公测。华为Mate XT非凡大师、nova flip、nova13系列等更多设备将陆续在2025年加入公测。
二、HarmonyOS NEXT 开发框架
HarmonyOS NEXT 开发框架如下:
其中,
DevEco Studio 是基于 IntelliJ IDEA Community 开源版本打造,所以默认的快捷键其实继承于 IntelliJ IDEA 。 作者:黑马pink讲前端 https://www.bilibili.com/read/cv28430733/ 出处:bilibili
三、HarmonyOS NEXT开发指导
鸿蒙应用开发技术栈:
- 开发语言:
ArkTS
(封装TS) - UI框架:
ArkUI
3.1 Windows环境准备
- 下载并安装官网提供的Deveco Studio IDE
注⚠️:因IDE占用空间较大,安装过程中应选择剩余磁盘空间大的物理盘符进行安装。
- 私服配置
2.1 打开Deveco Studio--->打开设置,搜索ohpm:
2.2 点击 "Optimize config":
2.3 选中ohpm registry,请将产品所依赖的私服输入到ohpm registry中,对于产品依赖多个私服,每个私服使用","隔开:
2.4 点击"ok"即可,可通过查看.ohpmrc文件是否配置成功,如下所示:
四、项目拆解
4.1 工程目录
鸿蒙项目模板工程目录结构如下:
4.2 全局配置
4.2.1 APP全局配置: AppScope层(AppScope/app.json5)
AppScope层用于配置全局信息。 app的图标需放于该层的resources中,该层的资源只放置图标信息。
其他相关配置如下:
typescript
{
"app": {
"bundleName": "com.boc.panda.demo", //Bundle名称
"vendor": "example", //应用包供应商
"versionCode": 1000000, //应用版本号
"versionName": "1.0.0", //应用版本文本描述信息
"icon": "$media:app_icon", //应用图标
"label": "$string:app_name" //应用名称
}
}
4.2.3 签名全局配置
全局build-profile.json5
文件中包含签名,product
,modules
等配置。
开发者需在此配置生产签名和测试签名。
products
标签也需根据不同产物进行配置。此处注意,若开发者引入了集成态hsp包,由于它使用了标准化的OHMUrl
格式,设置配置项useNormalizedOHMUrl
为true
。
4.3 APP代码初始化
在app/src/main/ets/entryability/EntryAbility
进行框架模块初始化。
typescript
async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {
await StorageServiceManager.register(this.context)//切换环境模块使用存储模块,该模块需注册,若不需要则可删除
const productName = PRODUCT_NAME as string
const debug = productName !== "product"
//初始化框架
BundlePlatform.init(
new BundleConfig(this.context)
.setDefaultScheme("ACMWE")
.setDebug(debug) //true表示开发调试模式,否则为生产发布模式。Debug模式下错误将以异常形式抛出,以强烈的信号通知开发者,便于开发者发现问题,Release模式下将尽力规避异常,保障程序尽力运行,避免Crash
.setCanLog(debug) //true表示可以输出日志,否则不输出日志
)
this.initConfig()
//注册
ContextServiceManager.register(this.context)
}
async initConfig() {
try {
// 启动Bundle
await BundlePlatform.startBundle('bundle_config.json')
bundleInit = true
} catch (e) {
console.log('App', '出错了')
}
4.4 APP签名文件配置
应用签名文件建议统一管理在signature
文件中。
鸿蒙应用签名证书需通过华为AppGallery Connect申请、管理,包括调试证书、发布证书,通过企业信息注册生成企业开发者证书、发布证书。
HarmonyOS应用/服务通过数字证书(.cer
文件)和Profile文件(.p7b
文件)来保证应用/服务的完整性。
在申请数字证书和Profile文件前,首先要通过Deveco Studio来生成密钥(存储在格式为.p12
的密钥库文件中)和证书请求文件(.csr
文件)。
基本概念
- .p12文件:密钥,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,用于数字签名和验证。
- .csr文件:证书请求文件,包含密钥中的公钥和公共名称、组织名称等,用于向AppGallery Connect申请数字证书。
- .cer文件:数字证书,由华为AppGallery Connect颁发。
- p7b文件:Profile文件,包含HarmonyOS的包名、数字证书信息、申请的证书权限列表,以及调试的设备信息等,每个应用中必须包含一个Profile文件。
注⚠️:以上文件请妥善保管,否则可能影响应用后期正常上架、更新!
4.5 证书申请
密钥和证书请求文件通过Deveco Studio生成。
4.5.2.1 创建.p12文件
主菜单Build>Generate Key and CSR
;
在Key Store File中,点击Choose Existing选择已有的密钥库文件(存储有密钥库的.p12文件),如果没有密钥库文件,单击New进行创建,在Create Key Store窗口中,填写密钥库信息后,单击OK:
- Key store file: 设置密钥库文件存储路径,并填写p12文件名。
- Password:设置密钥库密码,长度至少8位,必须由大小写字母、数字和特殊符号中的两种以上组合。请记住密码,后续配置签名配置需要使用。
- Confirm password: 再次输入密钥库密码。
Generate Key and CSR填写信息;
- Alias: 密钥的别名信息,用于标识密钥名称。请妥善保管别名,后续签名配置需要使用。
- Password: 密钥对应的密码,与密钥库密码一致。
设置CSR文件存储路径和CSR文件名;
点击Finish,创建CSR文件成功,可以在存储路径下获取密钥库.p12文件、证书请求文件.csr和material文件。
4.5.2.2 申请证书及Profile
对于无华为帐号的开发者,需要在AppGallery Connect注册华为帐号,且进行实名认证;企业用户建议申请企业级别帐号。官网链接
创建项目
项目是资源、应用的组织实体,通常开发者需要将一个应用的不同平台(Android、快应用、鸿蒙应用等)放置在一个项目中。
- 登录AppGallery Connect后,点击"我的项目",进行添加项目;
- 按照要求进行每一步,最终点击完成即可。
创建应用
"我的应用"中的应用都可以包含在我的项目中。"我的应用"中的服务和应用只能是华为应用市场上发布的应用。因此,只包括Android应用、快应用、鸿蒙应用等。
- 登录AppGallery Connect,选择"证书、APP ID和Profile";
- 点击"APP ID",进入"APP ID" 页面,进行新建;
- 进入"设置应用开发基础信息"页面,填写应用的基础信息,完成后点击"下一步"。
- 在"开放能力接入"页面,为应用选择所属的项目,完成后点击"确认",应用即成功创建。 如需将应用添加到已有项目,点击下拉框进行选择 如需将应用添加到新项目,直接在框中填写新项目名称。
申请调试证书及Profile
申请调试证书
外网环境且只需要一台设备调试,建议使用DevEco Studio提供的自动签名,此时无需调试证书,如果需要多台设备或者内网环境调试,则需要手动签名,此时需要申请及下载调试证书。
1 . 登录AppGallery Connect,选择"证书 APP ID和Profile"
-
选择"证书、APP ID和Profile",进入证书页面,点击新增证书;
-
在弹出的"新增证书"窗口填写要申请的证书信息,其中证书请求文件即是通过Deveco Studio生成的证书请求文件,信息填写完毕后点击"提交";
-
证书申请成功后,"证书管理"页面展示证书名称等信息,点击"下载",将生成的证书保存本地,供后续调试签名使用;
4.5.2.3 注册调试设备
内网环境或者多款鸿蒙手机需要进行调试应用时,需要注册调试设备的udid,udid具体获取方式:hdc shell bm get --udid
- 登录AppGallery Connect,选择"证书 APP ID和Profile"。
- 导航栏选择"证书、APP ID和Profile > 设备 ", 进入设备页面。添加需要调试设备的udid 即可。
- 设备添加成功后,可在"设备管理"页面查看设备信息。
- 如果需删除设备,勾选一个或者多个设备,点击"批量删除设备",在弹出窗口点击"确认"即可。
4.5.2.4 申请调试Profile
- 登录AppGallery Connect,选择"证书 APP ID和Profile"。
- 导航栏选择"证书、APP ID和Profile > Profile ", 进入Profile页面,点击右上角添加。
- 在"添加Profile"页面,填写Profile信息,完成后点击添加。
- 调试Profile申请成功后,"管理HAP Provision Profile"页面展示Profile信息,点击"下载",将生成Profile保存本地,供后续签名使用。
4.5.2.5申请发布证书及Profile
发布证书签名文件申请同调试证书签名文件申请方式基本相同,主要区别:
- 选择证书类型时需要选择的是发布即可。
- 不需要添加调试设备udid,发布证书默认支持所有harmonyos机型。
详细可参考华为官网
4.5.3 证书签名使用
配置证书签名信息
1、在DevEco Studio中配置密钥(.p12)文件、申请的调试证书(.cer)和调试Profile(.p7b)文件。 开发者在工程级别目录新建signature文件目录来存储相关签名证书。
2、主菜单File > Project Structure > Project > Signing Configs窗口中,取消勾选"Automatically generate signature", 然后配置工程信息。
3、 点击"ok"即可完成了应用的调试签名配置。
- Store File : 选择密钥库文件,文件后缀
.p12
- Store Password: 输入密钥库密码
- Key Alias: 输入密钥库别名信息
- Key Password: 输入密钥的密码
- Sign Alg: 签名算法,默认为SHA256withECDSA
- Profile File : 选择申请的Profile文件,后缀
.p7b
- Certpath File : 选择申请的数字签名证书文件,后缀
.cer