目录

In-house应用发布指导和常见问题分析

问题现象

一般来讲,HarmonyOS应用需要上架应用市场才可以进行安装。对于仅在企业内部分发的应用,如何实现不上架应用市场也能分发?

背景知识

发布In-house应用不属于标准的发布方案,仅允许部分特殊场景的开发者申请。

通过此方式分发,必须使用专用的组织内部发布证书和组织内部发布Profile来编译打包HarmonyOS应用,然后将应用包及应用描述文件上传到您的服务器或第三方云上,用户按指定方式直接下载安装即可。

使用In-house发布前,您需要分别完成账号和应用权限申请。我们将审核贵公司提交的申请信息,并确认非公开发布、定向应用发布、指定设备发布均无法满足您的需求。根据您提交的企业资质和申请理由,华为应用市场保留拒绝您申请的权利。

解决方案

  1. 完成账号的注册和实名认证,获取分发资格。详细的操作步骤可参考准备工作。

    为避免权限冲突,需要重新申请In-house账号,不可与用于上架应用市场的普通开发者账号混用。

    In-house账号用于调试或发布In-house应用,不可用于调试或发布需上架华为应用市场的应用。

  2. 申请In-house发布证书和In-house发布Profile。
  3. 编译打包应用。

    In-house应用仅支持编译HAP和应用内HSP包。

  4. 构建Deeplink实现下载应用。
    • 将编译得到的各个HAP/HSP包上传至您的服务器或第三方云上,获取HAP/HSP包下载URL,下载URL建议以“https”开头。
    • 基于应用信息生成应用描述文件。
    • 将生成的应用描述文件上传至您的服务器或第三方云上,并获取该文件的下载URL。
    • 将应用描述文件URL构建成Deeplink用于下载应用。

      Deeplink仅支持页面点击行为触发拉起,不支持地址栏输入Deeplink拉起或HTML头文件自动拉起。

      仅支持华为浏览器拉起,且从华为浏览器拉起的所有行为,均需判断是否有用户点击行为,确认用户点击才允许拉起。

      Deeplink格式:store://enterprise/manifest?url=https://xxx.xxx/xxx.json5。

    • 服务器提供应用描述文件和安装包的https下载链接,并且下载链接中的域名不支持IP地址。
    • 应用描述文件和安装包的下载链接,均需要支持通过HEAD方式请求返回文件大小。
    • 自签证书需安装对应的CA证书,且有效期不超过13个月,超期请及时更换。
    • 服务器需支持分片下载能力。
  1. 使用过程中可以参考下载错误码和安装错误码进行问题分析。

常见FAQ

Q:应用无法安装,提示:安装包解析失败,无法验证应用。请联系开发者获取更多帮助(错误码:99999),如何排查?

A:可以通过以下两点进行分析:

  1. 检查描述文件的JSON格式是否有误,确保文件内容是JSON格式,无额外字符或者字段。
  2. 检查packageHash值是否正确,确保使用certutil -hashfile PATH SHA256获取,其中PATH表示包路径。

Q:In-house应用,已配置icons链接,为什么下载的时候显示还是默认图标?

A:描述文件中的icons字段中两个图标字段"normal"和"large"链接需一致,且需要以https开头。

Q:In-house应用在编译构建HAP时能否将多个module打包到HAP包中?

A:如果这些module的构建产物是HAP或HSP包,则无法将它们打包进同一个HAP包中。需要单独编译成HAP或HSP包,然后分别配置下载链接、生成应用描述文件并上传至服务器。如果module是har模块,编译时会被应用直接打入包体中,不需要单独编译发布。

Q:在In-house的描述文件和指定设备发布描述文件有什么区别,其中的sign(描述文件签名)字段是否需要配置?

A:In-house的描述文件和指定设备发布的描述文件配置项基本一致。但指定设备发布必须要配置sign(描述文件签名)字段,不配置应用无法下载安装。In-house发布描述文件中sign字段是可选的,不配置不会影响应用下载安装。

Q:In-house应用安装报错:提示无法验证,需要联网验证才可运行。日志信息:{"rtnDesc":"TSMS ts verify failed.","rtnCode":636001},是什么原因?

A:时间未同步导致。证书验证时,需要确保客户端本地时间和服务器时间同步,才可以验证安装。