프로그래밍/Object-C2012. 3. 19. 20:43
1. 기기등록 및 어플실행(필수)

클릭

2. 푸시 서비스등록 및 인증서 다운로드

애플 개발자 사이트


화면 우측에 iOS Provisioning Portal 클릭.



Apple Push Notification service 항목에 노란불은 비활성화.
Action 항목의 Configure를 클릭.



Development Push SSL Certificate - 개발 어플용
Production - 배포용 어플

Development Push SSL Certificate의 Configure 클릭.





찾아보기...를 눌러

애플 개발자 기기 등록하기 & 개발한 어플 기기에 설치의 생성한 인증서 파일을 선택.



Continue 버튼 -> 푸시관련 인증서 다운로드 설치




Provisioning Profile을 다운받아 설치.


Add to Portal 을 클릭.


3. Xcode에서 확인

AppDelegate.m


NSLog




4. 인증서 추출





저장을 하면  인증서 암호를 지정해주시면 발급완료.



Posted by 건깡

댓글을 달아 주세요

  1. 박경원

    블로그를 따라서 해보고 있는데

    자바를 잘몰라서 막히고 있습니다.

    자바쪽에 좀 자세히 설명해주실순 없습니까?

    2012.03.29 18:50 [ ADDR : EDIT/ DEL : REPLY ]
  2. 박경원

    JSP쪽은 다 했는데 아이폰쪽에서 알림창에서 나타나지 않을때는 어떤점이 문제인거조?

    2012.04.02 17:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 서버쪽에서 에러가 안나시면,

      Xcode 문제인가....

      3. Xcode에서 확인 에서
      deviceToken 값은 제대로 나오나요??

      deviceToken 값이 제대로 나오는거면 APNs가 작동이 되야 할텐데.

      2012.04.02 19:49 신고 [ ADDR : EDIT/ DEL ]
  3. 박경원

    Error: Error Domain=NSCocoaErrorDomain Code=3010 "remote notifications are not supported in the simulator" UserInfo=0x4b48b00 {NSLocalizedDescription=remote notifications are not supported in the simulator}

    시물레이터로 돌리면 이렇게 나오고 디바이스로 돌리면 아무것도 나오지가 않습니다.ㅠ

    2012.04.03 10:41 [ ADDR : EDIT/ DEL : REPLY ]
    • NSLog(@"error: %@", error) 를 해도

      Output이 뜨지 않으면,

      APNs 등록 실패시 실행되는 메서드에

      Edit Breakpoint 를 설정하시고

      디버그를 해보세요

      2012.04.03 10:53 신고 [ ADDR : EDIT/ DEL ]
  4. 곱게자란녀석

    저도 박경원님과 같은 현상인데요.
    브레이크 포인트 설정하고 돌리면
    브레이크 포인트가 안먹힙니다.

    PushNotification 이라는 프로젝트명인데요...
    단...
    2012-04-21 23:38:43.699 PushNotification[1757:707]
    Application windows are expected to have a root view controller at the end of application launch
    요렇게 한줄 뜨네요.


    '서버쪽 구현 없이' 저렇게 코딩해서 아이폰에 올리면 토큰 아이디가 떠야 정상이지요.?

    이상하네요...

    2012.04.21 23:42 [ ADDR : EDIT/ DEL : REPLY ]
    • 토큰 아이디는 서버 구현하고 상관없어요.

      혹시 괜찮으시다면

      소스 좀 볼 수 있을까요/

      2012.04.22 00:34 신고 [ ADDR : EDIT/ DEL ]
    • 곱게자란녀석

      #import "AppDelegate.h"

      @implementation AppDelegate

      @synthesize window = _window;

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


      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
      [self. window makeKeyAndVisible];
      self.window.backgroundColor = [UIColor whiteColor];

      application.applicationIconBadgeNumber = 0;

      [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
      // Override point for customization after application launch.
      return YES;
      }

      -(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{
      NSString *string = [NSString stringWithFormat:@"%@", userInfo];
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil
      message:string
      delegate:nil
      cancelButtonTitle:@"OK"
      otherButtonTitles:nil, nil];
      [alert show];
      }


      - (void)applicationWillResignActive:(UIApplication *)application
      {
      // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
      // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
      }

      - (void)applicationDidEnterBackground:(UIApplication *)application
      {
      // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
      // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
      }

      - (void)applicationWillEnterForeground:(UIApplication *)application
      {
      // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
      }

      - (void)applicationDidBecomeActive:(UIApplication *)application
      {
      // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
      }

      - (void)applicationWillTerminate:(UIApplication *)application
      {
      // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
      }

      @end


      요건데요... AppDelegate.m 을 전부 가져다 붙인거에요.!
      ^^;

      2012.04.22 21:03 [ ADDR : EDIT/ DEL ]
    • 흠...

      전 실행이 잘 되네요...

      deviceToken 값 잘 나오네요

      2012.04.23 10:32 신고 [ ADDR : EDIT/ DEL ]
    • 곱게자란녀석

      전 왜 안나오죠 ...
      아무것도 안하구. 저 코딩만 쓰면 토큰 아이디 떠야
      정상 아닌가요 ... ?

      2012.05.08 21:59 [ ADDR : EDIT/ DEL ]
    • 비밀댓글입니다

      2012.05.08 23:36 [ ADDR : EDIT/ DEL ]
    • j07051@naver.com

      이쪽으로 보내주세요

      2012.05.09 09:54 신고 [ ADDR : EDIT/ DEL ]