# 开始步骤

> Set up Push Notifications for your project.

要开始使用，您需要满足以下条件：

* 注册 UGS，包括 Analytics。
* 将后台项目关联到 Unity 编辑器项目。
* 在游戏代码中初始化 UGS。

## 注册##sign-up

为了使用 Push Notifications，您需要注册 Unity Analytics，它是 Unity Gaming Services（Unity 游戏服务）(UGS) 的一部分。如需了解更多有关 Analytics 定价的信息，请参阅[此处](https://unity.com/solutions/gaming-services/pricing)。

如果您还没有 Unity 帐户，[创建一个帐户](/services/getting-started.md)并[创建一个新项目](/services/getting-started.md#create-a-project-in-the-unity-dashboard)，以注册使用 Unity Gaming Services（Unity 游戏服务）。

> **Note:**
>
> 重要：只有[组织所有者](/cloud/organizations/members-groups-roles.md)才能注册使用 Analytics。

1. 登录 [Unity Services Dashboard](https://dashboard.unity3d.com/)。
2. 选择侧面板中的 **Explore Services**（探索服务）。
3. 选择顶部横幅中的 **Sign Up**（注册）并按照说明操作。
4. 查看 [Analytics 文档](/analytics.md)。

## 关联您的项目##link-your-project

要使用 Unity Push Notifications 服务，您需要在 Unity 编辑器中通过 Project ID 将项目关联到云项目。通过以下步骤获取 Project ID。

1. 在 Unity 编辑器菜单中，转到 **Edit**（编辑）> **Project Settings...**（项目设置...）以打开 **Services**（服务）选项卡。
2. 如果您尚未登录您的 Unity ID，请创建新的 Unity ID 或者登录。
3. 如果您想创建新的项目，请选择您的组织，然后选择 **Create（创建）**。如果您想关联到现有的项目，请选择 **I already have a Unity Project ID（我已经有 Unity Project ID）**。
4. 从下拉选单中选择您的组织和项目，然后选择 **Link（关联）**。

您可以在 Services（服务）窗口的 **Settings**（设置） 选项卡中找到 Project ID。

## 集成##integration

> **Note:**
>
> Push Notifications SDK 支持 iOS 10+ 和 Android SDK >= 26 (Oreo)。

集成步骤概要：

1. **集成 SDK**：集成包，注册 Push Notifications，并输入设置/密钥。
2. **上传密钥**：找到私钥（Firebase 和 Apple）并将其上传到 Unity Dashboard（Unity 后台）。
3. **测试集成**：向设备发送测试通知以确保集成正确无误。
4. **创建通知广告系列**：在 Unity Dashboard（Unity 后台）上创建您的第一个通知并设置发送计划。

### 1.集成 Push Notifications SDK##1-integrate-the-push-notifications-sdk

#### 安装 Push Notifications SDK##install-the-push-notifications-sdk

> **Note:**
>
> 默认情况下，Push Notifications SDK 在具体 Unity 编辑器版本的 Package Manager（包管理器）中可能不可见。

您可以通过以下三种方式之一在 Unity 项目中安装 Push Notifications SDK：

##### 1.使用 Unity Registry（Unity 注册表）导入##1-import-using-the-unity-registry

1. 从 **Edit**（编辑）> **Project Settings**（项目设置）打开 **Project Settings**（项目设置）。
2. 从 **Package Manager**（包管理器）> **Advanced Settings**（高级设置）> **Enable Pre-release Packages**（启用预发布包）启用预发布包。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/enable-prerelease.png)
3. 从 **Component**（组件）> **Package Manager**（包管理器）打开 Package Manager（包管理器）。
4. 在 **Packages**（包）下拉选单下，选择 `Unity Registry`。
5. 在右上角的搜索栏中搜索 `Push Notifications` 以查看 Push Notifications 包。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/package-manager-sdk.png)
6. 选择右上角的 `Install`。

##### 2.按名称导入##2-import-by-name

1. 通过 **Component**（组件）> **Package Manager**（包管理器）打开 Package Manager（包管理器）。
2. 选择左上角的 **添加** (**+**) 按钮以添加新包，然后选择 **Add package by name**（按名称添加包）。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/package-manager.png)
3. 输入 com.unity.services.push-notifications 作为 Git URL 并单击 Add（添加）。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/unity-services.png)

##### 3.使用“manifest.json”文件导入##3-import-using-the-manifestjson-file

1. 复制以下代码片段并调整包版本：
   ```json
   "com.unity.services.push-notifications": "4.0.0-pre.1"
   ```

2. 在文件资源管理器中转到项目文件夹的根目录，然后转到包文件夹 `Packages/manifest.json`。

3. 在 `manifest.json` 文件的末尾添加复制的代码，并在需要时在末尾附加一个 `,` 符号。

#### 注册 Push Notifications##register-for-push-notifications

要接收推送通知，您的应用需要注册 Push Notifications。如需了解详细信息，请参阅[注册 Push Notifications](./sdk.md#registering-for-push-notifications)。

### 2.上传服务密钥##2-upload-your-service-keys

要从 Unity Gaming Services（Unity 游戏服务）后台发送通知，您需要从适用于 Android 的 **Firebase** 和适用于 iOS 的 **Apple 开发者帐户** 上传服务密钥。

#### Google##google

在向 Android 设备发送通知之前，您需要将 Firebase 服务帐户密钥添加到 Unity 项目设置中。对于您希望测试或使用通知的游戏的 **每个** UGS 环境，都需要完成此操作。

1. 转到 [Firebase Console（Firebase 控制台）](https://console.firebase.google.com/)，然后选择您的项目。
2. 转到 Project Settings（项目设置），然后选择顶部的 **Service accounts**（服务帐户）。
3. 选择 **Create service account**（创建服务帐户）。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/create-service-account.png)
4. 选择 **Generate new private key**（生成新的私钥）。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/private-key.png)
5. 选择 **Generate key**（生成密钥）下载密钥文件。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/generate-key.png)
6. 在 Unity Dashboard（Unity 后台）中转到项目的 **Liveops** > **Push Notifications** > **Settings**（设置），找到 Google Keys（Google 密钥）部分，然后选择“Google Key（Google 密钥）”行中的 `Add Key` 或编辑图标。
7. 上传在前面步骤中创建的私钥，然后选择 **Finish**（完成）。

> **Note:**
>
> 出于安全原因，如果您重新进入编辑设置页面，此文件将不可见。


**Frame:**
![](/api/media?file=/push-notifications/media/images/google-key-upload.png)

#### Apple##apple

在向 Apple 设备发送通知之前，您需要将 Apple 密钥、项目和帐户详细信息添加到 Unity 项目设置中。您可以在 Unity Dashboard（Unity 后台）中的游戏、环境以及开发和生产构建之间重复使用相同的 Apple 密钥（如果已有此密钥，请转到步骤 8）。对于您希望测试或使用通知的游戏的**每个** UGS 环境，都需要完成此操作。

1. 登录您的 [Apple Developer](https://developer.apple.com/) Console。

2. 转到“Certificates, Identifiers & Profiles（证书、标识符和配置文件）”页面，然后选择 **Keys**（密钥）。

3. 选择 **+** 以创建新的密钥。

4. 为您的密钥命名，并启用“Apple Push Notifications service (APNs)（Apple 推送通知服务 (APN)）”选项以启用通知，然后选择 **Continue**（继续）。请注意，每个帐户只能为两个密钥启用此功能。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/apple-register-key.png)

5. 在下一页上选择 **Register（注册）** 进行确认。

6. 下载生成的密钥并记下提供的密钥 ID，因为稍后会用到它。密钥文件只能下载一次；如果丢失，则需要吊销并重新生成。


   **Frame:**
   ![](/api/media?file=/push-notifications/media/images/apple-key.png)

7. 在 Unity Dashboard（Unity 后台）中转到项目的 **Player Engagement**（玩家参与度）> **Notifications**（通知）> **Settings**（设置），单击顶部设置横幅中的 `Set Up Keys` 链接，然后选择“Apple Key（Apple 密钥）”行中的 `Add Key` 或编辑图标。

8. 有五个字段需要填写：

* **Key**（密钥）：上传在前面步骤中创建的密钥。
* **Key ID**（密钥 ID）：这是在注册密钥时提供的 ID，也可以通过在 Apple Developer Console 中选择相应密钥来获取。
* **Team ID**（团队 ID）：这是显示在 Apple Developer Console 上的帐户名称下的团队 ID。
* **Topic ID**（主题 ID）：填入游戏的 Bundle ID。此 ID 需要与 Apple Developer Console“Certificates, Identifiers & Profiles（证书、标识符和描述文件）”页面的“Identifiers（标识符）”中的 ID 完全匹配。
* **Sandbox**（沙盒）：如果要从游戏的开发/调试构建中向玩家发送消息，请将 Sandbox（沙盒）值设置为 **True**。如果要在生产构建中向用户发送消息，请设置为 **False**。


  **Frame:**
  ![](/api/media?file=/push-notifications/media/images/apple-sandbox.png)

9. 选择 **Finish**（完成）。出于安全原因，如果您重新进入编辑设置页面，此文件将不可见。

10. 在 XCODE 中构建应用程序时，请确保为应用提供“Remote Notification（远程通知）”功能，以便应用可以接收通知。


**Frame:**
![](/api/media?file=/push-notifications/media/images/xcode-build.png)

如果不这样做，您将在运行时收到以下错误消息：

`Failed to register for remote notifications: no valid “aps-environment” entitlement string found for application`

### 3.测试集成##3-test-your-integration

按照[测试指南](./sdk.md#testing-the-sdk-integration)测试应用中的 Push Notification 集成。

如果在测试时遇到任何问题，请按照[故障排除指南](./troubleshooting.md)调试常见问题。

### 4.创建通知广告系列##4-create-a-notification-campaign

现在，您可以[创建第一个通知广告系列](./use-push-notifications.md)以开始使用 Push Notifications。
