iOS SDK Manual

프로젝트 설정
1. 핑거푸시개발자(HelloWorld)사이트에서 다운받은 프레임워크(finger.framework)을 프로젝트에 추가합니다.
스크린샷 2019-01-31 오후 5.05.03
2. Xcode-TARGETS-General-“Linked Framewrok and Libraries”에 프레임워크(finger.framework)가 추가 되었는 지 확인합니다.
스크린샷 2019-01-31 오후 5.06.44
기기버전관리
1. info.plist에 “AppVersionInt”값을 추가하면, 앱 버전별 통계나 앱 업데이트를 관리 할 수 있습니다.
앱 업데이트 할때마다 AppversionInt 값을 올려서 설정합니다. (보통 Bundle version이 int형이면 같은 값으로 사용)
스크린샷 2019-01-31 오후 5.58.21
Push Notification의 Entitlements가 설정
1. 프로젝트의 [Capabilities]탭을 선택하고 “Push Notifications”를 ON으로 값을 변경해주면 자동으로 AppName.entitlements파일이 생성됩니다.
ios-sdk-manu-img-03
핑거푸시서버 연동
– 핑거푸시 APP KEY 설정 (개발용 DeviceToken 과 배포용 DeviceToken 이 섞이지 않도록 주의해 주십시오.)
				/***
				AppDelegate에 핑거푸시서버와 연동을 하기 위해서 다음과 같이 설정합니다.
				***/
				
				#import <finger/finger.h>
				
				
				//핑거푸시 
				-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {
				
				  finger  *_fingerManager = [finger sharedData];   //싱글톤 객체로 사용
				#ifdef DEBUG
				//개발용 앱
				  [_fingerManager setAppKey:@”발급받은 앱키"];    //App Key
				  [_fingerManager setAppScrete:@“발급받은 앱시크리트키"];    //AppScrete
				#else
				//배포용 앱
				  [_fingerManager setAppKey:@”발급받은 앱키"];    //App Key
				  [_fingerManager setAppScrete:@“발급받은 앱시크리트키"];    //AppScrete
				#endif
				..
				..
				
				}

 

– 핑거푸시에 기기등록 (DeviceToken 은 OS에 의해 변경될 수 있습니다. 따라서, 앱 실행시마다 호출해야 합니다.)
				//기기등록 
				-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
				    //핑거푸시의 모든 api를 사용하기 위해서 기기등록 우선
				    [[finger sharedData] registerUserWithBlock:deviceToken :^(NSString *posts, NSError *error) {
				        if (!error)
				        {
				            NSLog(@"기기등록  %@", posts);        
				        }else{
						//이미등록(504, 201) 무시.
				            NSLog(@"기기등록 error %@", error);        
				        }
				    }];
				}

 

– 푸시 메세지수신 시 메세지오픈/읽음 처리
				//메세지 오픈 및 읽음 처리
				- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {
				    //참고 : 메세지 정보 확인
				    NSDictionary* dicCode = [finger receviveCode:userInfo];
				    NSString *strPT = [dicCode objectForKey:@"PT"]; //메세지타입 - DEFT(일반) , STOS (서버투서버), LNGT(롱푸시)
				    NSString *strIM = [dicCode objectForKey:@"IM"];	//이미지 여부 (0: 이미지 미포함 , 1: 이미지 포함)
				    NSString *strWL = [dicCode objectForKey:@"WL"];	//웹링크 여부 (0: 웹링크 미포함 , 1: 웹링크 포함)
				
				   //메세지 읽음 처리
				   [[finger sharedData]  requestPushCheckWithBlock:userInfo :^(NSString *posts, NSError *error) { 
				      if (!error) {
				          NSLog(@"check : %@", posts);
				      }else{
				          NSLog(@"check error %@", error);
				      }
				  )];
				}

 

– 푸시 수신 데이터(Payload)
				{
				   aps = {
				      alert = {
				            body = "안녕하세요. 핑거푸시입니다";
				            title = "메세지 제목입니다.";
				         };
				      badge = 0; // 뱃지 카운트
				      category = fp; // 메세지 카테고리
				      "mutable-content" = 1; // notification service extension 사용 여부(이미지와 웹 링크 추가시)
				      sound = default; // 사운드
				   };
				   커스텀 데이터 키1 = 커스텀 데이터 값1;
				   커스텀 데이터 키2 = 커스텀 데이터 값2;
				   커스텀 데이터 키3 = 커스텀 데이터 값3;
				   code = "CD:1;IM:1;WL:1;PT:STOS";
				   // ( CD : 커스텀 데이터 여부(0 : 없음, 1 : 있음), IM : 이미지 첨부 여부(0 : 없음, 1 : 있음), WL : 웹 링크 여부(0 : 없음, 1 : 있음), PT : 메세지 타입(DEFT:일반푸시, STOS:Server to Server, LNGT:롱푸시))
				   imgUrl = "http://..."; // 이미지 URL
				   labelCode = ""; // 라벨 코드
				   msgTag = ...; // 메세지 고유 번호
				   weblink = "http://www.google.com"; // 웹 링크
				}

 

※ 푸시 수신 데이터(Payload) Apple 개발자 사이트 참조 링크 [페이지 이동]
API 연동 결과 코드
코드 내용 비고
200 정상처리  
403 App_key, secret 오류, 권한없음  
404 조회 대상 없음, 조회 결과 없음  
500 처리 중 에러  
503 필수 값 없음  
504 이미 등록된 토큰 디바이스 등록에서만 사용