iOS 용 푸시 알림
필수 조건
이 튜토리얼은푸시 알림 빠른 시작에서 다룬 개념에 익숙하다고 가정합니다.
Apple 알림 채널 구성하기
- 활성 iO 개발 (APNS_SANDBOX) 또는 프로덕션 (APNS) 인증서가 있는지 확인하세요. 인증서가 없으면 인증서, ID 및 프로필에서Apple Developer Portal의 인증서를 만드세요.
- 선택한 인증서 (개발 또는 생산) 내보내기:
인증서, ID 및 프로필에서 Apple Developer Portal의 인증서 복사본을 다운로드하여 시작하세요. 그러면 .cer 파일이 생성될 것입니다.
인증서를 열고 키 집합 액세스에 설치하세요.
인증서 하위 범주에 설치된 인증서를 봅니다.
키 집합 액세스를 .p12 형식으로 내보냅니다.
다음 콘솔 명령을 사용하여 .p12 file을 .pem file 로 변환합니다.
openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
.pem file을 갖고 나면 타이틀 설정>푸시 알림 아래의 PlayFab 게임 매니저를 통해 직접 업로드할 수 있습니다.
또는 아래의 생성기를 사용하여
SetupPushNotification
의 JSONSON 요청을 작성하세요.
SetupPushNotification 용 JSON 요청 생성기
요청 생성기는 다음 정보를 사용하여 JSON 요청을 만듭니다.
- 플랫폼 - 다음 값 중 하나를 사용합니다. APNS (iOS), APNS_SANDBOX (iOS), GCM (Android)
- 응용 프로그램 이름 - 메시지를 보내는 응용 프로그램의 이름을 입력합니다.
참고 항목
응용 프로그램 이름은 대문자와 소문자 ASCII 문자, 숫자, 밑줄, 하이픈 및 마침표로 구성되어야 하며 길이는 1 ~ 256 자여야 합니다. 또한고유해야 합니다.
- PEM 인증 / API 키 - iOS (APNS 또는 APNS_SANDBOX)의 경우 PEM 파일의 전체 내용을 사용합니다.
JSON이 생성되면 이를 사용하여 SetupPushNotification
에 대한 호출을 실행합니다. 응답은 다음 예제와 같아야 합니다.
{
“code” : 200,
“status” : “OK”,
“data” :
{
“ARN” : “arn:*******/GCM/your_game_name”
}
}
축하합니다! 이제 타이틀의 iOS 메시징 채널을 구성했습니다.
푸시하기 위해 iOS 클라이언트 등록하기
iOS의 경우 PlayFab이 현재 Unity에서 기본 구현을 제공하지 않으므로 iOS에서 푸시 알림을 처리하는 방식의 기본 동작을 사용해야 합니다.
기본값으로, 게임이 백그라운드에 있는 동안 수신된 알림은 알림 영역으로 라우팅됩니다.
또는 게임이 활성 앱인 동안 수신된 알림은 무음으로 수신되며 알림영역에 표시되지 않습니다.
- 샘플의 다음 코드는
client Start()
에서 실행됩니다.
// must be called before trying to obtain the push token
// an asynchronous call with no callback into native iOS code that takes a moment or two before
// the token is available. (so spin and wait, or call this one early on)
// this will always return null if your app is not signed
UnityEngine.iOS.NotificationServices.RegisterForNotifications(UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Badge | UnityEngine.iOS.NotificationType.Sound, true);
- 이 시점에서 사용자가 알림을 수신하도록 선택하면 PlayFab API RegisterForIOSPushNotification를 호출할 수 있습니다.
byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
if(token != null)
{
RegisterForIOSPushNotificationRequest request = new RegisterForIOSPushNotificationRequest();
request.DeviceToken = System.BitConverter.ToString(token).Replace("-", "").ToLower();
PlayFabClientAPI.RegisterForIOSPushNotification(request, (RegisterForIOSPushNotificationResult result) =>
{
Debug.Log("Push Registration Successful");
}, OnPlayFabError);
}
else
{
Debug.Log("Push Token was null!");
}
- 오류가 발생하지 않았다면 축하드립니다! 사용자의 iOS 클라이언트가 사용자의 타이틀 Apple 알림 채널에 성공적으로 연결되었습니다.
iOS 문제 해결
- 유효한 .pem 파일이 있는지 확인.
-
SetupPushNotification
에서 사용 된 것과 동일한 인증서가 XCode에서 응용 프로그램에 서명하는 데 사용되는지 확인하세요. - 푸시 알림 API가 XCode에서 빌드에 사용되도록 설정되어 있는지 확인합니다.
- 서명 인증서가 PlayFab 플랫폼과 일치하는지 확인하세요.
SetupPushNotification을 실행할 때
OverwriteOldARN = true
을 사용하여 새 플랫폼에 채널을 리바인드합니다. iOS 환경 하나만이 (APNS 또는 APNS_SANDBOX)은 주어진 시간에 제목에서 활성화될 수 있습니다.
추가 지원
도움, 버그 예제 및 관련 질문은 포럼에 남겨주세요.
참고 항목
현재 이 문서에 설명된 표준 흐름에 대한 서비스만 지원합니다. 팀이 다른 일반적인 푸시 서비스 또는 플러그인을 사용하여 추가 기능을 찾고 있다면 알려 주시기 바랍니다. 개발자 커뮤니티로부터 피드백을 얻는 것은 언제나 환영입니다.