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;

} 

+ Recent posts