发行主体与渠道
本指南介绍如何在 OpenDev 中创建和管理发行主体(Publishers)和渠道(Channels),以组织您的分发策略。
概述
发行主体
发行主体代表发布您应用的实体:
- 公司或个人
- 应用商店账号
- 分发合作伙伴
渠道
渠道代表分发路径:
- 应用商店(Google Play、App Store)
- 网页分发
- 桌面端下载
- 区域变体
发行主体
理解发行主体
发行主体包含:
- 发行主体名称和标识符
- 联系信息
- 关联的 OAuth 配置
- 平台凭证
创建发行主体
- 前往侧边栏的 发行主体
- 点击 创建发行主体
- 填写详情:
| 字段 | 必填 | 说明 |
|---|---|---|
| 发行主体 ID | 是 | 唯一标识符 |
| 名称 | 是 | 显示名称 |
| 描述 | 否 | 内部备注 |
| 联系邮箱 | 否 | 发行主体联系方式 |
| 网站 | 否 | 发行主体网站 |
- 点击 创建
发行主体配置
{
"publisherId": "acme_corp",
"name": "ACME Corporation",
"description": "主要发行实体",
"contact": {
"email": "publishing@acme.com",
"website": "https://acme.com"
},
"platforms": {
"googlePlay": {
"developerAccount": "ACME Corp",
"serviceAccountEmail": "acme@project.iam.gserviceaccount.com"
},
"appStore": {
"teamId": "XXXXXXXXXX",
"providerId": "12345678"
}
}
}
管理发行主体
编辑发行主体
- 点击列表中的发行主体
- 点击 编辑
- 修改所需字段
- 点击 保存
删除发行主体
- 点击发行主体
- 点击 删除
- 确认删除
警告: 无法删除与活跃渠道关联的发行主体。
渠道
理解渠道
渠道定义了:
- 分发平台
- 区域配置
- OAuth 提供商映射
- 支付设置
渠道类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 移动商店 | 官方应用商店 | Google Play、App Store |
| 网页 | 网页分发 | 您的网站、PWA |
| 桌面端 | 桌面端分发 | Steam、直接下载 |
| 替代商店 | 第三方商店 | Samsung、Amazon |
| 区域版 | 特定市场 | 中国版、日本版 |
创建渠道
- 前往侧边栏的 渠道
- 点击 创建渠道
- 填写详情:
| 字段 | 必填 | 说明 |
|---|---|---|
| 渠道 Key | 是 | 唯一标识符 |
| 名称 | 是 | 显示名称 |
| 发行主体 | 是 | 关联的发行主体 |
| 平台 | 是 | 目标平台 |
| 描述 | 否 | 渠道用途 |
- 点击 创建
渠道配置
{
"channelKey": "google_play_global",
"name": "Google Play Global",
"publisherId": "acme_corp",
"platform": "android",
"region": "global",
"oauth": {
"providers": ["google", "facebook"],
"appId": "com.acme.myapp"
},
"payment": {
"enabled": true,
"providers": ["google_play"]
}
}
OAuth 渠道
理解 OAuth 渠道
OAuth 渠道将认证提供商与分发渠道关联:
- 可用的登录方式
- 每个渠道的提供商凭证
- 渠道特定的配置
创建 OAuth 渠道
- 前往侧边栏的 OAuth 渠道
- 点击 创建 OAuth 渠道
- 配置提供商:
| 字段 | 必填 | 说明 |
|---|---|---|
| 提供商 | 是 | OAuth 提供商(Google、Facebook 等) |
| Client ID | 是 | 提供商应用 ID |
| Client Secret | 是 | 提供商密钥 |
| Scopes | 是 | 请求的权限 |
| 回调 URL | 是 | OAuth 回调地址 |
OAuth 渠道示例
Google OAuth 渠道
{
"provider": "google",
"clientId": "xxxxx.apps.googleusercontent.com",
"clientSecret": "GOCSPX-xxxxx",
"scopes": ["email", "profile"],
"callbackUrl": "https://yourdomain.com/auth/callback"
}
Apple 登录渠道
{
"provider": "apple",
"clientId": "com.yourapp.web",
"teamId": "XXXXXXXXXX",
"keyId": "XXXXXXXXXX",
"privateKey": "-----BEGIN PRIVATE KEY-----\n...",
"scopes": ["email", "name"]
}
将渠道绑定到应用
在应用设置中
- 前往您的应用详情
- 点击 渠道 标签页
- 点击 绑定渠道
- 选择要关联的渠道
- 点击 保存
渠道绑定选项
| 选项 | 说明 |
|---|---|
| 所有渠道 | 应用在所有渠道上可用 |
| 特定渠道 | 应用仅限选定渠道 |
| 排除渠道 | 应用在某些渠道上不可用 |
配置工作流
典型设置
1. 创建发行主体
└── ACME Corp(主发行主体)
└── ACME Games(游戏部门)
2. 创建渠道
└── google_play_global
└── app_store_global
└── web_direct
└── china_domestic
3. 创建 OAuth 渠道
└── Google OAuth(全平台)
└── Apple Sign In(iOS)
└── 微信(中国区)
4. 绑定到应用
└── MyApp → google_play, app_store, web
└── MyGame → google_play, app_store
└── MyApp China → china_domestic
最佳实践
发行主体组织
按业务单元:
├── acme_main(主公司)
├── acme_games(游戏工作室)
└── acme_enterprise(B2B 产品)
按区域:
├── acme_global(全球)
├── acme_china(中国实体)
└── acme_japan(日本实体)
渠道命名
平台 + 区域:
├── google_play_global
├── google_play_china
├── app_store_global
├── app_store_china
├── web_global
└── web_china
OAuth 策略
- 统一提供商 — 尽可能跨渠道使用相同的 OAuth 应用
- 区域提供商 — 在需要的地方添加区域特定的提供商(微信、QQ)
- 备用选项 — 始终提供邮箱/密码选项
- 一致体验 — 跨渠道使用相同的用户 ID
故障排查
OAuth 不工作
可能原因:
- 错误的 Client ID/Secret
- 错误的回调 URL
- 缺少 Scopes
解决方案:
- 在提供商控制台验证凭证
- 检查回调 URL 是否完全匹配
- 检查 Scope 权限
渠道未找到
可能原因:
- 渠道 Key 拼写错误
- 渠道未创建
- 大小写敏感问题
解决方案:
- 在仪表盘中验证渠道存在
- 检查 Key 是否完全匹配(区分大小写)
- 检查应用渠道绑定