

이제 Xamarin용 AWS Mobile SDK가에 포함됩니다 AWS SDK for .NET. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SNS를 사용하여 푸시 알림 수신(Xamarin iOS)
<a name="getting-started-sns-ios"></a>

이 문서에서는 Amazon Simple Notification Service(SNS) 및 .NET 및 Xamarin용 AWS Mobile SDK를 사용하여 Xamarin iOS 애플리케이션으로 푸시 알림을 전송하는 방법을 설명합니다.

## 프로젝트 설정
<a name="project-setup"></a>

### 사전 조건
<a name="prerequisites"></a>

이 자습서를 시작하기 전에 [.NET 및 Xamarin용 AWS Mobile SDK 설정](setup.md)의 지침을 모두 완료해야 합니다.

### SNS에 대한 권한 설정
<a name="set-permissions-for-sns"></a>

[.NET 및 Xamarin용 AWS Mobile SDK 설정](setup.md)의 2단계를 따라 아래에서 언급하는 정책을 애플리케이션의 역할에 연결합니다. 그러면 애플리케이션이 SNS애 액세스할 수 있는 적절한 권한을 부여 받습니다.

1. [IAM 콘솔](https://console.aws.amazon.com/iam/home)로 이동하여 구성할 IAM 역할을 선택합니다.

1. **정책 연결**을 클릭하고 AmazonSNSFullAccess 정책을 선택한 다음 **정책 연결**을 클릭합니다.

**주의**  
AmazonSNSFullAccess를 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 여기서는 빠르게 실행할 수 있도록 사용하는 것입니다. IAM 역할 권한 지정에 대한 자세한 내용은 [IAM 역할 권한 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_permissions.html)를 참조하세요.

### Apple iOS 개발자 프로그램 멤버십 받기
<a name="obtain-membership-in-the-apple-ios-developer-program"></a>

푸시 알림을 수신하려면 물리적 디바이스에서 앱을 실행해야 합니다. 디바이스에서 앱을 실행하려면 [Apple iOS 개발자 프로그램 멤버십](https://developer.apple.com/programs/ios/)이 있어야 합니다. 멤버십이 있으면 Xcode를 사용하여 서명 자격 증명을 생성할 수 있습니다. 자세한 내용은 Apple의 [App Distribution Quick Start](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppStoreDistributionTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013839) 설명서를 참조하세요.

### iOS 인증서 생성
<a name="create-an-ios-certificate"></a>

먼저 iOS 인증서를 생성해야 합니다. 그런 다음 푸시 알림용으로 구성된 프로비저닝 프로파일을 생성해야 합니다. 그렇게 하려면 다음을 수행하세요.

1. [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action)로 이동하여 **인증서, ID, 프로필**을 클릭합니다.

1. **iOS 앱**에서 **식별자**를 클릭하고 웹 페이지 오른쪽 상단의 더하기 버튼을 클릭하여 새 iOS 앱 ID를 추가한 다음 앱 ID 설명을 입력합니다.

1. 아래로 스크롤하여 **ID 접미사 추가** 섹션에서 **명시적 앱 ID**를 선택하고 번들 식별자를 입력합니다.

1. 아래로 스크롤하여 **앱 서비스** 섹션에서 **푸시 알림**을 선택합니다.

1. **계속**을 클릭합니다.

1. **Submit**을 클릭합니다.

1. **완료**를 클릭합니다.

1. 방금 생성한 앱 ID를 선택하고 **편집**을 클릭합니다.

1. 아래로 스크롤하여 **푸시 알림** 섹션을 찾습니다. **개발 SSL 인증서** 아래에서 **인증서 생성**을 클릭합니다.

1. 지침을 따라 인증서 서명 요청(CSR)을 생성하고 요청을 업로드한 다음 Apple 알림 서비스(APNS)와 통신하는 데 사용될 SSL 인증서를 다운로드합니다.

1. **Certificates, Identifiers & Profiles(인증서, ID, 프로필)** 페이지로 돌아갑니다. **프로비저닝 프로파일** 아래의 **모두**를 클릭합니다.

1. 오른쪽 위 모서리에 있는 더하기 버튼을 클릭하여 새 프로비저닝 프로파일을 추가합니다.

1. **iOS 앱 개발**을 선택하고 **계속**을 클릭합니다.

1. 앱 ID를 선택하고 **계속**을 클릭합니다.

1. 개발자 인증서를 선택하고 **계속**을 클릭합니다.

1. 디바이스를 선택하고 **계속**을 클릭합니다.

1. 프로필 이름을 입력하고 **생성**을 클릭합니다.

1. 프로비전 파일을 다운로드하고 두 번 클릭하여 프로비저닝 프로파일을 설치합니다.

푸시 알림용으로 구성된 프로파일을 프로비저닝하는 데 대한 자세한 내용은 Apple의 [Configuring Push Notifications](https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1) 설명서를 참조하세요.

### SNS 콘솔에서 인증서를 사용해 플랫폼 ARN 생성
<a name="use-certificate-to-create-platform-arn-in-sns-console"></a>

1. KeyChain 액세스 앱을 실행하고 화면의 왼쪽 아래에서 **내 인증서**를 선택합니다. 그런 다음 앞서 생성한 SSL 인증서를 마우스 오른쪽 버튼으로 클릭하여 APNS에 연결하고 **내보내기**를 선택합니다. 파일의 이름과 인증서를 보호할 암호를 지정하라는 메시지가 표시됩니다. 인증서는 P12 파일로 저장됩니다.

1. [SNS 콘솔](https://console.aws.amazon.com/sns/v2/home)로 이동하여 화면 왼쪽에서 **애플리케이션**을 클릭합니다.

1. **플랫폼 애플리케이션 생성**을 클릭하여 새 SNS 플랫폼 애플리케이션을 생성합니다.

1. **애플리케이션 이름**을 입력합니다.

1. **푸시 알림 플랫폼**으로 **Apple Development**를 선택합니다.

1. **파일 선택**을 선택하고 SSL 인증서를 내보낼 때 생성한 P12 파일을 선택합니다.

1. SSL 인증서를 내보낼 때 지정한 암호를 입력하고 **파일에서 자격 증명 로드**를 클릭합니다.

1. **플랫폼 애플리케이션 생성**을 클릭합니다.

1. 방금 생성한 플랫폼 애플리케이션을 선택하고 애플리케이션 ARN을 복사합니다. 나중 단계에서 이 ARN이 필요합니다.

### 프로젝트에 SNS용 NuGet 패키지 추가
<a name="add-nuget-package-for-sns-to-your-project"></a>

[.NET 및 Xamarin용 AWS Mobile SDK 설정](setup.md) 내 지침의 4단계를 따라 Amazon Simple Notification Service NuGet 패키지를 프로젝트에 추가합니다.

## SNS 클라이언트 생성
<a name="create-an-sns-client"></a>

```
var snsClient = new AmazonSimpleNotificationServiceClient(credentials, region);
```

## 원격 알림에 애플리케이션 등록
<a name="register-your-application-for-remote-notifications"></a>

애플리케이션을 등록하려면 아래와 같이 UIApplication 객체에서 RegisterForRemoteNotifications를 호출합니다. AppDelegate.cs에 다음 코드를 배치합니다(아래에서 메시지가 표시된 위치에 플랫폼 애플리케이션 ARN을 삽입).

```
public override bool FinishedLaunching(UIApplication app, NSDictionary options) {
// do something
var pushSettings = UIUserNotificationSettings.GetSettingsForTypes (
  UIUserNotificationType.Alert |
  UIUserNotificationType.Badge |
  UIUserNotificationType.Sound,
  null
);
app.RegisterUserNotifications(pushSettings);
app.RegisterForRemoteNotifications();
// do something
  return true;
}

public override void RegisteredForRemoteNotifications(UIApplication application, NSData token) {
  var deviceToken = token.Description.Replace("<", "").Replace(">", "").Replace(" ", "");
  if (!string.IsNullOrEmpty(deviceToken)) {
    //register with SNS to create an endpoint ARN
    var response = await SnsClient.CreatePlatformEndpointAsync(
    new CreatePlatformEndpointRequest {
      Token = deviceToken,
      PlatformApplicationArn = "YourPlatformArn" /* insert your platform application ARN here */
    });
  }
}
```

## SNS 콘솔에서 엔드포인트로 메시지 전송
<a name="send-a-message-from-the-sns-console-to-your-endpoint"></a>

1. [SNS 콘솔 > 애플리케이션](https://console.aws.amazon.com/sns/v2/home)으로 이동합니다.

1. 플랫폼 애플리케이션을 선택하고 엔드포인트를 선택한 다음 **엔드포인트에 게시**를 클릭합니다.

1. 텍스트 상자에 텍스트 메시지를 입력하고 **메시지 게시**를 클릭하여 메시지를 게시합니다.