요구 사항
- iOS Deployment target 9.0 이상
- iOS SDK 9.0 이상
준비 사항
- AppID 발급
- Facebook/Google+ 관련 키 각각 발급
- 인증서 발급
- IAP 코드 발급
- 마케팅 어트리뷰션 적용 시 개별 키값 발급 (1.5.0 추가)
Hive 적용하기
적용 가이드에 있는 코드들은 모두 SDK와 함께 배포된 샘플 프로젝트에 포함되어있는 코드이다.
샘플 프로젝트의 코드와 함께 보면 이해도를 높일 수 있다.
AppDelegate에 코드 추가
정상적으로 이용하기 위해서 AppDelegate에 아래 두 가지 함수를 덮어쓴다.
- openURL
Hive에서 웹페이지를 열 수 있도록 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<strong>[AppDelegate.mm]</strong> #include "C2SModule.h" <span class="guide_font_red">// (iOS 4.2 이상에서 사용 가능)</span> - (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation { <span class="guide_font_red"> [C2SModuleSocial openURL:url sourceApplication:sourceApplication annotation:annotation];</span> return YES; } <span class="guide_font_red">// 상단의 openurl 함수가 iOS 9.0 이상에서 곧 deprecated 될 예정이라 하단의 함수를 따로 추가해야함 (iOS 9.0 이상에서 사용 가능)</span> - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary< NSString*, id> *)options { return <span class="guide_font_red">[self application:app openURL:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey] annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];</span> } |
- didRegisterForRemoteNotificationWithDeviceToken
푸시 이용을 위해 디바이스 토큰을 등록한다.
1 2 3 4 5 6 7 8 9 |
<strong>[AppDelegate.mm]</strong> #import ”C2SModule.h” -(void)application:(UIApplication*)application didRegisterForRemoteNotificationWithDeviceToken:(NSData*)deviceToken { [C2SModulePush Register:@{@”deviceToken”:deviceToken} error:nil]; } |
Result Delegate 사용하기
Result Delegate는 Hive에서 사용하는 API의 응답이 오는 callback 함수이다. 함수의 형태는 다음과 같다.
– (void)C2SModuleResult:(C2SModuleApi)api parameter:(NSDictionary *)arg error:(NSError*)error | ||||
---|---|---|---|---|
argument name |
type | Description | ||
api | C2SModule | 어떤 응답을 받았는지 구별하는 파라메터 | ||
arg | NSDictionary | 서버로부터의 응답에 대한 결과 값이 담겨져 있는 딕셔너리 | ||
error | NSError | 응답을 처리하던 중 에러가 발생했을 때 nil이 아닌 다른 값이 오게 된다. |
Hive API 호출 시 따로 Completion Handler를 등록하지 않거나 API와 매칭 되지 않는 응답은 Result Delegate로 온다.
Completion Handler만 사용해도 무방하지만 InappDescription 같은 정보의 경우 Initalize 함수 요청 시점에 Result Delegate로 들어오는 응답이다. 그렇기 때문에 InApp Description 정보를 받아 처리하고 싶다면 Result Delegate에서 처리할 수 밖에 없게 된다.
먼저 Result Delegate를 사용할 클래스에 C2SModuleResultDelegate라는 프로토콜을 구현한다. 여기서는 HiveManager라는 사용자 정의 클래스를 사용했다.
1 2 3 4 |
<strong>[HiveManager.h]</strong> #import "C2SModule.h" @interface HiveManager : NSObject |
그 뒤에 C2SModuleResultDelegate의 프로토콜을 구현한다.
1 2 3 4 5 6 7 8 9 |
<strong>[HiveManager.mm]</strong> -(void)C2SModuleResult:(C2SModuleApi)api parameter:(NSDictionary *)arg error:(NSError*)error { switch (api) { default: break; } } |
Hive 에 ResultDelegate를 등록한다.
1 2 3 4 5 6 7 |
[HiveManager.mm] -(id)init { [C2SModuleSocial SetCommonResultDelegate:self]; //Result Delegate Setting!! return [super init]; } |
Result Delegate로 넘어 올 수 있는 응답은 다음과 같이 정의되어 있다.
C2SModuleApi | ||||
---|---|---|---|---|
C2SModuleApi_SocialInitialize | 소셜 초기화 | |||
C2SModuleApi_SocialShow | 소셜 뷰 출력 | |||
C2SModuleApi_SnsSession | sns 세션 정보 (sessionToken확인 가능) | |||
C2SModuleApi_SnsLogin | sns 로그인 | |||
C2SModuleApi_SnsLogout | sns 로그아웃 | |||
C2SModuleApi_SnsUnregister | sns 탈퇴 | |||
C2SModuleApi_SnsUser | sns 유저 정보 요청 | |||
C2SModuleApi_SnsFriends | sns 친구 정보 요청 | |||
C2SModuleApi_SnsMessage | sns 메세지 보내기 | |||
C2SModuleApi_SnsPost | sns 포스팅 하기 | |||
C2SModuleApi_SnsShow | sns 뷰 출력 | |||
C2SModuleApi_InappPrepare | inapp 마켓 타겟팅 | |||
C2SModuleApi_InappRestore | inapp 구매 복구 | |||
C2SModuleApi_InappPurchase | inapp 구매 요청 | |||
C2SModuleApi_InappFinish | inapp 구매 완료 | |||
C2SModuleApi_InappDescription | inapp 상품 정보 (Initalize시 넘어옴) | |||
C2SModuleApi_PushRegister | Push 등록 | |||
C2SModuleApi_PushUnregister | Push 등록 해제 | |||
C2SModuleApi_PushDescription | Push 옵션 | |||
C2SModuleApi_PromotionShow | Promotion 뷰 출력 | |||
C2SModuleApi_InappUpdated | Inapp update | |||
C2SModuleApi_TrackingSendEvent | Tracker 이벤트 전송 | |||
C2SModuleApi_TrackingSetEnable | Tracker 모듈 별 활성화 설정 | |||
C2SModuleApi_PromotionInfo | Promotion 정보 얻기 | |||
C2SModuleApi_InterworkStart | interwork 시작 | |||
C2SModuleApi_InterworkDelegate | interwork 끝 | |||
C2SModuleApi_PromotionAcquisition | Acquisition 정보 얻기 | |||
C2SModuleApi_HiveIAPInitialize | Hive IAP 2.0 초기화 | |||
C2SModuleApi_HiveIAPInfo | Hive IAP 2.0 정보 얻기 | |||
C2SModuleApi_HiveIAPShow | Hive IAP 2.0 정보 보기 | |||
C2SModuleApi_HiveIAPPurchase | Hive IAP 2.0 구매하기 | |||
C2SModuleApi_HiveIAPRestore | Hive IAP 2.0 구매복구 | |||
C2SModuleApi_EngagementProcessScheme | 유저 인게이지 스킴 진행 | |||
C2SModuleApi_EngagementGetEvents | 유저 인게이지 이벤트 불러오기 | |||
C2SModuleApi_EngagementConsumeCoupon | 유저 인게이지 쿠폰 소모 | |||
C2SModuleApi_EngagementStart | 유저 인게이지 시작 | |||
C2SModuleApi_EngagementEnd | 유저 인게이지 끝 | |||
C2SModuleApi_SocialInfo | 공지 팝업 출력 | |||
C2SModuleApi_EngagementGameScheme | User Engagement Game scheme | |||
C2SModuleApi_HivePromotionShow | Promotion2.0 뷰 출력 | |||
C2SModuleApi_HivePromotionInfo | Promotion2.0 뷰 정보 출력 | |||
C2SModuleApi_HivePromotionGetOfferwallState | Promotion2.0 오퍼월 상태값 출력 | |||
C2SModuleApi_InappCheckPromotePurchase | inapp 원격 구매 상품 정보 요청 | |||
C2SModuleApi_HiveIAPCheckPromotePurchase | Hive IAP 원격 구매 상품 정보 요청 | |||
C2SModuleApi_PromotionCompanion | Promotion Companion 출력 | |||
C2SModuleApi_PromotionPlayback | Promotion Youtube Playback | |||
C2SModuleApi_HivePromotionPlayback | HivePromotion Youtube Playback |
라이브러리 빌드 관련
unity3d 5.x 버전으로 빌드한 Xcode Project Simulator의 빌드 에러는 Hive SDK iOS 라이브러리와 무관하다.