C2S.19.6부터는 개별모듈 패키지가 개선되어 C2S 19.6+ 페이지에서 가이드를 제공합니다. 아래의 가이드를 통해 변경된 라이브러리 구성과 설정 방법에 대해 알아보세요.

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

C2S 19.6 패키징 파일 구조

a. Framework

C2S 19.6 iOS framework로 구성되어 있습니다. 기존의 개별모듈 framework 폴더를 제거한 후 새 framework 폴더로 교체하세요.

b. include

C2S 19.6 iOS header 파일로 구성되어 있습니다. 기존의 개별모듈 header 파일을 모두 제거한 후 새 include 폴더로 교체하세요.

c. resource

C2S 19.6 iOS의 resource는 모든 모듈의 resource가 통합된 HIVEResource.bundle로 구성되어 있습니다. 기존의 개별모듈 resources 폴더와 내부 bundle 파일 제거 후 새 resource 폴더로 교체하세요.

 


설정 변경사항

이 가이드는 C2S.19.6 적용 시 기존 적용 사항에서의 변경점에 대해 안내합니다. 이 가이드에서 안내하지 않는 내용은 Com2uS 개별모듈의 개발 환경 구축 > iOS 가이드를 참고하세요.

프레임워크 추가하기

  1. 기존 개별모듈 프레임워크를 모두 제거하고 C2S 19.6 프레임워크로 교체하세요.
    • C2S 19.6 프레임워크
      1. Unity 빌드 시: HIVE_SDK_UnityPlugin.framework
        그 외: HIVE_SDK_Plugin.framework
      2. HiveAppTrackingTransparency.framework
      3. HIVEBase.framework
      4. HIVECore.framework
      5. HIVEExtensions.framework
      6. HIVEIAPV4.framework
      7. HIVEProtocol.framework
      8. HIVEService.framework
      9. HIVEUI.framework
      10. ProviderAdapter.framework
      11. ProviderQQ.framework (선택사항)
  2. Xcode 내장 프레임워크도 정리되었습니다.
    • Xcode 내장 프레임워크
      1. AppTrackingTransparency.framework
      2. Accelerate.framework
      3. CFNetwork.framework
      4. libc++.tbd
      5. libz.tbd
      6. libsqlite3.tbd
      7. StoreKit.framework
      8. AdSupport.framework
      9. CoreData.framework
      10. CoreTelephony.framework
      11. SafariServices.framework
      12. Security.framework
      13. UIKit.framework
      14. iAd.framework
      15. MobileCoreServices.framework
      16. WebKit.framework
  3. provider framework는 사용하지 않는다면 제거 가능합니다.
    • ProviderQQ.framework, TencentOpenAPI.framework: QQ signin 사용
프레임워크 설치하기

C2S.18.4부터 개별모듈에서 사용하는 서드 파티 프레임워크를 CocoaPods로 설치할 수 있습니다.

  1. CocoaPods를 설치합니다.
  2. CocoaPods 설정 파일을 구성할 목적으로 Podfile을 생성합니다.
  3. 편집기에서 Podfile을 열어 개별모듈에 필요한 프레임워크를 추가합니다. 아래는 개별모듈 샘플에 포함 배포하는 Podfile 예제입니다.
  4. CocoaPods 설정에 따라 프레임워크를 설치합니다.

라이브러리 추가하기

모든 라이브러리가 framework 기준으로 작동하도록 변경되었습니다. 기존 개별모듈 라이브러리 내 폴더와 파일은 삭제하세요.

  • Build Settings > Serch Paths > Library Search Paths 내 라이브러리 설정을 제거하세요.
    1. libC2SActiveUser_iphoneos.a
    2. libC2SActiveUser_iphoneosd.a
    3. libC2SActiveUser_iphonesimulator.a
    4. libC2SActiveUser_iphonesimulatord.a
    5. libC2SCommonModule_iphoneos.a
    6. libC2SCommonModule_iphoneosd.a
    7. libC2SCommonModule_iphonesimulator.a
    8. libC2SCommonModule_iphonesimulatord.a
    9. libC2SInApp_iphoneos.a
    10. libC2SInApp_iphoneosd.a
    11. libC2SInApp_iphonesimulator.a
    12. libC2SInApp_iphonesimulatord.a
    13. libC2SMercury_iphoneos.a
    14. libC2SMercury_iphoneosd.a
    15. libC2SMercury_iphonesimulator.a
    16. libC2SMercury_iphonesimulatord.a
    17. libC2SPush_iphoneos.a
    18. libC2SPush_iphoneosd.a
    19. libC2SPush_iphonesimulator.a
    20. libC2SPush_iphonesimulatord.a
    21. Unity 전용 라이브러리
      • libC2SInAppUnityPlugin.a
      • libC2SMercuryUnityPlugin_iphoneos.a
      • libC2SMercuryUnityPlugin_iphoneosd.a
      • libC2SMercuryUnityPlugin_iphonesimulator.a
      • libC2SMercuryUnityPlugin_iphonesimulatord.a
    22. HiveSDK framework를 추가 시 제외할 라이브러리
      • libC2SHub2_iphoneos.a
      • libC2SHub2_iphoneosd.a
      • libC2SHub2_iphonesimulator.a
      • libC2SHub2_iphonesimulatord.a

리소스 추가하기

모든 resource가 하나로 통합되었습니다. 기존 개별모듈 리소스를 모두 삭제하고 C2S 19.6 리소스 파일인 HIVEResource.bundle로 교체하세요.

헤더파일 추가하기

헤더 파일 내부 값이 변경되었습니다. 기존 개별모듈 헤더파일을 모두 제거하고 C2S 19.6 include 폴더로 교체하세요.

  • Build Settings > Serch Paths > Library Search Paths 내 헤더 설정을 제거하고 C2S 19.6 include 폴더 경로로 변경하세요.
    1. C2SActiveUser.h
    2. C2SInApp.h
    3. C2SMercury.h
    4. C2SPush.h
    5. HiveSDK framework를 추가했을 때 제외할 파일
      • C2SActiveUser.h
      • C2SInApp.h
      • C2SMercury.h
      • C2SPush.h
      • C2SHub2.h
      • C2SHub2Error.h

일반 설정하기

화이트 리스트 추가하기 외의 일반 설정하기 내용은 아래 목록의 링크를 확인하세요.

화이트 리스트 추가하기
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

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

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

화면 문구 변경 파일의 저장 경로가 변경되었습니다. 맞춤식 권한 고지 팝업 이용 시 다국어 지원 파일의 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 초기화 시 설정됩니다. 각 모듈별 서버는 분리할 수 없습니다.