

Das AWS Mobile SDK for Unity ist jetzt in der enthalten AWS SDK für .NET. Dieses Handbuch bezieht sich auf die archivierte Version des Mobile SDK for Unity. Weitere Informationen finden Sie unter [Was ist das AWS Mobile SDK for Unity?](what-is-unity-plugin.md).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon Simple Notification Service
<a name="sns"></a>

Unter Verwendung von Amazon Simple Notification Service (SNS) und Unity SDK können Sie iOS- und Android-Apps schreiben, die mobile Push-Benachrichtigungen empfangen. Weitere Informationen zu SNS erhalten Sie unter [Amazon Simple Notification Service](https://aws.amazon.com/sns/).

Dieses Thema führt Sie durch die Konfiguration der SNSExample Beispiel-App.unity, des AWS-SDK für Unity, für den Empfang mobiler Push-Benachrichtigungen über Amazon SNS.

Mit dem SNSExample .unity-Beispiel können Sie sowohl iOS- als auch Android-Apps erstellen. Die Konfigurationsschritte unterscheiden sich zwischen iOS und Android. Lesen Sie unten den Abschnitt zur Zielplattform.

## Voraussetzungen
<a name="prerequisites"></a>

Die folgenden Voraussetzungen sind für die Verwendung dieser Lösung erforderlich.

### Festlegen von Berechtigungen für SNS
<a name="set-permissions-for-sns"></a>

Wenn Sie einen Cognito-Identitäten-Pool erstellen, werden zwei IAM-Rollen generiert:
+ Cognito/\$1 <Identity-Pool-Name>Auth\$1 DefaultRole — die Standard-IAM-Rolle für authentifizierte Benutzer
+ Cognito/\$1 <Identity-Pool-Name>Unauth\$1 DefaultRole — die Standard-IAM-Rolle für nicht authentifizierte Benutzer

Sie müssen diesen Rollen Berechtigungen für den Zugriff auf den Service Amazon SNS hinzufügen. So gehen Sie vor:

1. Navigieren Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam/home) und wählen Sie die zu konfigurierende IAM-Rolle.

1. Klicken Sie auf **Richtlinie anhängen**, wählen Sie die Amazon SNSFull Access-Richtlinie aus und klicken Sie auf **Richtlinie anhängen**.

**Anmerkung**  
Die Verwendung von Amazon SNSFull Access in einer Produktionsumgebung wird nicht empfohlen. Wir verwenden es hier, damit Sie schnell loslegen können. Weitere Informationen über das Festlegen von Berechtigungen für eine IAM-Rolle erhalten Sie unter [Overview of IAM Role Permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html).

### iOS-Voraussetzungen
<a name="ios-prerequisites"></a>
+ Mitgliedschaft im Apple iOS Developer Program
+ Generieren einer Signaturidentität
+ Erstellen eines für Push-Benachrichtigungen konfigurierten Bereitstellungsprofils

Sie müssen die App auf einem physischen Gerät ausführen, um Push-Benachrichtigungen zu empfangen. Zum Ausführen der App auf einem Gerät benötigen Sie eine [Apple iOS Developer Program Membership](https://developer.apple.com/programs/ios/). Sobald Sie eine Mitgliedschaft besitzen, können Sie mit Xcode eine Signaturidentität generieren. Weitere Informationen enthält die Dokumentation [App Distribution Quick Start](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839) von Apple. Nun benötigen Sie ein Bereitstellungsprofil, das für Push-Benachrichtigungen konfiguriert ist. Weitere Informationen enthält die Apple-Dokumentation [Configuring Push Notifications](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1).

### Android-Voraussetzungen
<a name="android-prerequisites"></a>
+ Installieren des Android-SDK
+ Installieren des JDK
+ android-support-v4.jar
+ google-play-services.jar

## Konfigurieren der Unity-Beispiel-App für iOS
<a name="configuring-the-unity-sample-app-for-ios"></a>

Öffnen Sie den Unity-Editor und erstellen Sie ein neues Projekt. Importieren Sie das Paket AWS SDK for Unity, indem Sie **Assets**/**Import Package/**Custom Package**** und dann aws-unity-sdk-sns -2.0.0.1.unitypackage auswählen. Stellen Sie sicher, dass alle Elemente im Dialogfeld **Importing Package** ausgewählt sind. Klicken Sie dann auf **Import**.

### Unity-Konfiguration
<a name="unity-configuration"></a>

Führen Sie zum Konfigurieren des Unity-Projekts die folgenden Schritte durch:

1. **Navigieren Sie im Bereich **Projekt** zu **Assets**//**AWSSDK**examples und öffnen Sie die Szene.** SNSExample 

1. Wählen Sie im **Hierarchiebereich** die Option aus SNSExample.

1. Geben Sie im Bereich **Inspector** die Cognito-Identitäten-Pool-ID an.

1. Beachten Sie das Textfeld für **iOS Platform Application ARN**. Die betreffenden Informationen werden Sie später generieren.

1. Wählen Sie **File**/**Build Settings** und klicken Sie im Dialogfeld **Build Settings** auf die Schaltfläche **Add Current** unter dem Listenfeld **Scenes in Build**, um die aktuelle Szene in den Build einzufügen.

1. Wählen Sie unter **Platform (Plattform)** die Option **iOS** aus und klicken Sie auf die Schaltfläche **Player Settings... (Playereinstellungen...)**. Klicken Sie im Bereich **Inspector** des Unity-Editors auf das iPhone-Symbol. Scrollen Sie dann nach unten zum Bereich **Identification (Identifizierung)** und geben Sie einen **Bundle Identifier (Bundle-ID)** an.

### iOS-Konfiguration
<a name="ios-configuration"></a>

Führen Sie die folgenden Schritte zum Konfigurieren des Beispiels mit iOS-spezifischen Einstellungen durch:

1. Navigieren Sie in einem Web-Browser zu [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) und klicken Sie auf **Certificates, Identifiers & Profiles**.

1. Klicken Sie unter **iOS Apps** auf **Identifiers**, klicken Sie oben rechts auf der Web-Seite auf die Plus-Schaltfläche, um eine neue iOS-App-ID hinzuzufügen, und geben Sie eine Beschreibung für die App-ID ein.

1. Scrollen Sie nach unten zum Bereich **Add ID Suffix**, wählen Sie **Explicit App ID** und geben Sie die Bundle-ID ein.

1. Scrollen Sie nach unten zum Bereich **App Services** und wählen Sie **Push Notifications**.

1. Klicken Sie auf die Schaltfläche **Continue**.

1. Klicken Sie auf die Schaltfläche **Submit**.

1. Klicken Sie auf die Schaltfläche **Done**.

1. Wählen Sie die gerade erstellte App-ID und klicken Sie dann auf die Schaltfläche **Edit**.

1. Scrollen Sie nach unten zum Bereich **Push Notifications**.

1. Klicken Sie auf die Schaltfläche **Create Certificate** unter **Development SSL Certificate**.

1. Befolgen Sie die Anweisungen zum Erstellen einer CSR-Anforderung (Certificate Signing Request), laden Sie die Anforderung hoch und laden Sie ein SSL-Zertifikat herunter, das für die Kommunikation mit Apple Notification Service (APNS) verwendet wird.

1. Sobald Sie wieder zurück auf der Webseite **Certificates, Identifiers & Profiles** sind, klicken Sie auf **All** unter **Provisioning Profiles**.

1. Klicken Sie auf die Plus-Schaltfläche oben rechts, um ein neues Bereitstellungsprofil hinzuzufügen.

1. Wählen Sie **iOS App Development** und klicken Sie auf die Schaltfläche **Continue**.

1. Wählen Sie die App-ID und klicken Sie auf die Schaltfläche **Continue**.

1. Wählen Sie das Entwicklerzertifikat und klicken Sie auf die Schaltfläche **Continue**.

1. Wählen Sie das Gerät und klicken Sie auf die Schaltfläche **Continue**.

1. Geben Sie einen Profilnamen ein und klicken Sie auf die Schaltfläche **Generate**.

1. Laden Sie die Bereitstellungsdatei herunter und doppelklicken Sie dann auf die Datei, um das Bereitstellungsprofil zu installieren.

Sie müssen die Bereitstellungsprofile in Xcode aktualisieren, nachdem ein neues Bereitstellungsprofil hinzugefügt wurde. In Xcode:

1. Wählen Sie die Menüoption **Xcode**/**Preferences**.

1. Wählen Sie die Registerkarte **Accounts**, wählen Sie die Apple-ID und klicken Sie auf **View Details**.

1. Klicken Sie unten links im Dialogfeld auf die Schaltfläche zum Aktualisieren der Bereitstellungsprofile und prüfen Sie, ob das neue Bereitstellungsprofil angezeigt wird.

### SNS-Konfiguration
<a name="sns-configuration"></a>

1. Führen Sie die KeyChain Access-App aus, wählen Sie unten links auf dem Bildschirm **Meine Zertifikate** aus, klicken Sie mit der rechten Maustaste auf das SSL-Zertifikat, das Sie für die Verbindung mit APNS generiert haben, und wählen Sie **Exportieren** aus. Sie werden aufgefordert, einen Namen für die Datei und ein Passwort zum Schutz des Zertifikats anzugeben. Das Zertifikat wird in einer P12-Datei gespeichert.

1. Rufen Sie in einem Web-Browser die [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) auf und klicken Sie auf der linken Seite des Bildschirms auf **Applications**.

1. Klicken Sie auf **Create platform application**, um eine Anwendung für die SNS-Plattform zu erstellen.

1. Geben Sie einen **Application Name** ein.

1. Wählen Sie **Apple Push Notification Service Sandbox (APNS\$1SANDBOX)** für **Push notification platform**.

1. Klicken Sie auf **Choose File** und wählen Sie die P12-Datei, die Sie beim Exportieren des SSL-Zertifikats erstellt haben.

1. Geben Sie das beim Exportieren des SSL-Zertifikats eingegebene Passwort ein und klicken Sie auf **Load Credentials From File**.

1. Klicken Sie auf **Create platform application**.

1. Wählen Sie die soeben erstellte Plattformanwendung und kopieren Sie den ARN der Anwendung.

1. Kehren Sie im Unity-Editor zu Ihrem Projekt zurück, wählen Sie es **SNSExample**im **Hierarchiebereich** und im **Inspektorbereich** aus und fügen Sie den Platform Application ARN in das Textfeld **iOS Platform Application ARN** ein.

1. Wählen Sie **File**/**Build Settings** und klicken Sie auf die Schaltfläche **Build**, um ein Xcode-Projekt zu erstellen.

### Verwenden von Xcode
<a name="using-xcode"></a>

1. Öffnen Sie das Xcode-Projekt und wählen Sie das Projekt in Project Navigator aus.

1. Überprüfen der richtigen Einstellung der Bundle-ID

1. Überprüfen Sie, ob Ihr Apple Developer-Konto in **Team** angegeben ist. Das ist erforderlich, damit das Bereitstellungsprofil wirksam wird.

1. Erstellen Sie das Projekt und führen Sie es auf dem Gerät aus.

1. Tippen Sie auf **Register for Notification** und dann auf **OK**, um Benachrichtigungen zuzulassen. Die App zeigt das Geräte-Token an.

Klicken Sie in der [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) auf **Applications**, wählen Sie die Plattformanwendung und klicken Sie auf **Create Platform Endpoint**. Geben Sie das von der App angezeigte Geräte-Token ein.

An diesem Punkt sind App, APNS und NSN vollständig konfiguriert. Sie können die Plattformanwendung und dann den Endpunkt wählen. Klicken Sie auf **Publish to endpoint**, um eine Push-Benachrichtigung an das Gerät zu senden.

### Unity Sample (iOS)
<a name="unity-sample-ios"></a>

Das Beispiel erstellt eine AWSCredentials Cognito-Instanz, um temporäre Anmeldeinformationen mit begrenztem Umfang zu generieren, die es der App ermöglichen, AWS-Services aufzurufen. Außerdem wird eine Instanz für die Kommunikation mit AmazonSimpleNotificationServiceClient SNS erstellt. Die App zeigt zwei Schaltflächen an, die mit **Register for Notification** und **Unregister** beschriftet sind.

Beim Tippen auf die**Schaltfläche ** Register for Notifications wird die `RegisterDevice()` Methode aufgerufen. `RegisterDevice()` ruft `UnityEngine.iOS.NotificationServices.RegisterForNotifications`, auf, die angibt, welche Benachrichtigungstypen (Warnung, Sound oder Stempel) verwendet werden. Außerdem erfolgt ein asynchroner Aufruf von APNS, um ein Geräte-Token abzurufen. Da kein Rückruf definiert ist, wird `CheckForDeviceToken` wiederholt (bis zu 10-mal) aufgerufen, um auf das Geräte-Token zu prüfen.

Wenn ein Token abgerufen wird, wird `AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync()` aufgerufen, um einen Endpunkt für die SNS-Plattformanwendung zu erstellen.

Das Beispiel ist jetzt so konfiguriert, dass Push-Benachrichtigungen empfangen werden. Sie können zur [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) navigieren, links auf der Seite auf **Applications** klicken und die Plattformanwendung wählen. Wählen Sie einen Endpunkt und klicken Sie auf **Publish to endpoint**. Wählen Sie den zu verwendenden Endpunkt und klicken Sie auf **Publish to Endpoint**. Geben Sie eine Textnachricht in das Textfeld ein und klicken Sie auf **Publish message (Nachricht veröffentlichen)**, um eine Nachricht zu veröffentlichen.

## Konfigurieren der Unity-Beispiel-App für Android
<a name="configuring-the-unity-sample-app-for-android"></a>

Öffnen Sie den Unity-Editor und erstellen Sie ein neues Projekt. Importieren Sie das Paket AWS SDK for Unity, indem Sie **Assets**/**Import Package/**Custom Package**** und dann aws-unity-sdk-sns -2.0.0.1.unitypackage auswählen. Stellen Sie sicher, dass alle Elemente im Dialogfeld **Importing Package** ausgewählt sind. Klicken Sie dann auf **Import**.

### Unity-Konfiguration
<a name="id3"></a>

Führen Sie zum Konfigurieren des Unity-Projekts die folgenden Schritte durch:

1. **Navigieren Sie im Bereich **Projekt** zu **Assets**//**AWSSDK**examples und öffnen Sie die Szene.** SNSExample 

1. Wählen Sie im **Hierarchiebereich** die Option aus SNSExample.

1. Geben Sie im Bereich **Inspector** die Cognito-Identitäten-Pool-ID an.

1. Beachten Sie die Textfelder für **Android Platform Application ARN** und **Google Console Project ID**. Die betreffenden Informationen werden Sie später generieren.

1. Wählen Sie **File**/**Build Settings** und klicken Sie im Dialogfeld **Build Settings** auf die Schaltfläche **Add Current** unter dem Listenfeld **Scenes in Build**, um die aktuelle Szene in den Build einzufügen.

1. Wählen Sie unter **Platform (Plattform)** die Option **Android** aus und klicken Sie auf die Schaltfläche **Player Settings... (Playereinstellungen...)**. Klicken Sie im Bereich **Inspector** des Unity-Editors auf das Android-Symbol. Scrollen Sie dann nach unten zum Bereich **Identification (Identifizierung)** und geben Sie einen **Bundle Identifier (Bundle-ID)** an.

1. Kopieren Sie android-support-v 4.jar und google-play-services .jar in das Verzeichnis **Assets**/**Plugins**/**Android** im Bereich **Projekt**.

Weitere Informationen darüber, wo Sie android-support-v 4.jar finden, finden Sie unter [Einrichtung der Android-Supportbibliothek](https://developer.android.com/tools/support-library/setup.html). Weitere Informationen zum Auffinden von google-play-services .jar finden Sie unter [Google APIs für Android Setup](https://developers.google.com/android/guides/setup).

### Android-Konfiguration
<a name="android-configuration"></a>

Fügen Sie zunächst ein neues Google-API-Projekt hinzu:

1. Navigieren Sie in einem Webbrowser zur [Google Developers-Konsole](https://console.developers.google.com) und klicken Sie auf **Create Project**.

1. Geben Sie einen Projektnamen in das Feld **New Project** ein. Notieren Sie sich die (später benötigte) Projektnummer und klicken Sie auf **Create**.

Aktivieren Sie nun den Service Google Cloud Messaging (GCM) für das Projekt:

1. In der Google Developers-Konsole sollte das neue Projekt bereits ausgewählt sein. Ist das nicht der Fall, wählen Sie es in der Dropdown-Liste oben auf der Seite aus.

1. Wählen Sie in der Seitenleiste links auf der Seite die Option **APIs & auth** aus.

1. Geben Sie in das Suchfeld „Google Cloud Messaging for Android“ ein und klicken Sie darunter auf den Link **Google Cloud Messaging for Android**.

1. Klicken Sie auf **Enable API**.

Rufen Sie schließlich einen API-Schlüssel ab:

1. **Wählen Sie in der Google Developers Console **APIs & auth** > Credentials aus.**

1. Klicken Sie unter **Public API access** auf **Create new key**.

1. Klicken Sie im Dialogfeld **Create a new key** auf **Server key**.

1. Klicken Sie im resultierenden Dialogfeld auf **Create** und kopieren Sie den angezeigten API-Schlüssel.

Sie werden den API-Schlüssel später zur Authentifizierung verwenden.

### SNS-Konfiguration
<a name="id4"></a>

1. Rufen Sie in einem Web-Browser die [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) auf und klicken Sie auf der linken Seite des Bildschirms auf **Applications**.

1. Klicken Sie auf **Create platform application**, um eine Anwendung für die SNS-Plattform zu erstellen.

1. Geben Sie einen **Application Name** ein. 

1. Wählen Sie **Google Cloud Messaging (GCM)** für **Push notification platform**. 

1. Fügen Sie den API-Schlüssel in das Textfeld **API key** ein.

1. Klicken Sie auf **Create platform application**. 

1. Wählen Sie die soeben erstellte Plattformanwendung und kopieren Sie den ARN der Anwendung.

1. Kehren Sie im Unity-Editor zu Ihrem Projekt zurück, wählen Sie es **SNSExample**im **Hierarchiebereich** im **Inspektorbereich** aus und fügen Sie den Platform Application ARN in das Textfeld **Android Platform Application ARN** und Ihre Projektnummer in das Textfeld **Google Console Project ID** ein.

1. Verbinden Sie das Android-Gerät mit dem Computer. Wählen Sie **File**/**Build Settings** und klicken Sie auf **Build and Run**. 

### Unity-Beispiel (Android)
<a name="unity-sample-android"></a>

Das Beispiel erstellt eine AWSCredentials Cognito-Instanz, um temporäre Anmeldeinformationen mit begrenztem Umfang zu generieren, die es der App ermöglichen, AWS-Services aufzurufen. Außerdem wird eine Instanz für die Kommunikation mit AmazonSimpleNotificationServiceClient SNS erstellt.

Die App zeigt zwei Schaltflächen an, die mit **Register for Notification** und **Unregister** beschriftet sind. Beim Tippen auf die**Schaltfläche ** Register for Notifications wird die `RegisterDevice()` Methode aufgerufen. `RegisterDevice()` ruft `GCM.Register`, auf, die wiederum die App bei GCM registriert. GCM ist eine im Beispielcode definierte Klasse. Sie führt einen asynchronen Aufruf durch, um die App bei GCM zu registrieren.

Wenn der Rückruf aufgerufen wird, wird `AmazonSimpleNotificationServiceClient.CreatePlatformEndpointAsync` zum Erstellen eines Plattformendpunkts für den Empfang von SNS-Nachrichten aufgerufen.

Das Beispiel ist jetzt so konfiguriert, dass Push-Benachrichtigungen empfangen werden. Sie können zur [SNS-Konsole](https://console.aws.amazon.com/sns/v2/home) navigieren, links auf der Seite auf **Applications** klicken und die Plattformanwendung wählen. Wählen Sie einen Endpunkt und klicken Sie auf **Publish to endpoint**. Wählen Sie den zu verwendenden Endpunkt und klicken Sie auf **Publish to Endpoint**. Geben Sie eine Textnachricht in das Textfeld ein und klicken Sie auf **Publish message (Nachricht veröffentlichen)**, um eine Nachricht zu veröffentlichen.