{"id":21358879,"url":"https://github.com/gameframex/com.gameframex.unity.getchannel","last_synced_at":"2025-07-13T00:34:20.111Z","repository":{"id":102917882,"uuid":"204669505","full_name":"GameFrameX/com.gameframex.unity.getchannel","owner":"GameFrameX","description":"渠道获取","archived":false,"fork":false,"pushed_at":"2024-07-23T10:09:14.000Z","size":803,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-07-23T11:57:25.637Z","etag":null,"topics":["androidchannel","channel","channel-access","channel-coding","channel-manager","channel-pruning","channeladam","channels","channels-api","channelx","channely","ioschannel","unity","unity-3d","unity-asset","unity-scripts","unity3d","unity3d-plugin"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GameFrameX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-27T09:34:57.000Z","updated_at":"2024-07-23T11:57:33.353Z","dependencies_parsed_at":null,"dependency_job_id":"faeee3ff-76c4-4795-90f7-5687a5154994","html_url":"https://github.com/GameFrameX/com.gameframex.unity.getchannel","commit_stats":null,"previous_names":["alianblank/com.alianblank.blankgetchannel","alianblank/com.alianblank.gameframex.unity.getchannel","gameframex/com.gameframex.unity.getchannel"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.getchannel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.getchannel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.getchannel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.getchannel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameFrameX","download_url":"https://codeload.github.com/GameFrameX/com.gameframex.unity.getchannel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225847390,"owners_count":17533626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["androidchannel","channel","channel-access","channel-coding","channel-manager","channel-pruning","channeladam","channels","channels-api","channelx","channely","ioschannel","unity","unity-3d","unity-asset","unity-scripts","unity3d","unity3d-plugin"],"created_at":"2024-11-22T05:22:44.907Z","updated_at":"2025-07-13T00:34:20.103Z","avatar_url":"https://github.com/GameFrameX.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unity 获取分发渠道号 (iOS 和 Android)\n\n本插件用于在 Unity 项目中获取 iOS 和 Android 平台的分发渠道号。它是 `https://github.com/AlianBlank/GameFrameX` 项目的一个子模块。\n\n## 主要功能\n\n- 支持 iOS 和 Android 双平台。\n- 提供简单的 API 来获取预设的渠道信息。\n- iOS 平台在构建时自动在 `Info.plist` 中添加默认渠道号 (如果未设置)。\n\n## 如何安装\n\n您可以通过以下三种方式将此插件添加到您的 Unity 项目中：\n\n1.  **通过 `manifest.json` 添加依赖：**\n    在项目 `Packages` 目录下的 `manifest.json` 文件的 `dependencies` 节点中添加如下内容：\n    ```json\n    {\n      \"dependencies\": {\n        \"com.gameframex.unity.getchannel\": \"https://github.com/gameframex/com.gameframex.unity.getchannel.git\",\n        // ... 其他依赖\n      }\n    }\n    ```\n\n2.  **通过 Unity Package Manager 使用 Git URL：**\n    在 Unity 编辑器中，打开 `Window -\u003e Package Manager`。\n    点击左上角的 `+` 号按钮，选择 `Add package from git URL...`。\n    输入以下 URL 并点击 `Add`:\n    ```\n    https://github.com/gameframex/com.gameframex.unity.getchannel.git\n    ```\n\n3.  **直接下载或克隆仓库：**\n    将此仓库下载或克隆到您 Unity 项目的 `Packages` 目录下。Unity 会自动识别并加载该插件。\n\n## 如何使用\n\n### 1. 获取渠道号\n\n在您的 C# 脚本中，使用 `BlankGetChannel.GetChannelName(string key)` 方法来获取渠道号。参数 `key` 是您在对应平台设置渠道号时使用的键名。\n\n**示例代码：**\n\n```csharp\nusing UnityEngine;\n\npublic class MyGameScript : MonoBehaviour\n{\n    void Start()\n    {\n        // 假设您在 AndroidManifest.xml 或 Info.plist 中使用的键是 \"channelName\"\n        string channel = BlankGetChannel.GetChannelName(\"channelName\"); \n        Debug.Log(\"当前渠道号: \" + channel);\n\n        // 示例中使用的键是 \"appchannel\"\n        // string exampleChannel = BlankGetChannel.GetChannelName(\"appchannel\");\n        // Debug.Log(\"示例渠道号: \" + exampleChannel);\n    }\n}\n```\n\n### 2. iOS 平台设置\n\n对于 iOS 平台，插件包含一个构建后处理器 (`PostProcessBuildHandler.cs`)。如果在构建时项目的 `Info.plist` 文件中：\n-   **没有** 名为 `channel` 的键，该脚本会自动添加一个键为 `channel`，值为 `default` 的条目。\n-   **已经存在** 名为 `channel` 的键，则不会进行任何修改。\n\n您可以在 Xcode 项目的 `Info.plist` 文件中修改 `channel` 的值，或者在调用 `BlankGetChannel.GetChannelName()` 时使用您自定义的键名（确保该键名存在于 `Info.plist` 中）。\n\n### 3. Android 平台设置\n\n对于 Android 平台，您需要在 `AndroidManifest.xml` 文件中定义渠道信息。通常，这是通过在 `\u003capplication\u003e` 标签内添加 `\u003cmeta-data\u003e` 标签来完成的。\n\n例如，如果您想使用键名 `channelName` 和值为 `myCustomChannel`：\n\n```xml\n\u003capplication ...\u003e\n    \u003cactivity ...\u003e\n        ...\n    \u003c/activity\u003e\n\n    \u003cmeta-data\n        android:name=\"channelName\"\n        android:value=\"myCustomChannel\" /\u003e\n\n    \u003c!-- 其他 meta-data --\u003e\n\u003c/application\u003e\n```\n\n然后，您可以在 C# 代码中通过 `BlankGetChannel.GetChannelName(\"channelName\")` 来获取这个值 (`myCustomChannel`)。\n\n## 注意事项\n\n-   确保您在调用 `BlankGetChannel.GetChannelName(string key)` 时使用的 `key` 与您在 `Info.plist` (iOS) 或 `AndroidManifest.xml` (Android) 中设置的键名一致。\n-   插件包含 `link.xml` 文件以防止代码被 Unity 的代码裁剪功能移除。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.getchannel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.getchannel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.getchannel/lists"}