> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK Generator 快速入门

> 在 Windows 上设置 Node.js、安装 PlayFab SdkGenerator，并使用 Visual Studio 工具从 API JSON 规范生成 PlayFab 客户端 SDK。

SDK Generator 是一个基于 node.js 的程序，它以 PlayFab API 的 JSON 描述作为输入，并用它生成所有需要保持更新的 SDK。SDK Generator 项目还包含所有平台上所有 PlayFab SDK 的源代码。如果您想在 SDK 中进行更改，就应在此处进行。

在您能够调用任何 PlayFab API 之前，必须拥有一个 [PlayFab 开发者账户](https://developer.playfab.com)。

## 先决条件

1. 任意近期版本的 MS-Windows 操作系统。
2. 必须安装 Node.js：[https://nodejs.org/](https://nodejs.org/)
   * node.exe 的位置必须在您的 PATH 环境变量中。默认：C:\Program Files (x86)\nodejs\\
   * 强烈建议您为 Visual Studio 安装 Node.js 工具：[https://beta.visualstudio.com/vs/node-js/](https://beta.visualstudio.com/vs/node-js/)。
3. `SdkGenerator` 需要几个 PlayFab 仓库克隆到本地计算机上，作为 `SdkGenerator` 的同级文件夹。
   * `<parent-folder>/SdkGenerator = <https://github.com/PlayFab/SDKGenerator>`（您正在查看的项目）
   * `<parent-folder>/sdks/<targetSDK>` - 对于您想要生成的每个 SDK，都应先将该目标的 PlayFab 仓库 git-clone 到 "sdks" 子文件夹中。在许多情况下，仓库中包含未被生成的必需文件。
4. `SdkGenerator` 可以配置为从其他克隆到本地计算机上的 PlayFab 仓库读取（作为 SdkGenerator 的同级文件夹）。
   * `<parent-folder>/API_Specs = <https://github.com/PlayFab/api_specs>`

## 使用说明

如果您已安装 Node.js 工具，则可以从 Visual Studio 解决方案构建任何现有的 SDK：[https://github.com/PlayFab/SDKGenerator/blob/master/SDKGenerator.sln](https://github.com/PlayFab/SDKGenerator/blob/master/SDKGenerator.sln)

* 打开解决方案。
* 将项目配置设置为与您希望构建的 SDK 匹配。
* **生成** -> **生成解决方案**。

有许多预构建脚本可以自动构建每个 SDK：[https://github.com/PlayFab/SDKGenerator/tree/master/SDKBuildScripts](https://github.com/PlayFab/SDKGenerator/tree/master/SDKBuildScripts)

* 找到与您希望构建的 SDK 匹配的脚本（例如 unity\_build.bat）。
* 双击该文件。

如果您想构建一个新的 SDK，可能需要根据下一节中的说明构建一个新的 .bat 文件。

最后，您必须提供要生成的目标列表以及生成到的目录。

要手动调用生成器，请在项目根目录打开命令行并输入一个目标。每个目标采用以下形式：

`<targetName>=<targetOutputLocation>`

其中 `<targetName>` 是受支持的 SDK 目标之一，`<targetOutputLocation>` 是用于生成 SDK 的目录路径。

> [!NOTE]
>
> 确保参数与等号之间没有空格。

### API 规范位置

* 您可以选择性地定义一个读取 API 规范信息的位置。
  * `-apiSpecPath []`
    * 如果定义 `-apiSpecPath` 开关但未指定路径，则默认为 `../API_Specs`（相对路径，SdkGenerator 仓库位置的同级目录）。
  * `-apiSpecGitUrl []`
    * 如果定义 `-apiSpecGitUrl` 开关但未指定 URL，则默认为 `<https://raw.githubusercontent.com/PlayFab/API_Specs/master/>`
    * 直接从 GitHub 仓库读取 API\_Specs。
  * `-apiSpecPfUrl []`
    * 如果定义 `-apiSpecPfUrl` 开关但未指定 URL，则默认为 `<https://www.playfabapi.com/apispec/>`
    * 直接从 PlayFab API 服务器读取 API\_Specs。

标志是可选的，可用于生成主机 API。

## 构建新 SDK

在 `SdkGenerator` 中设置新目标相当简单。此示例已添加到 `SdkGenerator` 供参考：[https://github.com/PlayFab/SDKGenerator/tree/master/targets/newTarget](https://github.com/PlayFab/SDKGenerator/tree/master/targets/newTarget)。

* 在 [SdkGenerator/Targets](https://github.com/PlayFab/SDKGenerator/tree/master/targets) 中添加新的子文件夹。
* 向新目标添加一个 "make.js" 文件。
  * 在该文件中实现 `makeClientAPI2`、`makeServerAPI` 和/或 `makeCombinedAPI`，如 [NewTarget 示例](https://github.com/PlayFab/SDKGenerator/blob/master/targets/newTarget/make.js)所示。
  * 或者，您可以使用模板文件和源文件，如 NewTarget 示例中所述。
* 在 [SdkGenerator/SDKBuildScripts](https://github.com/PlayFab/SDKGenerator/tree/master/SDKBuildScripts) 中添加一个新的 bat 文件以生成您的 SDK。

PlayFab 有时会接受新 SDK 的提交。此流程较为繁琐，需要与我们的自动构建和测试系统集成。有关更多信息，请在论坛上与我们联系。

## 故障排除

有关可用 API 的完整列表，请查看 [API 参考](/zh-CN/services/playfab/api-references.md)。

### 联系我们

我们乐于倾听开发者社区的声音！您对我们如何改进产品和服务有什么想法吗？

我们的开发者成功团队可以协助解答任何问题并处理您对 PlayFab 服务的任何反馈。

[论坛、支持和知识库](https://community.playfab.com/)


## Related topics

- [PlayFab 工具和扩展](/zh-CN/services/playfab/sdks/tools/index.md)
- [快速入门](/zh-CN/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [iOS 快速入门](/zh-CN/services/playfab/sdks/c/quickstart-ios.md)
- [Win32 快速入门](/zh-CN/services/playfab/sdks/c/quickstart-win32.md)
- [Android 快速入门](/zh-CN/services/playfab/sdks/c/quickstart-android.md)
