• 上架
  1. 上架后是否修改可兼容设备类型?

    说明:

    • 请确保软件包里声明的设备范围大于等于AGC上勾选的支持设备范围。
    • 在应用发布前,您都可以修改支持设备,支持由单设备改为多设备,或多设备改为单设备。但是应用一旦发布,升级时仅允许增加设备类型,不支持删除原有在架应用已选择的设备类型。例如,在架应用支持的设备类型为“手机”,升级应用时您无法取消勾选“手机”选项。
  2. 关于受限权限
    • 当前受限ACL权限申请仅支持中国大陆地区。
    • 选择权限时,请注意各权限支持的设备类型,确保软件包声明的设备类型范围不超出申请的权限支持的设备类型范围,否则将导致应用/元服务安装失败。
    • 一次最多可勾选申请10条权限。必须等待上一次权限申请审批结束后,才可提交新的权限申请。

    对于HarmonyOS NEXT应用/元服务,“申请权限”栏展示“受限ACL权限(HarmonyOS API9及以上)”选项。选中此选项,点击“选择”,在打开的“申请使用受限ACL权限”窗口勾选您申请的权限,仔细阅读注意事项后勾选“我已知晓”,然后点击“提交申请”。在“新建业务申请”窗口逐一填写申请权限的理由后,点击“提交”。

    申请的权限与应用/元服务绑定,不因Profile的状态变化而改变。若已在一个Profile中为应用/元服务获取了权限,无论该Profile处于何种状态,再次为该应用/元服务创建Profile时无需再重新申请已获取的权限。

    【参考文档】申请发布Profile-发布应用(APP)

  3. 关于证书文件及签名
    1. 证书文件是否可以复用(证书复用的前提是共用一个发布证书)

      文件

      证书说明

      是否复用

      秘钥库文件(.p12)

      通过DevEco Studio来生成,秘钥包含非对称加密中使用的公钥和私钥

      证书请求文件(.csr)

      通过DevEco Studio来生成,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书

      profile文件(.p7b)

      在AGC上通过应用名称以及数字证书文件生成.p7b文件,跟应用绑定,每个应用/元服务包中均必须包含一个Profile文件。

      ×

      数字证书文件(.cer)

      在AGC上通过证书请求文件.csr生成对应的调试证书或发布证书

      一个账号可以申请3个发布证书+1个调试证书。

      说明:

      证书申请成功即为“生效”状态。若证书状态变为“失效”或“已吊销”,表示当前证书已不可用,且通过此证书申请的Profile也会全部失效或吊销。需要重新申请证书与Profile。

      证书一旦废除将不可恢复,且通过此证书申请的Profile也会全部失效,请谨慎操作。

      关于应用签名文件申请参考申请调试证书和调试Profile文件

    2. 证书和profile文件都是这个月过期,新生成也是12.27过期?

      profile是跟证书绑定的,如证书是12.27过期,新生成的profile也是12.27号过期。

    3. 使用调试证书和调试Profile签名后就能在任何HarmonyOS设备上安装吗?

      不能,只有调试Profile文件中添加了对应UDID的设备才能安装,其他设备无法安装。

    4. 发布证书和调试证书有什么区别,发布Profile和调试Profile有什么区别?

      发布证书和发布Profile用于在应用上架时对APP进行签名,调试证书和调试Profile用于在本地调试时对HAP进行签名。

      调试证书不可以用来上架发布,同理发布证书不能用来调试调试profile与发布profile流程上的区别:

      申请调试profile(包含权限申请)参考:申请调试Profile

    5. AGC重签名会修改应用的签名吗,会导致应用升级时因签名不一致而无法更新吗?

      不会,应用升级的签名由开发者决定,只要本地签名的密钥库文件(.p12)未发生变化,升级时签名就不会改变。

    6. 更换发布证书会导致应用更新版本失败吗?

      更换证书不会导致应用更新失败,但前提是证书是通过同一个CSR文件生成的,即需要确保密钥库文件(.p12)不变。需要注意的是,更换证书需同时更新Profile文件。

  4. 关于调试设备一个账号每年最多可注册100台设备,如需删除调试设备,可勾选一个或多个设备,点击“批量删除设备”,在弹出窗口中点击“确认”即可。设备在添加后一年内被删除,该设备将置灰显示,如想重新添加一年内被删除的、置灰显示的设备,可通过单个添加设备的方式,重新编辑新的名称输入原UDID即可(注意:该设备注册时间依然是首次添加的时间为准)。可参考注册调试设备
    1. 如将手机设备类型选成了智能手表,是否会影响测试安装?

      不影响,目前实际上不校验设备类型。

    2. AGC设备列表界面的udid是否可以明文?

      不可以,设备信息涉及隐私,后台UDID存储的时候是加密的。

  5. 鸿蒙单框架后续是否规划支持热修复计划?

    后续暂无计划支持单框架热修复机制。

    Harmoney Next应用市场基于安全合规,用户隐私角度的考虑不提供热修复能力。考虑到应用紧急故障快速修复的诉求,Harmoney Next应用市场可以提供快速上架方案,如果应用出现紧急修复情况,华为可以快速审核,通过快速审核+应用端内弹框可以加快应用更新速度。

    审核加急一年只有3次机会,审核加急配置当前是受限开发,在使用之前需要提前发邮件申请。

    快速审核参考链接:配置审核加急

  6. 应用可以用上一个版本的versioncode和versionname上架吗?

    版本大小只校验versionCode,可以提升versionCode而versionName不变。

    如果更新版本versioncode 要比之前的versioncode 低会出现选不了对应的软件包。

  7. 关于测试应用
    1. 邀请测试审核时间

      邀请测试是机审,一般是1-2小时完成,邀请测试不用备案信息,公开测试需要备案。

    2. 邀请测试最多能允许多少个在架版本

      邀请测试最多允许3个版本同时在架,公开测试最多允许1个版本在架。所有测试版本数量不超过100个。

      在架版本包括正在审核、等待生效、正在测试。

  8. 自动化上架api

    相关api接口:

    Publishing API(HarmonyOS)

    Upload Management API

    Domain Management API

    Testing API

    Provisioning API

    Reports API

    Project Management API

    Comments API

    PMS API

    在玩服务

    查询应用包名对应的appid

    获取文件上传地址

    查询应用的域名配置信息

    新建测试版本

    申请证书

    获取下载安装的报表

    获取团队列表

    查询评论列表

    创建商品

    上传/下架游戏资源

    查询应用信息

    上传文件

    新增应用的域名配置信息

    添加软件包

    查询证书

    获取预约的报表

    获取应用简略信息

    查询单个评论详情

    批量创建商品

    查询游戏概要信息

    更新应用基本信息

    分片上传初始化

    下载域名配置文件

    更新测试版本

    删除证书

    获取给指定用户群发奖的报表

    获取配置文件

    回复评论和回复

    创建商品订阅分组信息

    查询战绩筛选标签

    更新应用语言信息

    获取分片上传地址

      

    更新测试生效版本

    批量添加设备

    获取新增和留存的报表

    添加证书指纹

    查询应用评分

    更新商品订阅分组信息

    分页查询玩家战绩

    删除语言描述信息

    上传分片实体

      

    更新有效期内的测试版本时间和额度信息

    查询设备列表

    获取应用内付费的报表

    查询证书指纹和AppSecret

    数据模型

    查询商品订阅分组信息

    查询资产概要

    更新应用文件信息

    合并分片

      

    提交测试版本

    删除设备

    获取付费下载的报表

    查询服务开通状态

    错误码

    查询商品详情

    查询资产明细

    更新应用软件包信息

    错误码

      

    新增测试群组

    申请Provision

    获取付费下载明细的报表

    查询项目详情及项目下的应用

      

    按条件查询商品信息

    批量查询玩家角色信息

    更新版本上架时间

         

    查询测试群组列表

    查询Provision列表

    获取优惠券活动的报表

    查询项目列表

      

    更新商品信息

    批量查询玩家基本信息

    更新分阶段发布

         

    删除测试群组

    删除Provision

    获取安装失败数据的报表

    错误码

      

    批量更新商品

      

    查询软件包编译状态

         

    生成邀请码

      

    获取元服务分发分析的报表文件

         

    批量激活商品

      

    查询软件包列表

         

    查询测试群组邀请码

      

    获取元服务新增留存的报表文件

         

    批量去激活商品

      

    提交发布

         

    停止邀请码

      

    获取元服务卡片分析的报表文件

         

    查询是否有在线商品

      

    撤销审核

         

    停止测试版本

      

    获取HarmonyOS原生应用或元服务用户分析的报表文件

         

    创建商品促销信息

      

    数据模型

         

    删除测试版本

      

    获取HarmonyOS原生应用下载安装的报表文件

         

    更新商品促销信息

      

    错误码

               

    获取HarmonyOS原生应用安装失败的报表文件

         

    查询商品促销详情

      
                  

    获取HarmonyOS NEXT/5.0.x元服务分发分析的报表文件

         

    按条件查询商品促销信息

      
                  

    获取AppFreeze指标

         

    批量上线商品促销活动

      
                  

    获取Crash指标

         

    批量下线商品促销活动

      
                  

    错误码

         

    数据模型

      
                           

    错误码

      
    1. AGC平台是否有对外API接口实现自动上架?

      【参考文档】Publishing API(HarmonyOS)

    2. 测试版本是否有撤销审核API?

      【参考文档】撤销审核

      当应用发布方式为“HarmonyOS测试发布方式(API>=10)”时,只有处于“正在审核”状态的应用可以撤销审核。

    3. 测试发布,要求提供下架当前测试版本API

      测试版本停止发布就是下架,走的渠道是下架免审。

    4. 取消分阶段发布API

      【参考文档】更新分阶段发布

FAQ

关于发布应用相关FAQ可以参考发布应用-FAQ

  • 分发
  1. 发布企业内部应用
    1. 发布企业内部应用是否可以用之前上架的账号?

      不可以,必须准备一个未实名认证过的账号,目的是为避免权限冲突,需要与原企业账号之间进行权限隔离,故不可使用已实名认证的账号。

    2. 企业分发无法进行关联认证(或者找不到关联认证入口)

      这种一般先确认老的开发者账号信息是否为最新,如不是最新则需更新到最新并且通过审核后才可以发起关联认证。

    3. 企业开发者(企业内部应用分发)实名认证申请指导文档

      打款认证、人工审核实名认证、关联认证。

      【参考文档】企业开发者(企业内部应用分发)实名认证申请指导文档-申请指导

    4. 企业内部分发与应用市场分发能否保持包名不变?

      为保证应用的唯一性,包名不能重复。

    5. 企业内部分发的应用, 能否通过应用市场安装? 上架的应用,可以覆盖安装企业内部分发的应用么?

      均不可以。

  2. 拉起应用市场详情页

    【参考文档】应用详情页展示

    import { BusinessError } from '@kit.BasicServicesKit';
    import { hilog } from '@kit.PerformanceAnalysisKit';
    import type { common, Want } from '@kit.AbilityKit';
    
    // 拉起应用市场对应的应用详情页面
    function startAppGalleryDetailAbility(context: common.UIAbilityContext, bundleName: string): void {
      let want: Want = {
        //隐式指定action为ohos.want.action.appdetail
        action: 'ohos.want.action.appdetail',
        //  bundleName为需要打开应用详情的应用包名
        uri: 'store://appgallery.huawei.com/app/detail?id=' + bundleName,
      };
      context.startAbility(want).then(() => {
        hilog.info(0x0001, 'TAG', "Succeeded in starting Ability successfully.")
      }).catch((error: BusinessError) => {
        hilog.error(0x0001, 'TAG', `Failed to startAbility.Code: ${error.code}, message is ${error.message}`);
      });
    }
    
    @Entry
    @Component
    struct StartAppGalleryDetailAbilityView {
      @State message: string = '拉起应用市场详情页';
    
      build() {
        Row() {
          Column() {
            Button(this.message)
              .fontSize(24)
              .fontWeight(FontWeight.Bold)
              .onClick(() => {
                const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
                // 按实际需求获取应用的bundleName,例如bundleName: 'com.huawei.hmsapp.books'
                const bundleName = 'xxxx';
                startAppGalleryDetailAbility(context, bundleName);
              })
          }
          .width('100%')
        }
        .height('100%')
      }
    }
  3. 按需加载

    按需加载只支持.hap和.hsp包 通过应用市场分发下载。

    【参考文档】产品特性按需分发(ArkTS)

  4. 应用市场更新功能

    【参考文档】应用市场更新功能

    应用市场更新功能为开发者提供版本检测、显示更新提醒功能。开发者使用应用市场更新功能可以提醒用户及时更新到最新版本。

    1. 未上架的应用是否可以使用updateManager.checkAppUpdate进行检查更新?

      未上架应用市场的应用,应用市场没有它的数据,无法使用上面接口检查更新(发布企业内部应用也无法用上面接口)。

    2. 如何强制升级?

      针对版本漏洞或框架更改等需要强制升级应用的情况,官方文档目前没有此类场景的使用指南,开发者可以通过checkAppUpdate判断用户版本是否需要更新,根据返回的CheckUpdateResult的值来判断是否有新版本。从而开发者可以自己做弹框拉起AG的应用详情页,如果用户不升级,则一直不让用就行了。应用也可以自己做弹框,调用loadProduct跳转应用市场当前应用详情页。

  5. 应用包体大小

    包体大小跟以下几点均有关系

    • 影响包体的因素较多,客户打包压缩,AG客户端显示是不压缩,应用加密与否,按需下载的能力等,比较复杂。
    • 比如按需下载动态库有关系,如果上传的包pad的 hsp,手机上是不会下载的,加密文档也明确有提出加密后的应用相比不加密体积更大。

      【参考文档】应用加密-安全

  6. 当前鸿蒙是否支持应用内下载安装应用?

    鸿蒙不支持应用内下载安装应用,只能通过跳转应用市场,通过应用市场安装,当前系统分发策略是唯一分发策略,只能经过应用市场下载安装应用。

  7. 满足什么条件会出现在应用市场的 “下载并安装新版本” 里?

    有老版本应用安装了且上架了应用新的版本。

  8. 邀请测试下载成功,安装失败

    一般都是本地安装了旧版本,旧版本又是伙伴自己本地调试安装上去的,由于证书不匹配造成如果都是AG正常下载 更新 应该不会有问题,所以一般都是让伙伴把本地的应用先清理干净。

    如还有问题,建议让伙伴收集日志,联系开发定位。

    应用市场里面提交下应用市场日志,方法:打开应用市场 -> 我的 -> 帮助与客服 -> 问题与建议 ,输入任意问题描述,必须勾选共享应用日志,点击提交。

  9. AGC报表和AG详情页里面的安装数量对比

    AGC界面的安装成功次数,是包含首次下载,卸载后下载,更新下载的。

    【参考文档】分发分析-下载安装

    AG详情页:只会包含应用首次下载,或者预装应用首次更新下载,会按照华为账号去重。所以AG的详情页数据比AGC界面看到的安装量少。

    两边的口径不一样,不能对等。

    指标

    说明

    有效曝光次数

    应用在华为应用市场推荐、排行榜、搜索等资源位被展示次数,图片露出50%以上且曝光时间大于1s才算有效曝光。

    ICON点击次数

    应用在华为应用市场内曝光的ICON被点击的次数。

    有效曝光点击率

    ICON点击次数/有效曝光。

    详情页访问次数

    在华为应用市场内统计的应用详情页被浏览的次数。

    总下载成功次数

    更新下载成功次数 + 新下载成功次数。

    更新下载成功次数

    用户通过华为应用市场更新应用版本产生的下载成功次数。

    新下载成功次数

    用户通过华为应用市场新下载成功次数。

    计算方式:第一次下载成功算一次,卸载后重新下载也算一次。

    详情页转化率

    详情页新下载次数(仅包括详情页带来的新下载次数)/详情页访问次数

    安装成功次数

    应用在应用市场安装成功的次数。(包含更新安装成功次数+新安装成功次数)。

    新安装成功次数

    用户通过华为应用市场新下载并安装成功的次数。

    安装成功率

    新下载应用安装成功的比例,即新安装成功次数/新下载成功次数。

    卸载次数

    从所有渠道安装或更新的应用被卸载的次数。

  10. 低版本rom安装高版本的应用

    一般会有系统弹框提示,该版本可能与系统不兼容,建议更新系统版本,否则可能会出现问题(比如闪退等现象)(如果系统版本没有最新的会出现图1,如果系统版本有更新的会出现图2)。

  11. APP已上线是否有https下载链接

    https://appgallery.huawei.com/app/detail?id=<包名>跳转AG应用详情页下载。(应用市场详情页右上角也有分享链接按钮)。

  12. 应用间跳转方案如何选择?

    跳转技术方案

    APPLinking

    DeepLinking

    weblink

    显式want

    业界对标

    iOS:universal linkAndroid:App Links

    URL Scheme、DeepLink

    普通网页链接,一种特殊类型的deeplink

    实现方案

    1、应用包体中申明链接2、向系统注册域名,并通过域名认证

    应用包体中申明链接

    与应用无绑定关系,注册失败的AppLinking也将退化为Web link

    显式拉起Ability,通过bundleName、abilityName和moduleName可以唯一确定一个Ability

    链接格式

    1、scheme协议名称必须为https; 2、host必须配置为关联的域名; 3、path可选,为了避免匹配到多个应用,强烈建议配置该字段

    1、scheme必填,一般由开发者自定义(此处为狭义定义,不包含https、http、file等sheme); 2、host必选,配置待匹配的域名; 3、path可选,为了避免匹配到多个应用,强烈建议配置该字段

    scheme为https或http

    scheme为https,domainVerify为true

    是否可以用于分享或直接在网页中访问

    可以

    不可以,需在代码中调用

    可以,但不推荐,访问时体验不能直达

    不可行,在API12及以后版本,系统框架增加了应用间显式跳转的限制,应用间的跳转需要通过link跳转的方式实现

    是否可以直接拉端

    可以

    可以但不推荐,存在被仿冒风险,仅仅为了部分开发者强要求三端链接一致时使用

    不可以

    API 11及以前版本,可以使用显式want拉起其他应用。从API 12开始,已不再支持三方应用使用该方式拉起其他应用

    目标应用已安装&appLinkingOnly为false(默认)

    直接跳转打开目标应用

    跳转目标应用(如果有多个时展示应用选择弹框)

    跳转默认浏览器打开网页

    null

    目标应用未安装&appLinkingOnly为false(默认)

    跳转默认浏览器打开网页

    返回失败,系统不跳转,由应用自行处理当前会展示链接无法打开弹框

    跳转默认浏览器打开网页

    null

    目标应用已安装&appLinkingOnly为true

    直接跳转打开目标应用

    返回失败,系统不跳转,由应用自行处理

    返回失败,系统不跳转,由应用自行处理

    null

    目标应用未安装&appLinkingOnly为true

    直接跳转打开目标应用

    返回失败,系统不跳转,由应用自行处理

    返回失败,系统不跳转,由应用自行处理

    null

    适用场景

    适用于社交分享、广告引流等需要外部链接访问应用的场景,以及对安全性和用户体验要求较高的场景

    适用于需要在已安装的应用之间进行跳转,实现相对简单,但当无应用匹配时用户体验不佳。

    未注册AppLinking或注册失败的http、https开头的网页链接,在默认浏览器中打开web页面预览内容

    不推荐

    参考链接

    使用App Linking实现应用间跳转-拉起指定应用

    使用Deep Linking实现应用间跳转-拉起指定应用

    null

    显式Want跳转切换应用链接跳转适配指导-拉起指定应用

  13. 当前系统有哪些应用分发方式?异同点有哪些?

    分发方式

    面向对象

    规格

    交互方式

    特点

    邀请测试

    可邀请特定群体用户参加测试

    测试用户上限1000个

    方式一:通知用户查看预留的邮箱或短信;方式二:测试发布方式选择了“生成分享链接”,则您可以复制该链接后,直接将其给到用户;方式三:在AGC的测试版本配置界面,测试发布方式选择了“生成分享链接”,且选择的测试用户群组中,有生效中状态的邀请码。则您可以将测试版本分享链接拼接邀请码后,给到用户。参与方式:(1)用户点击邮件/短信/分享链接,进入邀请测试的介绍页;(2)用户在邀请测试的介绍页,点击“开始测试”;(3)用户同意加入应用的测试群组;(4)进入应用测试版本的详情页,并点击下载安装;注意:邀请测试用户首次参与测试时,必须先通过邮件/短信通知的方式进入,首次同意加入群组后,后续可直接在应用尝鲜专区查找应用。

    1)邀请测试不用备案;2)上架应用市场,开发者可以选择特定的用户群进行测试,这有助于确保反馈的质量; 相对于公开测试,参与用户的数量可控,可以避免给系统带来过大的负载。

    公开测试

    面向全网所有用户

    开发者自定义下载次数,上限10万

    方式一: 测试版本在AG客户端测试专区公开可见,所有用户均可下载测试;方式二: 1、开发者线下用户群分享AG生成的测试链接; 2、累计下载次数未达上限时,任何用户点击链接,均可拉起测试版本详情页下载安装

    1)上架应用市场,公开测试可转全网发布或者分阶段发布;2)任何人都可以参与测试,可以获得来自不同背景、技能水平和地理位置的不同用户的真实反馈。

    企业内部分发(inhouse)

    企业内部员工

    暂无限制

    1、将编译得到的各个HAP/HSP包上传至您的服务器或第三方云上,获取HAP/HSP包下载URL,下载URL必须以“https”开头;2、使用该URL构造DeepLink链接(比如嵌入到H5页面)来拉起应用下载安装

    1)不需要上架AG; 不需要通过AG审核流程,可以更快地迭代和更新应用程序,企业可以直接控制应用的安装、更新和卸载;

    非公开发布

    企业内部员工

    一个账号最多可以申请100个应用

    非公开发布仅可通过链接形式查看应用详情,以及下载安装和更新。

    1)上架应用市场,以非公开方式在华为应用市场上发布,使其仅可通过链接被用户发现;2)账号必须是企业类型的主账号;3)需要填写非公开发布报名表,报名表限制填写次数10次;4)一旦申请为非公开发布,无法再次更改为公开发布。

    内部测试(ad hoc)

    开发团队内共享应用程序、或进行内部测试

    支持设备数上限100台

    1、将编译得到的各个HAP/HSP包上传至您的服务器或第三方云上,获取HAP/HSP包下载URL,下载URL必须以“https”开头;2、使用该URL构造DeepLink链接(比如嵌入到H5页面)来拉起应用下载安装

    1)内部测试profile配置是受限开发需要申请白名单;2)不需要上架应用市场;开发者可以快速地将应用发送给指定的人员进行测试安装,无需通过应用市场的审核流程,暂不支持元服务。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐