Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
343 changes: 343 additions & 0 deletions docs/developer-guide/app-store/app-review-guidelines.md

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions docs/developer-guide/app-store/publish-app.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
title: 发布应用
description: 了解如何在 Halo 应用市场创建应用并提交审核
---

Halo 官方应用市场支持开发者自助创建应用并提交首次上架审核。当前自助上架流程主要面向免费插件和主题;付费上架、平台代收、结算、分账等能力暂未开放。

## 申请成为开发者

上架应用前,你需要使用已完成邮箱验证的 Halo 官网账号申请成为应用市场开发者。申请时需要填写开发者资料,并阅读和同意当前开发者协议。申请通过后,你可以进入开发者中心创建和管理自己的应用。

如果申请被驳回,可以根据审核意见修改资料后重新提交。待审核的开发者申请可以取消,取消后也可以重新提交。

## 首次上架流程

首次上架应用需要经过应用级审核。建议按以下顺序准备:

1. 在开发者中心创建应用,填写应用类型、名称、简介、Logo、截图、README、许可证、外部链接、开源仓库或支持地址等上架信息。
2. 创建首个版本,填写版本号、Halo 兼容范围和版本说明。版本号应符合 Semantic Versioning 规范,Halo 兼容范围应是合法的 Semantic Versioning range。
3. 上传版本制品。插件通常应上传可安装的 JAR 包,主题通常应上传可安装的 ZIP 包。
4. 对照[应用市场审核指南](./app-review-guidelines.md)完成提交前自查。
5. 提交审核,阅读并同意应用上架协议;如应用需要测试账号、演示环境、特殊安装步骤或重新提交说明,可以在提交说明中补充。

首次提交审核前,应用应仍处于草稿状态,并且仅保留一个初始草稿版本。该版本至少需要包含一个上传完成的制品。

## 审核期间

提交审核后,平台会保存提交当时的应用信息、README、初始版本、版本说明、制品和协议确认信息作为审核快照。审核期间如需修改应用、版本、说明或制品,应取消审核、等待驳回后重新提交,或按审核意见处理。

审核通过后,应用会发布到应用市场。审核被拒时,审核意见可能引用[应用市场审核指南](./app-review-guidelines.md)中的条款编号,你需要按对应条款整改后重新提交。即使应用已经通过审核,后续版本、重大更新或出现风险、投诉时,仍可能被重新审核、暂停分发或下架。

## 上架要求

在你决定上架到 Halo 应用市场前,请确保已经完成以下要求:

1. 插件必须正确设置 `plugin.yaml` 中的 logo 字段,不能是插件开发模板中默认的 Halo 图标。
2. 主题和插件的描述文件中必须正确设置 `homepage`、`issues`、`license` 字段,详细解释:
1. `homepage`:应用的主页,可以填写为 GitHub 仓库地址或者 Halo 应用市场的应用详情页地址。
2. `issues`:应用的反馈地址,可以填写为 GitHub 仓库的 issues 地址。
3. `license`:应用的发行许可证。
3. 应用必须编写介绍和使用文档。
4. 应用如果是基于其他程序开发的,需要保证许可证兼容。
5. 应用的截图、说明、外部链接、隐私说明、第三方服务说明和商业限制应真实准确,并与应用实际功能保持一致。
6. 应用不得包含恶意代码、未披露数据收集、隐藏远程执行、高危安全漏洞或违法违规内容。

更多审核规则请查阅[应用市场审核指南](./app-review-guidelines.md)。

## 后续版本和自动发布

应用首次审核通过后,开发者可以为自己拥有的应用发布后续版本。后续版本仍应符合[应用市场审核指南](./app-review-guidelines.md),但当前流程不会为每个后续版本创建独立审核记录。

如果你希望在 GitHub 发布 Release 后自动同步到应用市场,可以修改 CI / CD 工作流:

1. 移除 `skip-appstore-release: true` 配置,或者设置为 `false`。
2. 在 `with` 中添加 `app-id` 配置,值为应用市场的应用 ID。
3. 在 Halo 官网的个人中心创建一个新的[个人令牌](https://www.halo.run/uc/profile?tab=pat),勾选 **应用市场开发者 > 版本管理**。
4. 在 GitHub 仓库的设置 -> `Secrets and variables` 中新建一个 Secret,名称为 `HALO_PAT`,值为你在 Halo 官网创建的个人令牌。
27 changes: 1 addition & 26 deletions docs/developer-guide/appendix/publish-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,32 +104,7 @@ jobs:

## 发布到应用市场

Halo 的官方应用市场接受新应用的提交,但由于应用市场仅支持作者自行管理应用以及版本,还不支持自助新建应用并发布,所以发布到应用市场需要按照以下流程:

1. 向 [halo-sigs/awesome-halo](https://github.com/halo-sigs/awesome-halo) 发起一个 PR 提交应用的信息,并勾选 **上架到 Halo 应用市场**。
2. Halo 官方人员会审核你的应用信息,审核通过后会上架到应用市场。
3. 如果你需要自行管理应用以及版本,可以在 PR 描述信息中提供 [Halo 官网](https://www.halo.run/)的用户名,我们会在应用发布之后将管理权限授予你。

### 要求

在你决定上架到 Halo 应用市场前,请确保已经完成以下要求:

1. 插件必须正确设置 `plugin.yaml` 中的 logo 字段,不能是插件开发模板中默认的 Halo 图标。
2. 主题和插件的描述文件中必须正确设置 `homepage`、`issues`、`license` 字段,详细解释:
1. `homepage`:应用的主页,可以填写为 GitHub 仓库地址或者 Halo 应用市场的应用详情页地址。
2. `issues`:应用的反馈地址,可以填写为 GitHub 仓库的 issues 地址。
3. `license`:应用的发行许可证。
3. 应用必须编写介绍和使用文档。
4. 应用如果是基于其他程序开发的,需要保证许可证兼容。

### 自动发布

当你有了应用的管理权限之后,你可以修改上述 CI / CD 工作流,以实现在 GitHub 发布 Release 之后自动同步到应用市场,以下是具体步骤:

1. 移除 `skip-appstore-release: true` 配置,或者设置为 `false`。
2. 在 `with` 中添加 `app-id` 配置,值为应用市场的应用 ID。
3. 在 Halo 官网的个人中心创建一个新的[个人令牌](https://www.halo.run/uc/profile?tab=pat),勾选 **应用市场开发者 > 版本管理**。
4. 在 GitHub 仓库的设置 -> `Secrets and variables` 中新建一个 Secret,名称为 `HALO_PAT`,值为你在 Halo 官网创建的个人令牌。
Halo 官方应用市场支持开发者自助创建应用并提交首次上架审核。具体流程请查阅[应用市场 / 发布应用](../app-store/publish-app.md),提交前请对照[应用市场审核指南](../app-store/app-review-guidelines.md)完成自查。

## 版本控制 {#version-control}

Expand Down
11 changes: 11 additions & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,17 @@ module.exports = {
"developer-guide/restful-api/api-client",
],
},
{
type: "category",
label: "应用市场",
link: {
type: "generated-index",
},
items: [
"developer-guide/app-store/publish-app",
"developer-guide/app-store/app-review-guidelines",
],
},
"developer-guide/form-schema",
"developer-guide/annotations-form",
{
Expand Down
Loading
Loading