目录
1. 生成p12文件
2. 生成csr文件
3. 创建项目
4. 通过csr文件在线申请cer文件(调试证书文件)
5. 添加设备
6. 创建鸿蒙应用
7. 获得p7b文件
程序千万行
签名第一行
程序不签名
猿猿两行泪
在真机上运行App与在模拟器上运行App不同。在真机上不管是调试(debug)还是发布(release),都需要对hap文件进行签名。签名一个hap文件需要4类文件:p12、csr、cer和p7b文件。其中p12和csr文件可以自助生成,cer和p7b文件需要到华为开发者网站后台去申请,然后下载。
生成这4类文件,需要经过下面几步:
执行下面的命令,就会在当前目录生成一个名为demo.p12的文件。
keytool -genkeypair -alias "myalias" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=Huawei CBG,OU=HOS Development IDE Team,CN=ide_demo_pk Debug" -keystore demo.p12 -storetype pkcs12 -storepass 1234abcd
在执行上面的命令之前,需要将如下3个信息修改成自己的内容(其他的内容不需要改):
执行下面的命令会在当前目录生成一个名为demo.csr的文件。
keytool -certreq -alias "myalias" -keystore demo.p12 -file demo.csr
其中-alias命令行参数指定的别名要与生成demo.p12时指定的别名相同,demo.csr可以改成其它的文件名。
注意,在执行上面的命令之前,要先生成demo.p12文件。在生成demo.csr文件的过程中,会要求输入生成demo.p12文件时指定的密码,本例是1234abcd。一定要记住这个密码,因为在后面配置App签名时还要用到。
使用下面的Url打开页面,并点击“我的项目”按钮,进入创建项目页面,如图1所示。读者可以在该页面创建一个或多个项目,每一个项目可以包含0到多个安装包。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
图1 创建项目页面
点击左侧的“添加项目”链接,会弹出如图2所示的页面,输入项目名,点击“确定”按钮就可以创建新项目。
图2 创建新项目
通过下面的Url打开页面,并点击“用户与访问”按钮。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
进入该页面后,在左侧导航栏选择“证书管理”,进入证书管理页面,点击“新建证书”按钮弹出新建证书窗口,并按要求输入相应的内容,如图3所示。
图3 创建证书
创建完证书后,会在证书列表中看到刚才创建的证书,如图4所示。点击右侧的“下载”链接,下载对应的cer文件,本例是“我的证书.cer”文件。
图4 下载cer文件
通过下面的Url打开页面,并点击“用户与访问”按钮。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
进入该页面后,在左侧导航栏选择“设备管理”,进入设备管理页面。然后点击右侧的“添加设备”按钮,会弹出如图5所示的窗口。这里需要选择设备类型、输入设备名称和UDID,然后点“提交”按钮添加设备。只有在这里添加的设备才能使用起前面申请的证书安装HarmonyOS App。
图5 添加设备
要想获得设备的UDID,需要用USB数据线连接HarmonyOS设备,然后执行下面的命令。
adb shell dumpsys DdmpDeviceMonitorService
成功执行命令后,在输出结果中的Local device info部分找到dev_udid,后面的字符串就是该设备的UDID。
如果有多部设备连接到了PC上,需要使用-s命令行参数指定设备标识。
通过下面的Url打开页面,并点击“我的项目”按钮。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
进入该页面后,在上面会列出在该项目下创建的应用,如图6所示,读者可以点击“添加应用”链接创建新的应用。
图6 应用列表
添加应用页面如图7所示。读者需要在该页面按图1-30所示填写必要的信息(需要按自己App的情况填写相应的内容)。其中“支持设备”保持默认值就可以在HarmonyOS手机上运行。
图7 添加应用
注意:如果App的包变了,需要重新按这一步添加应用,否则App将无法部署在HarmonyOS手机上。
进入上一步创建的应用的页面,点击右上角的“添加”按钮,添加一个HAP Provision Profile。在这一步是一个总绑定。将App的包、证书和设备绑定在一起。也就是说,只有特定包的App、使用特定的证书,才能在特定的设备上部署。进入页面后,可以仿照图8所示填写这个页面的内容。
图8 添加HAP Provision Profile
成功添加HAP Provision Profile后,会在列表中显示刚才创建的HAP Provision Profile,如图9所示。点击右侧“下载”链接,就会下载一个名为“网盘p7bDebug.p7b”的文件。
图9 下载p7b文件
到目前为止,所有必要的文件都已经齐备,通过这7步获得了如图10所示的4个文件,其中demo.csr只是一个中间文件,在签名时并不需要它。
图10 用于签名的文件
注意:可能有的读者会感到生成证书比较麻烦,需要这么多步。其实只有第一次签名要这么多步。当再创建新的应用,其实只需要做第6步和第7步就可以了。也就是说,如果设备不变,在签名时只需要更换p7b文件就可以了。
做完上面的几步,就可以打开IDE的Project Structure窗口,并对工程进行前签名,如图11所示。在签名时注意相关文件的选择,不要选错了。其中密码就是前面输入的密码。最后点击OK按钮完成签名。
图11 为工程签名
签完名,会在工程的build.gradle文件中出现如图12所示的内容,用于存储签名信息。如果下次再对同一个包签名,可以直接将signingConfigs标签的内容复制到对应工程的build.gradle文件中。
图12 签名存储信息
还有一种自动签名的方式,请看这篇文章:
鸿蒙最新IDE(DevEco Studio)绝密档案大揭秘,绝对有你不知道的东西!