1. 인증서
- 앱 ID 등록 ( Push Notification Developer/Production version )
configure 눌러서 인증서와 키를 만들어 저장 후
키체인 접근 > 인증 지원 > 인증 기관에서 인증서 요청
- certificates 에 등록하면 사이트에 인증서와 키가 생성
- provisioning 수정 후 다운로드
- 인증서와 키 연결짓기 ( organizer 에서 키 인증서에 등록)
- 테스트를 위한 pem 파일 만들기 (터미널에서)
openssl pkcs12 -in
CertificateName.p12 -out
CertificateName.pem -nodes
- 참고 URL : 마이리키닷넷 http://myriky.net/119
Shahzad Bhatti http://weblog.plexobject.com/?p=1680
2. 서버 구현
애플 서버로 클라이언트에서 받은 디바이스토큰과 certificate.pem 파일, 배지, 노티사운드, 키워드, 키워드에 대한 값(노티로 날아갈 내용)을 보내면 애플서버에서 디바이스 토큰을 이용해 노티를 날림
3. 클라이언트 구현
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//디바이스 토큰 받는 곳
NSLog(@"deviceToken %@",deviceToken);
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"error %@", error);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//애플서버로부터 받은 information으로 alert 날림
NSDictionary *aps = [userInfo valueForKey:@"aps"];
application.applicationIconBadgeNumber = [[aps valueForKey:@"badge"] integerValue] + 1;
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"asdfasdf"message:@"asdfasdfsadfasd" delegate:self cancelButtonTitle:@"OK"otherButtonTitles:nil];
[alertView show];
[alertView release];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
id tmpPushNotiDic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
if( tmpPushNotiDic != nil )
{
self.pushNotiDic = [tmpPushNotiDic valueForKey:@"aps"];
}
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
- (void)applicationWillTerminate:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}