Program/iPhone SDK

APNS Push 인증서 생성 순서

Hue Kim 2013. 3. 4. 17:37

   

 

Bundle Identifier는 프로젝트 생성할 때 똑같이 해줘야 함. 

보통 Project에 있는 Bundle Identifier는 com.domainname.* 으로 되어있는데 Push 서비스를 사용하려면 *(wild card)로 되어있으면 토큰키 생성이 안된다.

 

 

Domain=NSCocoaErrorDomain Code=3000 "응용 프로그램에 대해 발견된 'aps-environment' 인타이틀먼트 문자열 없음" UserInfo=0x1c5b0d20 {NSLocalizedDescription=응용 \353\241\234그램에 대해 발견된 'aps-environment' 인타이틀먼트 문자열 없음}

 

 

이 에러때문에!!!스트레스!!!가!!!!!ㅠㅠ
순서를 정리해서 말하면 1. AppID 생성    - 생성된 App은 Push Notification이 사용가능한 상태로 안되어있습니다.



    - Configure 눌러서 Push Service를 사용가능한 상태로 만들어줍니다. 그냥 설정만 해주면 되는 게 아니라 푸시서버 SSL 인증서를 생성해서 등록해줘야 합니다.


    - 보통 개발이나 테스트용으로 하게 되면 Development Push SSL Certificare 인증서로 등록하시면 돼요 Configure로 누르시고 

인증서 선택

       

 

   

인증서 인증절차 완료되면 

 

 

- 생성된 인증서 보이시면 Download 해서 더블 클릭 해서 인증서 등록해 줍니다. (Apple Development iOS Push Service:com.pushTest.pushTest1이라는 인증서가 생긴 걸 확인하실 수 있을 겁니다~ 테스트하는 앱이름을 반드시 pushTest1으로 동일하게 해 주셔야 돼요~)

 


이제 Project를 생성해서 Push 테스트를 해보겠습니다.

Apple Development iOS Push Service:com.pushTest.pushTest1 <--등록된 인증서와 같은 네이밍 해주셔야 돼요 

- Product Name : pushTest1

- Company Identifier : com.pushTest 

 

-생성된 프로젝트에 들어가서 Bundle identifier를 변경해 줍니다.

com.pushTest.${PRODUCT_NAME} 이렇게 되어있는데 com.pushTest.pushTest1으로 바꾸어줍니다.

 

- 이제 프로젝트 Build Setting에서 인증서 확인해 보시면 Current matches 인증서가 Push 인증서 네임이랑 일치하면 Test준비는 끝난 거예요~   이걸 잘 몰라서...ㅠㅠ삽질을... 삽질을..ㅠㅠ


이제 AppDelegate.m에 푸시 토큰 받아오는 코드를 작성합니다. @implementation 밑으로 아래 소스 복사해서 쓰시면 돼요~

 

 

 

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

{

    // Override point for customization after application launch.

    // APNS 장치등록

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:

UIRemoteNotificationTypeAlert |

UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound ];

    

    application.applicationIconBadgeNumber = 0;

    

    return YES;

}

 

 

//device token - show Log

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

 

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

}

 

 

//에러 발생시 호출

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

{

    NSLog(@"dviceToken error : %@", error);

}

 

 

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{

    NSDictionary *aps = [userInfo valueForKey:@"aps"];

    NSLog(@"userInfo Alert: %@", [aps valueForKey:@"alert"]);

}

 

이제 앱실행하고 (시뮬레이터에선 테스트 되지 않아요~ 폰으로 직접하셔야됩니다~)

시작하면 로그창에

 

Device Token : <337d8022 2e1f9efa 48400f82 45f2aa52 e98984f5 558a11d1 da762dcf a179aaa0>

이렇게 나오면 성공!!!!!

ㅋㅋ

안되거나 궁금하신건 댓글로 달아주세요~~