본문 바로가기

iPhone

APNS 를 위한 Device Token 알아내기

APNS(Apple Push Notification Service)를 하기 위해서, 어플을 설치한 각 디바이스에서 Device Token 을 알아야 하는데요.

이 Device Token 을 알 수 있는 방법은 다음과 같습니다.

1. 어플 사용자가 APS(Apple Push Service) 를 이용하겠다는 동의를 해야 한다.

2. 어플리케이션 delegate 에서 UIApplicationDelegate 내 함수 (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 을 구현한다.


바로 2번 항목에서 (NSData *)deviceToken 이라는 파라미터로 Device Token 이 들어옵니다.  이 때, Device Token 은 퍼포먼스 때문에 바이너리 포맷으로 전달 된다고 하네요.

1. APS Register

어플 사용자가 APS 를 이용하겠다는 동의를 해야 한다고 했는데요, 이를 위해서 -(BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 에서 다음 코드를 추가 하시면 어플이 설치 되고 처음 실행 될 때 APS 를 이용하겠는지의 여부를 묻게 됩니다. (이 메시지는 처음에만 묻고, 그 뒤로는 다시 묻지 않습니다. 설정 변경은 일반 설정에서 On / Off 하실 수 있습니다.)
코드

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

// Override point for customization after application launch.

[window addSubview:[nav view]];

    [window makeKeyAndVisible];

// APS Register

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:

UIRemoteNotificationTypeAlert |

UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound ];

return YES;

}

설정 변경



2. Device Token 얻기

어플리케이션 delegate 에서 UIApplicationDelegate 내 함수 (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 을 구현을 하면, 어플이 처음 실행 될 때 다음 코드를 타게 됩니다. 이 때, Device Token 을 얻으 실 수 있습니다. (전역으로 두셨다가 필요하실 때 쓰시면 되겠네요)

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 

    NSLog(@"Device Token : %@" ,deviceToken);

}