Hive SDK C2S.20.2.2 부터는 CocoaPods를 사용해 SDK를 적용할 수 있습니다.

본 가이드에서는 CocoaPods를 통한 SDK 라이브러리 구성과 설정 방법을 설명합니다.

본 가이드는 Xcode 14.1 환경을 기준으로 안내합니다.

Hive SDK 설치 및 설정

CocoaPods 및 Hive SDK 설치하기

아래의 순서대로 CocosPods 및 Hive SDK를 설치하세요.

  1. 터미널을 통해 CocoaPods를 설치합니다.
    sudo gem install cocoapods
  2. CocoaPods 설정 파일을 구성할 목적으로 Podfile을 생성합니다.
    sudo pod init
  3. 생성된 Podfile에 source로 Hive SDK 저장소를 추가합니다.
    source 'https://github.com/Com2uSPlatformCorp/HiveSDK-iOS'
  4. 편집기에서 Podfile을 열어 Hive SDK에 필요한 프레임워크를 추가합니다.
    이때, 아래와 같은 Hive SDK iOS v4 23.0.0에 종속된 서드 파티 프레임워크의 관계 및 버전을 참고하세요.

    서드 파티 프레임워크의 종속성

    • HiveSDK (4.22.0.1)

      • SDWebImage (5.13.4)
    • HiveProviderFacebook (4.22.0.1)

      • FBSDKCoreKit (Podfile에 작성된 iOS 최소 지원 버전과 호환되는 최신 버전)
      • FBSDKLoginKit (Podfile에 작성된 iOS 최소 지원 버전과 호환되는 최신 버전)
      • FBSDKShareKit (Podfile에 작성된 iOS 최소 지원 버전과 호환되는 최신 버전)
      • FBSDKGamingServicesKit (Podfile에 작성된 iOS 최소 지원 버전과 호환되는 최신 버전)
    • HiveProviderFacebook/Facebook15 (4.22.0.1)

      Hive SDK와 호환성이 검증된 Facebook 15 버전입니다. iOS 최소 지원 버전 12 이상이며
      HiveProviderFacebook 와 함께 사용해야 합니다. iOS 환경에서 Facebook 13 이상 적용 시
      Facebook Client Token 설정이 필수입니다.

      • FBSDKCoreKit (15.0.0)
      • FBSDKLoginKit (15.0.0)
      • FBSDKShareKit (15.0.0)
      • FBSDKGamingServicesKit (15.0.0)
    • HiveProviderGoogle (4.22.0.1)

      • GoogleSignIn (6.2.4)
      • GoogleUtilities (7.8.0)
    • HiveProviderQQ (4.22.0.1)

      • HiveTencentOpenAPI (4.22.0.1) (Hive에서 배포한 TencentOpenAPI CocoaPods 버전.
        TencentOpenAPI 3.5.12)

    C2S 23.2.2 이상 서드 파티 프레임워크의 종속성

    • HiveAuthV4ProviderFacebook (23.0.0)
      • FBSDKCoreKit (16.2.1)
      • FBSDKLoginKit (16.2.1)
      • FBSDKShareKit (16.2.1)
    • HiveAuthV4ProviderGoogle (23.2.2)
      • GoogleSignIn (7.0.0)
    • HiveAuthV4ProviderQQ (23.2.2)
      • HiveTencentOpenAPI (23.2.2): Hive에서 배포한 TencentOpenAPI CocoaPods 버전(TencentOpenAPI 3.5.14)
    • HiveSDK (23.2.2)
      • SDWebIamge (5.18.7)
     

     

    Podfile 작성 예시는 아래와 같습니다.

     

    보다 자세한 내용은 프레임워크 설치 후 생성된 Podfile.lock 파일에서 확인하실 수 있습니다.

  5. CocoaPods Podfile 설정에 따라 Hive SDK 프레임워크를 설치합니다.

     

    CocoaPods으로 적용 가능한 Hive SDK 프레임워크 목록

    CocoaPods Podfile에서 프로젝트 메인 타겟에 추가해야하는 프레임워크 상세 목록은 아래와 같습니다.

    필수 적용 Hive SDK 프레임워크추가 선택 적용 Hive SDK 프레임워크
    • HiveSDK
    • Hive SDK의 전반적인 동작에 필수적인 프레임워크
    • HiveAppTrackingTransparency
    • iOS 14 이상의 디바이스에서 앱추적 권한을 획득하기 위한 프레임워크
    • HiveResource
    • Hive SDK에서 제공하는 UI 리소스 번들(.bundle).
    • Hive SDK v4.16.4 미만: 반드시 프로젝트의 메인 타겟에 추가되어야 합니다.
    • Hive SDK v4.16.4 이상: 프로젝트의 메인 타겟에 추가하거나, 그 이외의 HiveSDK가 추가되어 있는 타겟에 같이 추가되어야 합니다.
    • Hercules
      • 보안 모듈 프레임워크
    • HiveExtensions
      • Hive 푸시 알림의 추가 확장 기능을 사용하기 위한 프레임워크
    • HiveAuthV4ProviderAppleSignIn
      • Sign in with Apple 로그인을 위한 프레임워크
    • HiveAuthV4ProviderFacebook
      • Facebook 로그인 및 기타 소셜 기능을 사용하기 위한 프레임워크
    • HiveAuthV4ProviderGoogle
      • Google 로그인을 위한 프레임워크
    • HiveAuthV4ProviderHive
      • Hive 멤버십 로그인을 위한 프레임워크
    • HiveAuthV4ProviderQQ
      • QQ 로그인을 위한 프레임워크
    • HivePromotion
      • 배너, 새소식 등 프로모션을 위한 프레임워크
    • HiveIAPV4
      • 인앱 결제, 환불 재결제를 위한 프레임워크
    • HiveSDKPluginC2S
      • Hive SDK C++ 언어용 인터페이스 플러그인 프레임워크
    • HiveSDKUnityPluginC2S
      • Hive SDK C# 언어용 인터페이스 플러그인 프레임워크

헤더 파일 추가하기

개발자 사이트에서 다운로드한 Hive SDK v1 패키지 파일에서 인터페이스 API 사용을 위해 프로젝트에 직접 추가해야 하는 헤더 파일(.h) 목록은 다음과 같습니다.

  • Module_Android.h
  • ModuleHelper_Android.h
  • C2SModule.h
  • C2SModuleApi.h
  • C2SModuleArgKey.h
  • C2SModuleErrorCode.h
  • adapt_tuple.h
  • Module_Cocos2d-x.h
  • ModuleHelper_Cocos2d-x.h
  • refobject.h
  • smartptr.h
  • Module_iOS.h
  • ModuleHelper_iOS.h
  • C2SModuleSecureVariable.h
  • cscrc32.h

이전 버전에 적용된 물리 파일 제거

컴파일 에러 방지를 위해 Hive SDK C2S.20.2.2 버전 적용시 이전 버전에 적용 되었던 Hive SDK 관련 프레임워크(.framework), 리소스번들(.bundle) 라이브러리(.a) 확장자에 해당하는 물리파일은 모두 제거되어야 합니다.

화이트 리스트 추가하기

Facebook

Facebook Scheme을 화이트 리스트에 추가하려면 프로젝트 창을 이용하거나 Info.plist 파일에 코드를 직접 추가하는 방법이 있습니다.

iOS 9부터, 외부 앱으로 전환 시 화이트 리스트에 추가된 Scheme에 대해서만 전환이 허용됩니다. iOS 9 환경에서 유저가 여러분의 게임에서 Facebook으로 로그인 할 때 Hive는 사파리 뷰 컨트롤러를 활용하여, 사파리 웹뷰로 Facebook 로그인을 진행시킵니다. 때문에, 게임 앱에서 Facebook 앱으로의 전환이 발생하지 않고 앱 내부의 브라우저를 이용하여 로그인을 처리할 수 있습니다.
Facebook은 화이트 리스트에 Facebook Scheme을 기본적으로 등록하도록 권장하고 있습니다. Facebook SDK 문서 보기

프로젝트 창에서 수정하기

  1. Xcode 프로젝트 창의 프로젝트 네비게이터에서 여러분의 프로젝트를 선택하세요.
  2. TARGETS 목록에서 여러분의 앱을 선택하세요.
  3. Info 탭을 클릭하세요.
  4. Info 탭의 LSApplicationQueriesSchemes 클릭하고 + 버튼을 클릭하여 아래의 Scheme을 추가하세요.
    • fbapi
    • fb-messenger-share-api

Info.plist 직접 수정하기

Info.plist에 아래 코드를 직접 추가하는 방법도 있습니다.

QQ

QQ Scheme을 화이트 리스트에 추가하려면 프로젝트 창을 이용하거나 Info.plist 파일에 코드를 직접 추가하는 방법이 있습니다.

프로젝트 창에서 수정하기

  1. Xcode 프로젝트 창의 프로젝트 네비게이터에서 여러분의 프로젝트를 선택하세요.
  2. TARGETS 목록에서 여러분의 앱을 선택하세요.
  3. Info 탭을 클릭하세요.
  4. Info 탭의 LSApplicationQueriesSchemes 클릭하고 + 버튼을 클릭하여 다음 Scheme들을 추가하세요.
    • mqqOpensdkSSoLogin
    • mqqopensdkapiV2
    • mqqopensdkapiV3
    • wtloginmqq2
    • mqq
    • mqqapi
    • mqqopensdknopasteboardios16
    • mqqopensdknopasteboard

Info.plist 직접 수정하기

Info.plist에 아래 코드를 직접 추가하는 방법도 있습니다.

Facebook 설정하기

1. Xcode 프로젝트 창의 프로젝트 네비게이터에서 여러분의 프로젝트를 선택하세요.
2. TARGETS 목록에서 여러분의 앱을 선택하세요.
3. Info 탭을 클릭하세요.
4. Info 탭 안의 Custom iOS Target Properties 항목을 클릭하고 FacebookAppID 속성에 Facebook App ID를 입력하세요.
* 앱 대시보드에서 설정 > 고급 > 보안 > 클라이언트 토큰 진입하여 FacebookClientToken 속성에 Facebook Client Token을 입력하세요. (Facebook 13 이상 버전 사용 시 필수) (참조 가이드)

5. Info 탭 안의 **URL Types** 항목을 클릭한 후 **+** 아이콘을 클릭하여 Additional url type properties 항목을 생성하세요.
6. Additional url type properties 항목 URL Schemes 란에 fb를 덧붙인 Facebook AppID를 입력하세요. 예. fb012342478841523

개별모듈 설정하기

AppDelegate 적용하기

  • Unity 빌드 시 AppDelegate 설정은 제공된 HiveAppController.m에서 자동으로 진행됩니다.
  • AppDelegate.m 파일의 API 호출이 자동으로 진행됩니다.
  • Delegate 함수는 추가하되 내부 로직 진행은 생략하세요.
  • Hive Orientation 설정을 위해 supportedInterfaceOrientationsForWindow를 추가하세요.

빌드 설정하기

Xcode 프로젝트의 빌드 설정 시 Other Linker Flags 필드에 추가한 아래의 값을 삭제하세요. (기존 가이드 참조)

    • -lC2SActiveUser_$(PLATFORM_NAME)
    • -lC2SCommonModule_$(PLATFORM_NAME)
    • -lC2SMercury_$(PLATFORM_NAME)
    • -lC2SInApp_$(PLATFORM_NAME)
    • -lC2SPush_$(PLATFORM_NAME)
    • -lC2SHub2_$(PLATFORM_NAME)
    • -lC2SInAppUnityPlugin
    • -lC2SMercuryUnityPlugin_$(PLATFORM_NAME)

아래의 값은 반드시 추가해야 합니다. (필수사항)

    • -ObjC
  • Swift Compiler – Language 항목에서 Swift Language Version이 Unspecified로 설정된 상태라면
    4 이상의 값으로 변경하세요. 외부 라이브러리 의존성에 따라 해당 옵션의 노출여부가 달라집니다.
  • Enable Bitcode 항목을 NO로 세팅한다.

앱 접근 권한에 대한 고지 화면 커스터마이징

화면 문구 변경 파일의 저장 경로가 변경되었습니다. 맞춤식 권한 고지 팝업 이용 시 다국어 지원 파일의 ko.lproj 폴더에서(기존 가이드 참조) Permission.strings 파일을 제거하고 변경 가이드에 따라 다시 설정하세요. (Permission.strings 파일의 내용은 변경사항 없습니다.)

 


추가 API

C2S.19.6에서 새로 업데이트 된 API는 다음과 같습니다. 그 중 CS_SetModuleOrientation API는 모든 프로젝트에 반드시 적용되어야 합니다. 자세한 사항은 API의 참조 가이드로 안내된 페이지에서 확인하세요.

ActiveUser
  • CS_SetEmergencyModeWithUid(const char* uid) (API Reference)
    • 입력받은 uid로 긴급 로그인 설정을 진행합니다.
    • 서버 문제로 인해 로그인이 불가능한 상황에서 긴급 로그인을 할 수 있도록 이미 구현된 경우 또는 긴급 로그인을 구현하려는 경우라면 해당 API 가이드를 참고하여 로직 수정을 실시하세요.
    • 긴급 로그인을 사용하지 않는 프로젝트에서는 해당 API 호출을 생략할 수 있습니다.
  • CS_SetModuleOrientation(MODULE_ORIENTATION orientation) (API Reference)
    • Hive SDK UI 방향을 설정합니다. (default “UNDEFINED”)
      “ALL”: 기기 방향에 따라 HiveUI가 가로·세로 모든 방향으로 실시간 회전합니다.
      “PORTRAIT”: HiveUI가 세로 방향으로만 설정됩니다.
      “LANDSCAPE”: HiveUI가 가로 방향으로만 설정됩니다.
    • 실시간 회전을 지원하지 않는 게임에서는 반드시 게임 지원 방향에 맞춰 호출해야 합니다.
    • 반드시 적용되어야 하는 API입니다. 관련 API 가이드를 참고해주세요.

 


변경 또는 사용 중단된 API

C2S.19.6 적용 시 변경되거나 사용 중단된 API는 다음과 같습니다. 자세한 사항은 각 API의 참조 가이드로 안내된 페이지에서 확인하세요.

공통사항
  • 현재의 Uid, Vid, Did 입력 파라미터의 경우 로그인 된 계정의 값을 가져와 자동으로 세팅합니다.
ActiveUser

참조 가이드: ActiveUser API Reference

  • Changed
    API Desc
    CS_ActiveUserGetVersion HiveSDKV4 라이브러리 Version 전달 (통합)
    CS_ActiveUserSetLogged HiveSDKV4 라이브러리 Log on/off 세팅(통합)
    CS_ActiveUserStartEx
    CS_ActiveUserStartWithoutNotice
    ServerState 세팅 및 초기화 (통합)
  • Deprecated
    API Desc
    CS_UserAgreeReset 불필요 API (과거 계정 로그아웃 했을 때 약관정보 다시 노출하던 정책 때 사용)
    CS_ActiveUserUseTestServer CS_ActiveUserStartEx 또는 CS_ActiveUserStartWithoutNotice를 대체하여 CS_ActiveUserRegisterTokenSERVER_STATE 선택
    CS_UserAgreeSetView 미사용 API (과거 약관동의 뷰)
    CS_UserAgreeShowUI 미사용 API (과거 약관동의 뷰)
    CS_UserAgreeShowUIEx 미사용 API (과거 약관동의 뷰)
    CS_ActiveUserSetVID 로그인 계정에 맞춰 VID 자동으로 세팅
    CS_ActiveUserRegisterToken 미사용 내부 함수 (개별모듈 내 push token 인식용)
Peppermint

참조 가이드: Hub docs_methods API Reference

  • Changed
    API Desc
    CS_hubInitialize Peppermint appId 값만 세팅 (gamemIndex / ServerState 무시)
    CS_hubInitializeEx Peppermint appId 값만 세팅 (ServerState 무시)
  • Deprecated
    API Desc
    CS_hubUninitialize 불필요 동작
    CS_hubSetOption 미사용 내부 함수 (개별모듈/통합모듈 구분용)
    CS_hubApplicationDidBecomeActive C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
    CS_hubApplicationOpenURL C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
Mercury

참조 가이드: Mercury API Reference

  • Changed
    API Desc
    CS_MercuryShowEx MERCURY_SHOW_NOTICE_TOP
    MERCURY_SHOW_NOTICE_BOTTOM
    MERCURY_SHOW_FORCED_NOTICE_TOP
    MERCURY_SHOW_FORCED_NOTICE_BOTTOM
    호출 시 PromotionV2 NewsV2 UI 로 노출
    ServerId 세팅 필수
    CS_MercuryGetCustomViewInfo PromotionV2 라이브러리 viewInfo 값을 전달
  • Deprecated
    API Desc
    CS_MercurySetLog CS_ActiveUserSetLogged로 로그 노출 여부를 결정 (반응 없음)
    CS_MercurySetIsUsingStaging CS_ActiveUserStartEx / CS_ActiveUserStartWithoutNotice 에서 CS_ActiveUserRegisterTokenSERVER_STATE 선택하도록 통합
    CS_MercurySetUid 로그인 계정에 맞춰 Uid 자동 세팅 (반응 없음)
    CS_MercuryGetVersion HiveSDKV4 라이브러리 Version 전달 (통합)
    CS_MercuryGetBadgeType CS_MercuryGetBadge로 대체 (반응 없음)
Push

참조 가이드: Push_iOS API Reference

  • Changed
    • 없음
  • Deprecated
    API Desc
    CS_hlpPushSendPromoCodeEx C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
    CS_hlpPushRegisterToken
    CS_hlpPushRegisterTokenEx
    C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
    CS_hlpPushLoadOption 미사용 API (이미 Deprecated 상태)
    CS_hlpPushUseTestServer
    CS_hlpPushUseTestServerEx
    CS_ActiveUserStartEx / CS_ActiveUserStartWithoutNotice 로 대체하여 CS_ActiveUserRegisterTokenSERVER_STATE 선택
    CS_hlpPushGetVersion 미사용 API (이미 Deprecated 상태 / CS_hlpPushGetVersionEx 사용하도록 가이드)
    CS_hlpPushDefaultActionOnLaunch C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
    CS_pushSetUNUserNotification
    CS_pushStartEx
    C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
    CS_pushSetUid 로그인 계정에 맞춰 Uid 자동 세팅 (반응 없음)
    CS_hlpPushSendOpen C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (반응 없음)
InAppV4

참조 가이드: InAppV4 API Reference

  • Changed
    • 없음
  • Deprecated
    API Desc
    CS_IapV4SetUid 로그인 계정에 맞춰 Uid 자동 세팅 (반응 없음)
    CS_IapV4GetVersion HiveSDKV4 라이브러리 Version 전달 (통합)

 


기타 특이사항

ServerState

모든 ServerState가 ActiveUser 초기화 시 설정됩니다. 각 모듈별 서버는 분리할 수 없습니다.