共计 3183 个字符,预计需要花费 8 分钟才能阅读完成。
真机运行 HarmonyOS 鸿蒙应用程序以及那些坑儿
作者:韩茹
公司:程序咖(北京)科技有限公司
程序咖:IT 职业技能评测平台
网址:https://www.chengxuka.com
昨晚 6 月 2 号看 HarmonyOS 的发布会,激情磅礴,蠢蠢欲动。我有一个华为手机,6 月 3 号,上午备份数据,中午降级 HarmonyOS 零碎,下午就开始鼓捣真机跑程序了,也遇到了很多坑,记录下来。明天 4 号,我把这些整顿成文档,和大家共享。
一、前提
如果想在真机上运行一个 HarmonyOS 的利用,首先你要先搭建好 HarmonyOS 的开发环境,之前的文章有过。
- 搭建好 HarmonyOS 的开发环境
- DevEco Studio 开发工具上,创立好一个 HarmonyOS 的利用
二、生成密钥和证书申请文件
2.1 生成密钥
1、首先,在 DevEco Studio 开发工具上,抉择 Build–>Generate Key and CSR。
2、咱们先来生成 Key,就是密钥文件。这里要留神密钥文件的后缀必须是.p12,抉择好存储地位即可。
2.2 生成证书申请文件
1、接下面,持续填入信息。
2、而后生成证书申请文件,也就是 CSR 文件。这里要留神密钥文件的后缀必须是.csr,抉择好存储地位即可。
3、而后,咱们就会在刚刚所指定的目录下,生成了两个文件。一个是密钥文件 demo1.p12,以及证书申请文件 demo1.csr。
三、申请证书和 Profile
咱们须要关上 AppGallery Connect 网站,这里须要登陆。
3.1 申请利用调试证书
登陆后,抉择用户与拜访。
在左侧导航栏抉择“证书治理”,进入证书治理页面,点击“新增证书”。
在弹出的“新增证书”窗口,填写要申请的证书信息,点击“提交”。
而后在证书治理页面,咱们就能够看到刚刚增加好的调试证书了。还展现了证书名称、证书类型和生效日期。咱们得下载这个证书,到本地。
- 点击“下载”,可下载证书。
- 点击“破除”,在确认框中点击“确认”,可破除证书。
3.2 注册调试设施
还是刚刚到页面,咱们点击设备治理。进入设施治理页面,点击右上角的“增加设施”。
在弹出窗口填写设施信息,点击“提交”。
设施增加胜利后,展现在设施治理页面。如您需删除调试设施,点击“操作”列的“删除”即可。
踩个大坑儿
我之前为了获取我那部华为 Mate30 手机的 UDID。刚刚降级了 HarmonyOS 2.0 零碎,依据官网文档给的命令,就是获取不到,用 Mac 零碎连贯,用 Windows 零碎,来来回回各种折腾,起初还是分割了华为的一个工程师,才取到了 UDID。
这里我以 Mac 为例,Windows 零碎也是一样的。
UDID:设施惟一标识符,是由字母和数字组成的 64 位字符串。可在对应的调试设施上获取其 UDID, 调试设施要求运行 HarmonyOS 零碎 。
原理就是依据 toolchains 中的 hdc 命令来获取设施的 UDID。
首先要晓得你的 SDK 装置在哪里了,不晓得的话,能够关上 DevEco Studio,关上设置页面里的 HarmonyOS SDK,这个咱们之前配置环境变量的时候用过。
其实次要是用到这里 toolchains 下的 hdc 命令。
所以咱们须要配置环境变量。
1、关上 Mac 下的终端,输出以下命令,关上 bash_profile 文件。
sudo vim ~/.bash_profile
2、输出 i 进入 vim 编辑模式:
3、而后咱们输出上面数据:
export PATH=/Users/hanru/Library/Huawei/Sdk/toolchains:$PATH
4、而后按 esc 键退出编辑模式。并输出 :wq 而后回车,保留并退出编辑。可输出 vim .bash_profile 查看是否保留胜利。
5、输出 source ~/.bash_profile,让刚刚的配置失效。
6、而后输出 hdc help,发现 hdc 命令能够应用了。
到此咱们配置完了,而后将你的华为手机连入电脑。在弹出的窗口中抉择传输文件。
踩坑儿:
这里肯定要容许 USB 调试。否则一会儿命令会读不到设施。error: no devices/emulators found
而后咱们在终端先输出:
hdc shell
再输出:
bm get --udid
就能够看到这台手机的 UDID 了。
3.3 获取 Profile
1、咱们首先要创立一个我的项目。
而后抉择我的我的项目:
增加我的项目:
填写项目名称:
2、该我的项目下创立一个利用。
填入利用信息:
- 抉择平台:抉择 APP(HarmonyOS 利用)。
- 反对设施:抉择调试的设施类型。
- 利用包名: 必须与 config.json 文件中的“bundleName”取值保持一致。
- 利用名称、利用分类、默认语言请依据理论须要进行设置。
3、抉择“HarmonyOS 利用 > HAP Provision Profile 治理”,进入“治理 HAP Provision Profile”页面,点击右上角“增加”。
在弹出的“HarmonyAppProvision 信息”窗口增加调试 Profile,填入信息:
调试 Profile 申请胜利后,“治理 HAP Provision Profile”页面展现 Profile 名称、Profile 类型、增加的证书和生效日期。这里,咱们得下载下来。
- 点击“下载”,可下载 Profile 文件。
- 点击“删除”,在确认框中点击“确认”,可删除 Profile 文件。
- 点击“查看设施”,可查看 Profile 绑定的调试设施。
到此,咱们有了利用调试证书:RubyHanMate30.cer,和 Profile 文件:HelloWorldDebug.p7b。
四、签名
接下来,咱们要进行签名。关上 File 下的 Project Structure。
进行签名:
签完后,能够在 build.gradle 文件下能够查看签名信息:
五、运行
而后运行程序即可。
咱们就可能看到手机上多了一个 App。
点进去查看一下运行成果:
六、原理
HarmonyOS 利用通过数字证书(.cer 文件)和 HarmonyAppProvision 文件(.p7b 文件)来保障利用的完整性,须要通过 DevEco Studio 来生成密钥文件(.p12 文件)和证书申请文件(.csr 文件)。同时,也能够应用命令行工具的形式来生成密钥文件和证书申请文件。
基本概念
- 密钥 :蕴含非对称加密中应用的公钥和私钥,存储在密钥库文件中,格局为.p12。其中公钥用于内容的加密,私钥用于解密;在数字签名过程中,私钥用于数字签名,公钥用于解密。
- 证书申请文件 :格局为.csr,全称为 Cerificate Signing Request,蕴含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向 AppGallery Connect 申请数字证书。
- 数字证书 :格局为.cer,由华为 AppGallery Connect 颁发。
- HarmonyAppProvision 文件 :格局为.p7b,蕴含 HarmonyOS 利用的包名、数字证书信息、形容利用容许申请的证书权限列表,以及容许利用调试的设施列表(如果利用类型为 Release 类型,则设施列表为空)等内容,每个利用包中均必须蕴含一个 HarmonyAppProvision 文件。
所以,咱们用 DevEco Studio 学生成了密钥文件:DevEco Studio 生成
第二步,咱们生成了证书申请文件:DevEco Studio 生成
第三步,咱们获取了利用调试的数字证书:由华为 AppGallery Connect 颁发。
第四步,咱们获取了 Profile 文件 (HarmonyAppProvision 文件):从华为 AppGallery Connect 生成并下载获取。
第五步,到此筹备完结,而后去给程序签名,而后运行即可。
如果咱们想在手机上执行第二个应用程序,须要从新获取 Profile 文件。也就是说在 AppGallery Connect 网站上增加一个新的利用,增加新的 Profile,并下载。而后给程序签名,而后运行即可。