# com.gameframex.unity.getchannel
**Repository Path**: gameframex/com.gameframex.unity.getchannel
## Basic Information
- **Project Name**: com.gameframex.unity.getchannel
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-07-23
- **Last Updated**: 2026-04-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# Unity 多平台渠道号获取
[](https://github.com/gameframex/com.gameframex.unity.getchannel)
[](https://unity3d.com/get-unity/download)
[](LICENSE.md)
[](https://gameframex.doc.alianblank.com)
**独立游戏前后端一体化解决方案 · 独立游戏开发者的圆梦大使**
[📖 文档](https://gameframex.doc.alianblank.com) • [🚀 快速开始](#安装) • [💬 QQ群: 467608841](https://qm.qq.com/cgi-bin/qm/qr?k=sYFd1nv6m2KZIWFLorZ5pBR0AE5ZhbuL&jump_from=webapi&authKey=oCu+uoL3n35fT5SEt7iLgGtROPxh31n/rHUxRlp0w1f+j38W4tKBuWyRH3KEdwHN)
---
🌐 **语言**: [English](./README.md) | [**简体中文**](./README.zh-CN.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md)
---
本插件用于在 Unity 项目中获取多平台的分发渠道号(支持 iOS、tvOS、visionOS、Android、Editor、PC、WebGL、UWP 和主机平台)。它是 `https://github.com/GameFrameX/GameFrameX` 项目的一个子模块。
## 主要功能
- **多平台支持**:iOS、tvOS、visionOS、Android、Editor、PC(Windows/Mac/Linux)、WebGL、UWP、PS4、PS5、Xbox One、Nintendo Switch。
- 提供简单的 API 来获取预设的渠道信息。
- iOS 平台在构建时自动在 `Info.plist` 中添加默认渠道号(如果未设置)。
## 安装
您可以通过以下三种方式将此插件添加到您的 Unity 项目中:
1. **通过 `manifest.json` 添加依赖:**
在项目 `Packages` 目录下的 `manifest.json` 文件的 `dependencies` 节点中添加如下内容:
```json
{
"dependencies": {
"com.gameframex.unity.getchannel": "https://github.com/gameframex/com.gameframex.unity.getchannel.git",
// ... 其他依赖
}
}
```
2. **通过 Unity Package Manager 使用 Git URL:**
在 Unity 编辑器中,打开 `Window -> Package Manager`。
点击左上角的 `+` 号按钮,选择 `Add package from git URL...`。
输入以下 URL 并点击 `Add`:
```
https://github.com/gameframex/com.gameframex.unity.getchannel.git
```
3. **直接下载或克隆仓库:**
将此仓库下载或克隆到您 Unity 项目的 `Packages` 目录下。Unity 会自动识别并加载该插件。
## 使用方法
### 1. 获取渠道号
在您的 C# 脚本中,使用 `BlankGetChannel.GetChannelName(string key)` 方法来获取渠道号。参数 `key` 是您在对应平台设置渠道号时使用的键名。
**示例代码:**
```csharp
using UnityEngine;
public class MyGameScript : MonoBehaviour
{
void Start()
{
// 获取默认渠道号(键名为 "channel")
string channel = BlankGetChannel.GetChannelName();
Debug.Log("当前渠道号: " + channel);
// 获取指定键的渠道号
string customChannel = BlankGetChannel.GetChannelName("channelName");
Debug.Log("自定义渠道号: " + customChannel);
// 获取渠道号,并指定默认值
string subChannel = BlankGetChannel.GetChannelName("sub_channel", "unknown");
Debug.Log("子渠道号: " + subChannel);
}
}
```
### 2. iOS / tvOS / visionOS 平台设置
对于 iOS、tvOS 和 visionOS 平台,插件包含一个构建后处理器 (`PostProcessBuildHandler.cs`)。如果在构建时项目的 `Info.plist` 文件中:
- **没有** 名为 `channel` 的键,该脚本会自动添加一个键为 `channel`,值为 `default` 的条目。
- **已经存在** 名为 `channel` 的键,则不会进行任何修改。
您可以在 Xcode 项目的 `Info.plist` 文件中修改 `channel` 的值,或者在调用 `BlankGetChannel.GetChannelName()` 时使用您自定义的键名(确保该键名存在于 `Info.plist` 中)。
**Info.plist 配置示例:**
```xml
channel
ios_cn_taptap
sub_channel
beta
```
### 3. Android 平台设置
对于 Android 平台,您需要在 `AndroidManifest.xml` 文件中定义渠道信息。通常,这是通过在 `` 标签内添加 `` 标签来完成的。
例如,如果您想使用键名 `channel` 和值为 `android_cn_taptap`:
```xml
...
```
然后,您可以在 C# 代码中通过 `BlankGetChannel.GetChannelName("channel")` 来获取这个值。
### 4. Editor / PC / WebGL / UWP / 主机平台设置
对于 Editor、PC(Windows/Mac/Linux)、WebGL、UWP、PS4、PS5、Xbox One、Nintendo Switch 等平台,您需要在 Unity 项目的 `Resources` 文件夹下创建一个名为 `application_config.txt` 的文本文件。
**application_config.txt 文件格式示例:**
```
channel=editor_cn_test
sub_channel=beta
other_key=other_value
```
每行格式为:`键名=值`
插件会自动读取该文件中的键值对,并缓存起来供后续使用。
## 注意事项
- 确保您在调用 `BlankGetChannel.GetChannelName(string key)` 时使用的 `key` 与您在对应平台的配置文件中设置的键名一致:
- **iOS / tvOS / visionOS**:`Info.plist` 文件
- **Android**:`AndroidManifest.xml` 文件中的 `` 标签
- **Editor / PC / WebGL / UWP / 主机平台**:`Resources/application_config.txt` 文件
- 插件包含 `link.xml` 文件以防止代码被 Unity 的代码裁剪功能移除。
- `GetChannelName()` 方法会缓存渠道信息,避免重复读取配置文件,提高性能。