鸿蒙学习实战之路-STG系列(2/11)-配置签名与权限申请
鸿蒙学习实战之路-STG系列(2/11)-配置签名与权限申请
朋友们,上一篇我们介绍了 Screen Time Guard Kit 的基本概念,今天这篇我就手把手带你完成开发前的准备工作 - 配置签名和申请 ACL 权限。这步是必须要做的,不做的话你的应用根本用不了这个 Kit o(╯□╰)o
今天这篇,我会详细讲解如何配置签名、申请受限 ACL 权限,以及在项目中配置权限声明,全程不超过5分钟(不含权限审核时间)~
一、为什么要配置签名和申请权限?
1. 配置签名
签名就像是应用的"身份证",系统需要确认这个应用是谁开发的,有没有被篡改。对于 Screen Time Guard Kit 这样的敏感功能,签名验证更是必不可少。
2. 申请 ACL 权限
Screen Time Guard Kit 涉及到用户设备的时间管控和应用限制,属于敏感权限,需要经过华为官方审核才能使用。这就像家长给孩子配手机一样,得先证明你有这个能力和资格 _
🥦 西兰花警告:
ACL 权限申请需要 1 个工作日审核,记得提前申请!别等到项目上线前一天才想起来,那就惨了 o(╥﹏╥)o
二、配置签名
配置签名分为调试阶段和发布阶段两个步骤。
1. 调试阶段签名配置
调试阶段的签名主要用于开发测试,步骤如下:
步骤 1: 申请调试证书
- 登录 AppGallery Connect
- 进入你的项目,选择需要配置签名的应用
- 点击"项目设置" → “常规” → “SHA256 证书指纹”
- 点击"新增调试证书"
- 填写证书信息,生成调试证书
🥦 西兰花小贴士:
调试证书只能用于真机调试,不能用于发布应用。发布时需要重新申请发布证书~
步骤 2: 注册调试设备
- 在 AppGallery Connect 中,进入"项目设置" → “常规”
- 点击"调试设备" → “添加设备”
- 输入设备的序列号(SN号)
- 添加完成后,这个设备就可以使用调试证书运行应用了
🥦 西兰花小贴士:
设备的 SN 号可以在设备的"设置 → 关于手机"中找到。模拟器不需要注册,可以直接用~
步骤 3: 申请调试 Profile
Profile 文件就像是"通行证",告诉系统这个应用可以在哪些设备上运行。
- 在 AppGallery Connect 中,进入"项目设置" → “常规”
- 点击"添加" → “调试 Profile”
- 选择调试证书和调试设备
- 点击"生成",下载 Profile 文件
步骤 4: 手动配置签名信息
- 打开 DevEco Studio
- 选择你的项目,点击"File" → “Project Structure”
- 选择"Signing Configs"
- 勾选"Automatically generate signature"(自动生成签名)
- 或者选择"Manually configure signature"(手动配置签名),上传你刚才下载的 Profile 文件
🥦 西兰花小贴士:
开发调试阶段建议选择"自动生成签名",这样更方便。正式发布时再用手动配置~
2. 发布阶段签名配置
发布阶段的签名用于应用上架,步骤如下:
步骤 1: 申请发布证书
- 在 AppGallery Connect 中,进入"项目设置" → “常规”
- 点击"新增发布证书"
- 填写证书信息,生成发布证书
🥦 西兰花警告:
发布证书一定要保管好,丢失后无法找回,需要重新申请,而且会影响应用更新~
步骤 2: 申请发布 Profile 文件
- 在 AppGallery Connect 中,进入"项目设置" → “常规”
- 点击"添加" → “发布 Profile”
- 选择发布证书
- 在"申请权限"栏选中"受限ACL权限(HarmonyOS API9及以上)"选项
- 点击"选择",勾选已申请的
ohos.permission.MANAGE_SCREEN_TIME_GUARD权限 - 点击"添加",下载 Profile 文件
步骤 3: 手动配置签名信息
- 打开 DevEco Studio
- 选择你的项目,点击"File" → “Project Structure”
- 选择"Signing Configs"
- 选择"Manually configure signature"(手动配置签名)
- 上传发布证书和 Profile 文件
🥦 西兰花警告:
发布 Profile 必须包含你申请的 ACL 权限,否则应用运行时会报错,说权限不足~
三、申请受限 ACL 权限
这是最关键的一步!Screen Time Guard Kit 需要申请 ohos.permission.MANAGE_SCREEN_TIME_GUARD 权限。
步骤 1: 登录 AppGallery Connect
- 访问 AppGallery Connect
- 登录你的华为开发者账号
步骤 2: 选择项目和应用
- 在"项目列表"中找到你的项目
- 点击项目名称进入
- 在应用列表中选择需要申请权限的应用
步骤 3: 进入 ACL 权限页面
- 点击左侧菜单的"项目设置"
- 选择"ACL权限"页签
- 这里会显示当前应用已申请和未申请的权限列表
步骤 4: 申请权限
- 在"未获取权限"区域,勾选"我已知晓"
- 在权限搜索框中输入"ohos.permission.MANAGE_SCREEN_TIME_GUARD"
- 找到权限后,勾选该权限
- 点击"申请"按钮
步骤 5: 填写申请原因
系统会要求你填写申请原因,这里要详细说明你的应用场景和为什么需要这个权限。
🥦 西兰花小贴士:
申请原因要写得具体一点,比如"开发家长控制应用,帮助家长管理孩子的屏幕使用时间"这样通过率更高~
示例申请原因:
应用类型:家长控制应用
功能说明:帮助家长限制孩子在指定时间段内使用游戏类应用,防止沉迷
使用场景:家长可以设置工作日 9:00-18:00 禁止游戏,每天总时长不超过 2 小时
隐私保护:所有操作都需要家长授权,不会收集儿童个人信息
步骤 6: 等待审核
提交申请后,华为会在 1 个工作日内审核。审核通过后,你会在 ACL 权限页面看到这个权限的状态变为"已获取"。
🥦 西兰花警告:
如果审核被拒绝,系统会说明原因。根据原因修改后可以重新申请,不用担心~
四、在项目中配置权限声明
权限申请通过后,还需要在项目的 module.json5 文件中声明这个权限。
1. 找到 module.json5 文件
module.json5 文件通常在项目的 entry/src/main 目录下。
2. 添加权限声明
打开 module.json5 文件,找到 requestPermissions 字段,添加权限声明:
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"default",
"tablet"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
],
"requestPermissions": [
{
"name": "ohos.permission.MANAGE_SCREEN_TIME_GUARD"
}
]
}
}
🥦 西兰花小贴士:
如果 requestPermissions 字段不存在,就自己添加一个。注意 JSON5 的格式要正确,别少了逗号~
五、完整配置流程总结
整个配置流程就像这样:
调试阶段
↓
申请调试证书
↓
注册调试设备
↓
申请调试 Profile
↓
配置签名信息
↓
申请 ACL 权限(提前1天)
↓
等待审核(1个工作日)
↓
权限审核通过
↓
在 module.json5 中声明权限
↓
申请发布 Profile(包含 ACL 权限)
↓
配置发布签名
↓
应用发布
简单来说,就是"申请证书 → 申请权限 → 声明权限 → 配置签名",是不是超简单? (┓( ´∀` )┏
六、常见问题
1. 权限申请被拒绝怎么办?
检查申请原因是否写清楚了,重新提交申请。如果多次被拒绝,可以联系华为客服咨询具体原因。
2. Profile 文件下载失败怎么办?
检查网络连接,或者尝试刷新页面重新下载。如果还是不行,可以联系华为技术支持。
3. 签名配置后还是报错?
检查 Profile 文件是否正确,是否包含了 ACL 权限。如果没问题,可以尝试删除签名配置后重新配置。
4. 模拟器需要注册调试设备吗?
不需要,模拟器可以直接使用调试证书运行应用。
七、注意事项
🥦 西兰花警告:
- 提前申请权限: ACL 权限需要 1 个工作日审核,记得提前申请
- 保管好证书: 发布证书一定要备份,丢失后无法找回
- 权限名称要准确:
ohos.permission.MANAGE_SCREEN_TIME_GUARD一个字符都不能错 - Profile 必须包含权限: 发布 Profile 必须包含 ACL 权限,否则应用运行会报错
- module.json5 格式: 添加权限声明时注意 JSON5 格式,别少了逗号
八、文档资源
官方文档链接:
九、总结
配置签名和申请 ACL 权限是使用 Screen Time Guard Kit 的必要步骤,虽然有点繁琐,但为了安全和隐私保护,这些都是必须的。
核心要点:
- 调试阶段和发布阶段都需要配置签名
- ACL 权限需要提前 1 个工作日申请
- 发布 Profile 必须包含 ACL 权限
- 在 module.json5 中声明权限
- 保管好发布证书
配置完成后,就可以开始使用 Screen Time Guard Kit 的功能了 _
下一步行动
建议你:
- 先完成调试阶段的签名配置
- 提前申请 ACL 权限(别等上线前一天才想起来)
- 在 module.json5 中声明权限
- 等权限审核通过后,再配置发布签名
- 测试一下应用是否能正常运行
记住,不教理论,只给你能跑的代码和避坑指南! _
我是盐焗西兰花,
不教理论,只给你能跑的代码和避坑指南。
下期见!🥦
更多推荐


所有评论(0)