真机运行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,并下载。而后给程序签名,而后运行即可。