AGC 基础设置详解:为你的HarmonyOS 5应用配置包名与图标
一、AppGallery Connect 项目创建与基础配置
- 创建AGC项目
首先登录AppGallery Connect控制台:
// 伪代码:模拟AGC项目创建流程
function createAGCProject(projectName: string, region: string): Promise
return agcClient.createProject({
name: projectName,
region: region,
serviceEnabled: {
auth: true,
cloudFunctions: true,
cloudDB: true
}
});
}
// 示例调用
createAGCProject("MyHarmonyOSApp", "CN")
.then(project => console.log("项目创建成功:", project))
.catch(err => console.error("创建失败:", err));
2. 添加HarmonyOS应用
在项目内添加应用时需注意:
应用类型选择"HarmonyOS应用"
包名(bundleId)必须与DevEco Studio中的config.json保持一致
平台选择"HarmonyOS"
二、包名(Bundle ID)配置详解
- 在DevEco Studio中配置包名
修改entry/src/main/module.json5文件:
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"phone",
"tablet"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"label": "$string:EntryAbility_label",
"icon": "$media:icon",
"description": "$string:EntryAbility_desc",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"actions": [
"action.system.home"
],
"entities": [
"entity.system.home"
]
}
]
}
]
}
}
2. 在AGC控制台配置包名
在"我的项目" > "项目设置" > "常规"中确认包名:
应用ID: com.yourcompany.yourapp // 必须与module.json5中的包名一致
三、应用图标配置全流程
- 准备图标资源
创建多分辨率图标并放入entry/src/main/resources/base/media目录:
resources/
├── base/
│ ├── media/
│ │ ├── icon.png // 基础图标
│ │ ├── icon_2x.png // @2x版本
│ │ └── icon_3x.png // @3x版本
├── en_US/
├── zh_CN/
2. 配置图标引用
修改entry/src/main/resources/base/element/icon.json:
{
"media": [
{
"name": "icon",
"type": "png",
"src": "/media/icon.png"
},
{
"name": "app_icon",
"type": "png",
"src": "/media/app_icon.png"
}
]
}
3. 在AGC控制台上传图标
在"应用信息" > "应用图标"处上传:
主图标:512x512像素 PNG格式
圆形图标:1024x1024像素(用于Watch等设备)
四、应用签名与安全配置
- 生成签名证书
在DevEco Studio中:
点击"Build" > "Generate Key and CSR"
填写证书信息:
// 自动生成的签名配置 (entry/build-profile.json5)
{
"app": {
"signingConfigs": [
{
"name": "release",
"material": {
"certpath": "signing/release.p12",
"storePassword": "yourpassword",
"keyAlias": "release",
"keyPassword": "yourpassword",
"profile": "signing/release.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "signing/release.jks"
}
}
]
}
}
2. 在AGC配置应用签名
进入"项目设置" > "应用签名"
上传从DevEco Studio生成的.p12证书文件
填写对应的密码和别名
五、多语言与地区配置
- 配置多语言资源
在entry/src/main/resources目录下:
resources/
├── base/ // 默认资源
│ ├── element/
│ ├── media/
│ └── profile/
├── en_US/ // 英文资源
│ ├── element/
│ └── string.json
└── zh_CN/ // 中文资源
├── element/
└── string.json
示例字符串资源文件zh_CN/string.json:
{
"string": [
{
"name": "app_name",
"value": "我的鸿蒙应用"
},
{
"name": "main_page_title",
"value": "首页"
}
]
}
2. 在AGC配置多语言
在"应用信息" > "应用语言"中添加支持的语言:
// 伪代码:AGC多语言配置API调用示例
async function configureAppLanguages(appId: string, languages: string[]) {
const appInfo = await agcClient.getAppInfo(appId);
await agcClient.updateAppInfo({
...appInfo,
supportedLanguages: languages
});
}
// 配置支持中文和英文
configureAppLanguages("YOUR_APP_ID", ["zh-CN", "en-US"]);
六、应用服务开通与集成
- 开通必要服务
在AGC控制台开通以下常用服务:
认证服务(Auth Service)
云数据库(CloudDB)
云函数(Cloud Functions)
2. 集成AGC SDK
在entry/build.gradle中添加依赖:
dependencies {
// AGC核心服务
implementation 'com.huawei.agconnect:agconnect-core-harmony:1.6.5.300'
// 认证服务
implementation 'com.huawei.agconnect:agconnect-auth-harmony:1.6.5.300'
// 云数据库
implementation 'com.huawei.agconnect:agconnect-clouddb-harmony:1.6.5.300'
}
3. 配置agconnect-services.json
从AGC控制台下载配置文件,放入entry目录:
{
"client": {
"app_id": "YOUR_APP_ID",
"package_name": "com.yourcompany.yourapp",
"api_key": "YOUR_API_KEY"
},
"service": {
"auth": {
"enable": true
},
"clouddb": {
"instances": [
{
"name": "default",
"region": "CN"
}
]
}
}
}
七、调试与验证配置
- 验证包名配置
在EntryAbility.ets中添加验证代码:
import bundleManager from '@ohos.bundle.bundleManager';
import agconnect from '@hw-agconnect/core';
@Entry
@Component
struct EntryAbility {
build() {
Column() {
Text('包名验证')
.fontSize(20)
.margin({ bottom: 20 });
Button('获取当前包名')
.onClick(async () => {
try {
const bundleInfo = await bundleManager.getBundleInfoForSelf();
console.log("当前包名:", bundleInfo.name);
// 验证AGC配置
const config = agconnect.instance().getConfig();
console.log("AGC配置包名:", config.client.package_name);
if (bundleInfo.name === config.client.package_name) {
console.log("包名配置一致,验证通过");
} else {
console.error("包名不匹配,请检查配置");
}
} catch (err) {
console.error("获取包名失败:", err);
}
})
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
2. 验证图标加载
在首页添加图标显示测试:
@Entry
@Component
struct Index {
build() {
Column() {
// 显示应用图标
Image($r('app.media.icon'))
.width(100)
.height(100)
.margin({ bottom: 20 })
// 显示不同分辨率的图标
Row({ space: 10 }) {
Image($r('app.media.icon'))
.width(50)
.height(50)
Image($r('app.media.icon_2x'))
.width(50)
.height(50)
Image($r('app.media.icon_3x'))
.width(50)
.height(50)
}
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
八、常见问题与解决方案
- 包名冲突错误
错误现象:
Installation failed: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
解决方案:
检查module.json5中的包名是否唯一
在AGC控制台确认没有重复的包名
修改build.gradle中的applicationId
2. 图标不显示问题
排查步骤:
确认图标文件已放入正确的resources目录
检查icon.json中的引用路径是否正确
验证图标文件没有被其他资源覆盖
清理项目重新构建:Build > Clean Project
3. AGC服务初始化失败
调试代码:
import agconnect from '@hw-agconnect/core';
try {
agconnect.instance().init();
console.log("AGC初始化成功");
} catch (err) {
console.error("AGC初始化失败:", err);
// 检查agconnect-services.json文件位置和内容
// 验证包名和签名证书是否匹配
}
总结
通过以上详细的配置步骤,你可以为HarmonyOS 5应用正确设置包名和应用图标,并完成AGC的基础集成。这些配置是应用发布和后续功能开发的基础,务必确保:
包名在DevEco Studio和AGC中保持一致
图标资源满足多分辨率要求
签名证书正确配置
多语言资源完整
正确的基础配置将为后续的认证服务、云数据库等高级功能打下坚实基础。

浙公网安备 33010602011771号