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

C2S.19.6 패키징 파일 구조

Module_Package 디렉토리 내 파일 구조는 다음과 같습니다.

a. /Android/external

C2S.19.6 개별모듈에서 지원하는 외부 라이브러리 파일이 포함되어 있습니다.

  • QQ 로그인 사용 시 아래 라이브러리 포함
    • mta-sdk-2.0.0.jar
    • mid-sdk-2.10.jar
    • open_sdk_3.5.14.3_rc26220c_lite.jar (C2S.20.2.2 이상)
  • Mercury, HivePromotion 동영상 기능 사용 시 아래 라이브러리 포함
  • 원스토어 v4 버전 적용 시 아래 라이브러리 포함
    • InAppTstoreSDKv4-16.06.00_20201007.jar
  • 원스토어 v6 버전 적용 시 아래 라이브러리 포함
    • onestore_iap_sdk-v19.00.02.aar
  • 러비 사용 시 아래 라이브러리 포함
    • alipaySdk-15.6.8-2019021122514.aar (C2S.20.2.2 미만)
  • 삼성 갤럭시 스토어 사용 시 아래 라이브러리 포함
    • samsung_iap_sdk-v6.1.aar
  • 아마존 Push 사용 시 아래 라이브러리 포함
    • amazon-device-messaging-1.0.1.jar
  • b. /Android/include

    C2S.19.6 개별모듈 C Plugin 헤더 파일이 포함되어 있습니다.

    c. /Android/libs

    C2S.19.6 개별모듈 Android 라이브러리 파일이 포함되어 있습니다.
    C2S.20.0 이상 패키지에서 libs/Extension 이하의 파일들은 베타 버전이므로 게임 프로젝트에 적용하지 마세요. (별도로 안내받은 게임 프로젝트는 적용할 수 있습니다.)
    C2S.20.1.3 패키지부터 libs 이하에 모든 라이브러리를 제공하지 않습니다.
    자세한 내용은 ‘C2S개별모듈 및 외부 라이브러리 의존성 설정‘을 참고 바랍니다.

    d. /Android/ndkbuild

    C2S.19.6 개별모듈의 C Plugin 헤더(/include) 및 소스(/source) 파일로 빌드한 각 아키텍쳐 라이브러리 파일이 포함되어 있습니다.

    e. /Android/res

    C2S.19.6 개별모듈에서 필요로 하는 리소스 파일이 포함되어 있습니다.

    f. /Android/source

    C2S.19.6 개별모듈의 C Plugin 소스 파일이 포함되어 있습니다.

    g. /Unity/Package/

    C2S.19.6 개별모듈 Unity 프로젝트 패키지 파일과 샘플 패키지 파일이 포함되어 있습니다.

    h. /Unity/Project/Assets/Plugins

    C2S.19.6 개별모듈 Unity 플러그인 관련 파일이 포함되어 있습니다.

    Android의 경우 Unity 플러그인 라이브러리(/Assets/Plugins/Android/libs 이하의 모듈 Unity 플러그인 .aar 파일들)을 적용하고 있다면 /Unity/Package 경로에서 HIVE_C2S.unitypackage 적용 시 Plugin 관련 Java 파일은 제외하세요.

    • C2S.20.0부터 /Assets/Pluigns/Android/libs/push/PushUnityPlugin.java는 제거되었습니다. 관련 코드는 hive-service-x.x.x.aar 라이브러리에 포함됩니다.

     


    변경 사항

    대체되는 라이브러리

    아래 표를 참고하여 기존 라이브러리 목록의 파일은 제거하고, C2S.19.6 패키지에 대체된 변경 라이브러리 목록의 파일을 추가하세요. 대체된 라이브러리 파일은 Module_Package/Android/libs 디렉토리 내에 포함되어 있습니다. (C2S.19.6부터 ModuleManager는 인터페이스 및 기능이 제공되지 않습니다.) 그리고 C2S.20.1.3 패키지에선 .aar 라이브러리 제공없이 build.gradle 설정으로 대체됩니다. 아래 Gradle 설정하기를 참고 바랍니다

    기존 라이브러리 변경 라이브러리 변경 라이브러리(C2S.20.1.3 이상)
    ActiveUser-x.x.x.aar
    hive-iapv4-plugin-x.x.x.aar
    HivePromotion-x.x.x.x.aar
    Mercury-x.x.x.aar
    ModuleManager-x.x.x.aar
    Offerwall-x.x.x.aar
    peppermint-x.x.x.aar
    Push-x.x.x.aar
    hive-base-x.x.x.aar
    hive-core-x.x.x.aar
    hive-iapv4-x.x.x.aar
    hive-protocol-x.x.x.aar
    hive-ui-x.x.x.aar
    hive-service-x.x.x.x.aar
    hive-service-extension-facebook-x.x.x.x.aar
    hive-service-extension-google-x.x.x.x.aar
    gradle 설정으로 대체
    (아래 ‘C2S 개별모듈 및 외부 라이브러리 의존성 설정’ 항목 확인)

    리소스 추가

    • Android 프로젝트 기준 리소스를 포함하는 경로인 /res 폴더 하위에 /raw 폴더를 생성하고(/res/raw), 패키지에 포함된 hive_config.xml 파일을 추가하세요.
    • hive_config.xml에 설정할 수 있는 옵션값을 확인하세요. 설정할 필요가 없는 경우에는 파일 내 옵션값을 변경하지 않고 /res/raw 이하 패키지에 포함된 hive_config.xml을 추가합니다. (hive_config.xml 파일이 없으면 SDK 초기화 기능이 정상적으로 동작하지 않습니다.)
      • 모듈 초기화 시 Android 저장소 권한을 요청하려는 경우
    • 그 외 (구)개별모듈 패키지(C2S.x.x.x.zip) 를 통해 사용 중인 리소스가 있다면 그대로 유지하세요.

    C2S 개별모듈 및 외부 라이브러리 의존성 설정

    Hive Developers의 C2S Android 외부 라이브러리 의존성 설정하기 가이드에 따라 아래 외부 라이브러리 의존성을 설정합니다.

    • Hive SDK C2S 21.0.2 부터 Hive SDK BOM(Bill of Materials)을 지원합니다.
    • BOM 지원에 따른 Gradle 설정의 변경 사항은 ‘Gradle 설정하기’를 참고하세요.

    외부 라이브러리 의존성 설정

    // C2S 개별모듈 (Hive SDK)
    // C2S.20.1.3부터 HiveSDK 라이브러리를 설정할 수 있습니다. HIVE_SDK_VERSION으로 매칭되는 HiveSDK v4 버전을 설정합니다. 해당하는 HiveSDK v4 버전은 아래 표를 참고 바랍니다.
    implementation “com.com2us.android.hive:hive-sdk:$HIVE_SDK_VERSION” // 필수 설정
    implementation “com.com2us.android.hive:hive-service-extension-c2s:$HIVE_SDK_VERSION” // 필수 설정 (C2S.20.2.2 이상)

    // Hercules
    implementation “com.com2us.android.hive:hercules:$HIVE_SDK_VERSION” // C2S.20.2.2 이상

    implementation “com.com2us.android.hive:hive-service-extension-facebook:$HIVE_SDK_VERSION”
    implementation “com.com2us.android.hive:hive-service-extension-google:$HIVE_SDK_VERSION”
    implementation “com.com2us.android.hive:hive-service-extension-huawei:$HIVE_SDK_VERSION” // Huawei 글로벌 빌드 시

    // Kotlin Dependency
    // Kotlin 라이브러리는 C2S.20.2.2부터 HiveSDK 내부 설정에 포함됩니다.
    // implementation ‘org.jetbrains.kotlin:kotlin-reflect:1.5.10’ // (C2S.20.2.2 미만)
    // implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3’ // (C2S.20.2.2 미만)
    // implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3’ // (C2S.20.2.2 미만)

    // Firebase Cloud Messaging Dependency
    // Firebase Cloud Messaging 라이브러리는 C2S.20.2.2부터 hive-service-extension-google 라이브러리 내부 설정에 포함됩니다.
    // implementation ‘com.google.firebase:firebase-iid:20.2.4’ // (C2S.20.2.2 미만)
    // implementation ‘com.google.firebase:firebase-messaging:20.2.4’ // (C2S.20.2.2 미만)

    // Google Play Services Dependency
    // Google Play Services 라이브러리는 C2S.20.2.2부터 hive-service-extension-google 라이브러리 내부 설정에 포함됩니다.
    // implementation ‘com.google.android.gms:play-services-auth:17.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.google.android.gms:play-services-games:17.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.google.android.gms:play-services-ads-identifier:17.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.google.android.gms:play-services-analytics:17.0.0’ // (C2S.20.2.2 미만)

    // (C2S.19.6 이상 ~ C2S.20.1.3 미만)
    // implementation ‘com.google.android.play:core:1.8.3’
    // implementation ‘com.google.android.play:core-ktx:1.8.1’

    // (C2S.20.1.3 이상 ~ C2S.20.2.2 미만)
    // Google Review 라이브러리는 C2S.20.2.2부터 hive-service-extension-google 라이브러리 내부 설정에 포함됩니다.
    // implementation‘ com.google.android.play:review:2.0.0’ // (C2S.20.2.2 미만)

    // Facebook Dependency
    // Facebook 라이브러리는 C2S.20.2.2부터 hive-service-extension-facebook 라이브러리 내부 설정에 포함됩니다.
    // implementation ‘com.facebook.android:facebook-core:13.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.facebook.android:facebook-common:13.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.facebook.android:facebook-login:13.0.0’ // (C2S.20.2.2 미만)
    // implementation ‘com.facebook.android:facebook-share:13.0.0’ // (C2S.20.2.2 미만)

    // Huawei Dependency
    implementation ‘com.huawei.hms:hwid:6.7.0.300’ // Huawei 로그인 지원 시 (C2S.20.2.2)
    implementation ‘com.huawei.hms:iap:6.3.0.300’ // Huawei 결제 지원 시 (C2S.19.8.1)
    implementation ‘com.huawei.agconnect:agconnect-core:1.6.4.300’ // Huawei 로그인 지원 시 (C2S.19.8.1) <<< 삭제
    // C2S 개별모듈 버전별 hms:game 라이브러리 적용 관련 (Huawei 로그인 지원 시)
    implementation ‘com.huawei.hms:game:5.0.4.303’ // C2S.20.1.3 미만
    // hms:game 설정 필요 없음 // C2S.20.1.3 이상

    // IDP Dependency
    // implementation ‘com.tencent.mm.opensdk:wechat-sdk-android-without-mta:1.4.0’ (Wechat 사용 시) (C2S.19.6이상 C2S.20.1.3미만)
    implementation ‘com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.8.0’ // (C2S.20.1.3)
    implementation ‘com.linecorp.linesdk:linesdk:5.7.0’ (LINE 사용 시)
    // implementation ‘com.squareup.okhttp3:okhttp:3.12.12’ (QQ 사용 시) (C2S.20.1.3 미만)
    implementation ‘com.amazon.device:amazon-appstore-sdk:3.0.2’ (Amazon 사용 시)

    // Jetpack Dependency
    // emoji-bundle을 제외한 Jetpack 라이브러리는 C2S.20.1.3부터 HiveSDK 내부 설정에 포함됩니다.
    // implementation ‘androidx.appcompat:appcompat:1.4.0-alpha01’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.cardview:cardview:1.0.0’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.browser:browser:1.0.0’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.annotation:annotation:1.0.0’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.constraintlayout:constraintlayout:2.1.1’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.core:core:1.3.2’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.emoji2:emoji2:1.0.0-alpha03’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.emoji2:emoji2-bundled:1.0.0-alpha03’ // (C2S.19.6이상 C2S.20.1.3 미만)
    // implementation ‘androidx.recyclerview:recyclerview:1.2.0’

    // Analytics Dependency
    // C2S.19.6 이상 C2S.20.0 미만 시 : Adjust, Singular, AppsFlyer를 모두 적용해야 합니다.
    // C2S.20.0 이상 시 : 개별모듈에서 의존성이 제거되었습니다. 게임앱에서 자체 사용하는 경우 설정바랍니다.
    implementation ‘com.adjust.sdk:adjust-android:4.32.0’ // C2S.20.0미만 필수 설정
    implementation ‘com.singular.sdk:singular_sdk:12.0.8’ // C2S.20.0미만 필수 설정
    implementation ‘com.appsflyer:af-android-sdk:6.9.2’ // C2S.20.0미만 필수 설정

    // Other Dependency
    implementation ‘com.android.installreferrer:installreferrer:2.2’
    implementation ‘com.android.billingclient:billing-ktx:5.0.0’ // PlayStore 인앱, C2S.20.0+
    // implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’ // 프로모션 이미지 배너 (C2S.19.8에서부터 제거됨)
    // implementation ‘com.github.bumptech.glide:glide:4.13.0’ // 프로모션 이미지 배너, (C2S.19.8이상 C2S.20.1.3미만), C2S.20.1.3부터 HiveSDK 내부 설정에 포함됩니다.
    // implementation ‘com.google.code.gson:gson:2.7’ // (C2S.20.2.2 미만) C2S.20.2.2부터 HiveSDK 내부 설정에 포함됩니다.
    implementation “com.com2us.android.hive:youtube-helper:1.0.1” // (C2S.20.2.2 이상) 프로모션, Hive프로모션에서 동영상 기능 사용시
    implementation ‘com.alipay.sdk:alipaysdk-android:15.8.11’ // (C2S.20.2.2 이상) 러비에서 알리페이 앱충전 기능 사용시

    C2S 개별모듈 라이브러리 설정 시 라이브러리 버전은 C2S 버전과 매칭되는 Hive SDK v4 라이브러리 버전이어야 합니다. 버전 값(HIVE_SDK_VERSION)을 매칭하는 규칙은 아래 내용을 참고 바랍니다.

    • 버전 첫째 자리: 4값 고정
    • 버전 둘째 자리:
      • C2S.21.0.2 이전 : 적용하려는 C2S 버전 둘째 자리 값 – 4
      • C2S.21.0.2 이후 : 동일
    • 버전 셋째 자리: 동일
    • 버전 넷째 자리: 동일
    적용하려는 C2S 버전 BUILD.GRADLE에 설정해야하는 값(HIVE_SDK_VERSION 수정 값)  
    적용 가능 최소 버전 C2S 20.1.5 4.16.1.5 (적용하려는 C2S 버전 둘째 자리 값 – 4)
    상응 버전 예시 C2S 20.3.1 4.16.3.1 (적용하려는 C2S 버전 둘째 자리 값 – 4)
    C2S 21.0.2 4.21.0.2 (동일)  
    C2S 22.0.0 4.22.0.0 (동일)  
    C2S 23.0.0 4.23.0.0 (동일)  

    아마존 빌드 설정하기

    Amazon 빌링 사용 시 Appstore SDK에서 아이템 정보를 전달받으려면 /assets 위치에 암호화된 키 파일을 추가해야 합니다. 아마존 앱 스토어 가이드를 참고하여 AppstoreAuthenticationKey.pem 키를 다운로드 및 추가하는 방법에 대해 알아보세요.

    Amazon 빌링(IAP) 사용 시 구매 요청 후 Amazon SDK의 응답이 늦어질 경우 무한 대기를 하거나 로딩 상태를 오래 유지하지 않도록 개별모듈에선 임의 시간을 두고 처리를 하고 있습니다.

    • 구매 완료 후 Amazon SDK에서 완료 응답을 5초 이내로 주지 않을 경우 구매 실패 콜백이 전달됩니다. 단, 5초 이후에 구매 성공 응답이 올 수 있으며 이런 경우 상점 진입 등을 통해 모듈의 구매 복구 API가 호출되면 영수증을 획득합니다.
    • 만약, 구매 완료 후 응답 대기 시간을 변경하고 싶은 경우 AndroidManifest에 아래 설정을 추가 바랍니다.
        • 5~30초 사이 값을 value에 설정

    Amazon Push 사용 시 아래 설정이 필요합니다.

    • Amazon Push(ADM) 사용을 위해선 AmazonAPIKey 설정이 필수입니다. Amazon 콘솔 가이드 페이지를 확인 바랍니다.
    • Amazon Push 라이브러리인 amazon-device-messaging-1.0.1.jar는 프로젝트의 libs이하에 위치하지 말고 /libs/external 에 위치시킵니다.

     

    Firebase 설정하기

    • C2S.19.8부터 Firebase에서 요구하는 manifest 설정이 아래와 같이 기본으로 포함되어 있습니다.
    • 개발팀에서 Firebase의 애널리틱스 지표 기능을 자체적으로 사용하는 경우에는 아래의 내용을 확인하세요.
      1. 자체적으로 Firebase 애널리틱스 지표 수집 기능을 사용할 경우 프로젝트의 AndroidManifest.xml에서 firebase_analytics_collection_enabled 옵션을 true로 재정의 바랍니다.
      2. 자체적으로 Firebase 애널리틱스 지표 수집 시 유저의 Android 광고 Id를 수집할 경우 프로젝트의 AndroidManifest.xml에서 google_analytics_adid_collection_enabled 옵션을 true로 재정의 바랍니다.

     

    Lebi 빌드 설정하기

    • Lebi 빌드 AndroidManifest 설정은 기존 Android 가이드 페이지의 ‘Lebi Market 설정‘을 참고 바랍니다.

    OneStore 빌드 설정하기

    • OneStore 빌드 AndroidManifest 설정은 기존 Android 가이드 페이지의 ‘OneStore Market 설정‘을 참고 바랍니다.

    Huawei 빌드 설정하기

    1. Project 폴더에 Huawei 콘솔에서 다운로드한 agconnect-services.json 파일을 추가합니다.
      • C2S.19.8.1 이상 적용 시 agconnect.service.json 파일을 Huawei 콘솔에서 새로 다운로드하시기 바랍니다.
    2. Project 폴더 내 build.gradle 파일에 아래 내용을 추가합니다.
      • Proguard 사용시 난독화 제외 설정
        -ignorewarnings
        -keepattributes *Annotation*
        -keepattributes Exceptions
        -keepattributes InnerClasses
        -keepattributes Signature
        -keepattributes SourceFile,LineNumberTable
        -keep class com.huawei.hianalytics.**{*;}
        -keep class com.huawei.updatesdk.**{*;}
        -keep class com.huawei.hms.**{*;}
      • AndroidManifest 설정
        Huawei를 적용하는 모든 버전에서 요구됩니다.

    3. Huawei 라이브러리 설정

      • 해당 페이지의 외부 라이브러리 의존성 가이드 참고바랍니다.
      • hms:game 라이브러리는 C2S.20.1.3 버전에서 개별모듈에 대한 의존성이 제거되었습니다.
        • 기존 C2S 개별모듈 패키지들은 hms:game 라이브러리에 대한 API 기능은 사용하고 있지 않았습니다.
        • Huawei Global 빌드에서 hms:game 라이브러리를 사용하는 게임 프로젝트는 자체적인 라이브러리 적용 및 관련 기능 구현을 해주세요.
        • 다만, C2S 개별모듈을 통해 hms:game 라이브러리의 초기화만 진행하고 싶은 경우 hms:game 6.1.0.301 버전을 gradle에 추가하면 됩니다.

    AndroidManifest 설정

    • C2S.19.6 미만 버전 사용 중 업데이트 하는 경우 아래의 안내에 따라 파일 내용을 수정하세요.
    • AndroidManifest 설정 예시
      패키징에 포함된 샘플앱이 사용하는 AndroidManifest.xml 설정에 대한 예시입니다.
      C2S.19.6부터는 Hive SDK 초기화 단계에서 위험 권한(Dangerous Permissions)을 자동 요청하지 않습니다. Active User에서 제공하는 권한 요청 API(ActiveUserRequestUserPermissions)나 별도로 구현하여 사용 중인 API로 권한을 요청하세요.

    strings.xml 설정하기

    res/values/strings.xml 파일에 아래와 같이 설정합니다.

    • “app_id” 값에 Google App ID를 입력하세요.

      • 예. 331526026701
    • “applicationId” 값에 Facbook App ID를 입력하세요.

      • 예. 1809615065921877
    • "google_server_client_id" 값에 Google 로그인 시 필요한 웹 애플리케이션의 Client ID를 입력하세요. (필수)

      • 예. 331526026701-42uaawseweereght91f7saspdg92erggel6mv.apps.googleusercontent.com
    • "google_play_games_server_client_id" 값에 Google Play Games 로그인 시 필요한 웹 애플리케이션의 Client ID를 입력하세요. 보통 "google_server_client_id"에 입력한 값과 같습니다. (필수)

      • 예. 331526026701-42uaawseweereght91f7saspdg92erggel6mv.apps.googleusercontent.com
    • WeChat Pay 충전 지원 시 “wechat_appid” 값에 WeChat에서 발급받은 AppID를 입력하세요.

      • 예. wx810adfc018b5f0bd
    • WeChat Pay 충전 지원 시 “wechat_key” 값에 WeChat에서 발급받은 key를 입력하세요.

      • 예. auILMZisSYHnEb4ISD58QYm7uETdVX6d
    • QQ 로그인 지원 시 “qq_appid” 값에 QQ에서 발급받은 APPID를 입력하세요.

      • 예. 101518248

    hive_config.xml 설정하기

    hive_config.xml 파일은 게임 프로젝트에 반드시 포함되어야 합니다.
    Hive SDK(혹은 C2S 개별모듈)의 설정 파일은 xml 기반으로 구성되어 있으며, Hive 클라이언트는 hive_config.xml 파일에 있는 값으로 초기화합니다. 앱 실행 중 변경되지 않는 정적인 항목은 모두 파일에서 설정하기를 권장합니다. Hive SDK(혹은 C2S 개별모듈) 설정 파일은 반드시 hive_config.xml로 명명되어 아래의 파일 저장 경로에 위치해야 합니다.

    • Android 환경에서는 hive_config.xml 파일이 반드시 필요합니다.
    • iOS 환경에서는 아래에 안내하는 파일 저장 경로에 hive_config.xml 파일이 포함되어 있는 경우 hive_config 설정을 사용합니다. 다만, iOS에서는 hive_config.xml 파일이 없어도 Hive SDK 동작이 가능하므로 hive_config.xml 설정이 필수사항은 아닙니다.
    파일 저장 경로

    Unity

        • iOS: <프로젝트_루트>/Assets/Plugins/iOS/
        • Android
          –   Unity 2021 이상: <프로젝트_루트>/Assets/HiveSDK/hive.androidlib/src/main/res/raw
          –   Unity 2021 미만: <프로젝트_루트>/Assets/Plugins/Android/res/raw/

    Unity 외

      • iOS: <프로젝트 이하>       (샘플 프로젝트의 경우 /Resource 하위에 위치함)
      • Android: <프로젝트>…/res/raw
    요소 설명
    zone Hive 클라이언트가 접속할 서버
    CS_ActiveUserStartEx API 호출 시 설정한 서버 값이 hive_config보다 상위 우선순위로 적용됩니다.

    • real: 운영 서버 (상용 서버)
    • sandbox: 샌드박스 서버
    useLog Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부
    CS_ActiveUserSetLogged API 호출 시 설정한 로그 사용 여부 값이 hive_config보다 상위 우선순위로 적용됩니다.

    • true: 로그 활성화
    • false: 로그 비활성화
    ageGateU13 Hive SDK에서 COPPA 적용 여부

    • true: COPPA ageGateU13 설정
    • false: COPPA ageGateU13 설정하지 않음
    usePush Hive SDK Push 사용 여부
    CS_pushsSetPush API 호출 시 설정한 push 사용 여부 값이 hive_config보다 상위 우선순위로 적용됩니다.

    • true: push 사용
    • false: push 미사용
    permissions – sdwrite Hive 초기화 시 요청할 권한의 요청 여부 (Android 전용)
    sdwrite 값을 true로 사용할 경우 CS_ActiveUserSetEnableRequestStoragePermission API 호출도 동반되어야 합니다.

    • true: 외부 저장소 권한 요청
    • false: 외부 저장소 권한 요청하지 않음
    company 게임 퍼블리싱 업체

    • C2S: 컴투스 게임
    • GVI: 컴투스홀딩스 게임
    market 게임 앱이 사용하는 마켓 플랫폼
    Google과 Lebi를 함께 사용하는 빌드는 GOLE 중 하나를 입력합니다.

    • GO: Google PlayStore
    • LE: Lebi
    • AP: Apple AppStore
    channel 게임 앱에서 사용하고 있는 로그인 서비스 플랫폼

    • C2S: Hive 플랫폼 (기본값)
    httpConnectTimeout Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초)
    기본값은 8초(이전 10초에서 변경, C2S.20.1.5+)로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지
    httpReadTimeout Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초)
    기본값은 8초(이전 10초에서 변경, C2S.20.1.5+)로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지
    maxGameLogSize 비정형 데이터 파일로 저장하는 게임 로그의 최대 저장 개수
    Hive 애널리틱스 v2에서 이 값을 수집
    기본값은 50개로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지
    hiveOrientation Hive 클라이언트에서 노출하는 UI의 노출 방향을 미리 정의
    게임 앱의 노출 방향에 따라 설정 필요

    • all: 가로 및 세로 방향 전환 지원 앱
    • landscape: 가로 방향 지원 앱
    • portrait: 세로 방향 지원 앱
    provider Hive 클라이언트에서 사용하는 서드 파티 라이브러리에 대한 속성값 지정
    (SDK v1 및 C2S 개별모듈에서는 provider 옵션을 사용하지 않음)
    • hive_config.xml 예제

    기타 설정하기

    Com2uS 개별모듈 > 개발 환경 구축 > Android > 기타 설정하기FCM 설정을 모두 제거하세요.

    Android Activity Lifecycle

    Com2uS 개별모듈 > 개발 환경 구축 > Android > Android Activity Lifecycle에서 각 모듈 객체가 호출하는 Android Lifecycle 메서드를 모두 제거하세요. 이후 HiveActivity의 Lifecycle 메서드만 존재하도록 합니다.

    • 제거 대상 코드
      • Peppermint와 관련된 Android Lifecycle 메서드 제거
      • ActiveUser와 관련된 Android Lifecycle
        해당 코드는 아직 제공되고 있으므로, CPlugin의 코드를 이미 사용하고 있다면 유지하세요.
      • InAppV1과 관련된 Android Lifecycle 메서드 제거
      • 기타 Android Lifecycle 메서드 제거
    • HiveActivity Lifecycle 구성
      ​ HiveActivity를 적용함에 따라 게임 프로젝트 내 활동 생명 주기(Activity Lifecycle) 메서드가 호출되는 동작 특이사항

      • Android 홈 키를 사용하거나 Google, Facebook 등의 외부 라이브러리 API 동작을 포함한 모듈 동작에서도 다음과 같이 게임에서 실행 중인 Activity에 onPause() 또는 onResume() 메서드가 호출됩니다. 자체 로직 구현 시 참고 바랍니다.
        C2S 버전 모듈 관련 동작
        C2S.19.6 미만
        • HivePromotion 새소식 및 InAppV4 UI 노출 시 게임에서 실행 중인 Activity에 onPause()가 호출됨 (HiveActivity 생성)
        • 해당 UI 종료 시 게임에서 실행 중인 Activity에 onResume()이 호출됨 (HiveActivity 종료)
        C2S.19.6 이상
        • 모듈에서 제공하는 대부분의 UI 노출 시 게임에서 실행 중인 Activity에 onPause()가 호출됨 (HiveActivity 생성)
        • 해당 UI 종료 시 게임에서 실행 중인 Activity에 onResume()이 호출됨 (HiveActivity 종료)

    C Plugin 환경에서 각 모듈 객체 호출 및 생명주기 코드 호출 예

    아래 예제 코드는 Cocos2d-x를 적용한 개별모듈 샘플(C 혹은 C++ 환경)을 예로 구성하였습니다. 게임 프로젝트 환경에 따라 차이가 발생할 수 있으며 특이사항이 있을 경우 컴투스플랫폼 클라이언트팀에 문의바랍니다.
    C2S.19.6 미만 패키징을 사용했을 때의 예와 C2S.19.6 이상 개별모듈 패키징을 사용했을 때의 예로 구성되어있습니다.

    Gradle 설정하기

    • Hive SDK C2S 21.0.2 부터 지원하는 minSdkVersion은 21 입니다.
    • Hive SDK C2S 21.0.2 부터 Hive SDK BOM(Bill of Materials)을 지원합니다.
      • Hive SDK BOM을 사용하면 BOM 버전만 하나만 지정하여 모든 Hive SDK 라이브러리 및 선택 가능한 외부 라이브러리 버전을 관리할 수 있습니다.
      • BOM에는 안정적으로 호환가능한 버전 정보가 표기되어 있습니다. BOM을 사용하여 프로젝트를 구성하면 개별 라이브러리의 버전을 추가하지 않아도 BOM의 정보를 기준으로 자동 설정됩니다. BOM 버전을 업데이트하면 사용 중인 모든 라이브러리가 새 버전으로 자동 업데이트 됩니다.
      • Hive SDK BOM 버전별 매핑되는 라이브러리를 확인하기 위해 상단 다운로드 페이지의 릴리즈 노트를 확인해주세요.

    아래 설정 예제는 BOM을 사용하여 구성된 Gradle 설정입니다. C2S 21.0.2 이전의 Gradle 설정을 확인하려면 아래 “Hive SDK C2S 21.0.2 이전의 gradle 설정”을 참고하세요.

    Hive SDK C2S 21.0.2 이전의 gradle 설정

     

     

    모듈 로그 활성화

    C2S.19.6 이후 모든 모듈이 CS_ActiveUserSetLogged(bool) API로 작동합니다.

    • 다른 모듈에서 로그 활성화 하는 코드를 제거하세요.
    • 상용 배포 시 CS_ActiveUserSetLogged API를 호출하지 않거나 매개변수를 false로 호출하도록 합니다.

     


    사용 중단된 API

    C2S.19.6 이상 버전에서 각 모듈의 API 중 일부는 사용 중단되어 더이상 동작하지 않습니다. 아래의 내용은 Hive Devleopers의 개별모듈 API 레퍼런스를 기준으로 작성된 사용 중단된 API 목록입니다. 목록 중 사용하고 있는 API가 포함되어 있다면 제거하시기 바랍니다.
    (C2S.20.0에서 아래 가이드된 API들은 코드에서 제거되었습니다. 사용 중단된 API를 사용 중이라면 빌드 시 에러가 발생할 수 있으므로 아래 목록에 포함된 API는 반드시 삭제하시기 바랍니다.)

    ActiveUser
    Java API C Plugin API Unity API 비고
    UserAgreeReset CS_UserAgreeReset resetUserAgree 불필요 API (과거 계정 로그아웃 시 약관정보를 다시 노출하던 정책하에서 사용)
    useTestServer CS_ActiveUserUserTestServer userTestServer 불필요 API (CS_ActiveUserStartEx / CS_ActiveUserStartWithoutNotice로 대체하여 CS_ActiveUserRegisterTokenSERVER_STATE 선택)
    CS_UserAgreeSetView 미사용 API (과거 약관동의 뷰) (iOS only)
    CS_UserAgreeShowUI CS_UserAgreeUnityShowUI 미사용 API (과거 약관동의 뷰) (iOS only)
    CS_UserAgreeShowUIEx CS_UserAgreeUnityShowUIEx 미사용 API (과거 약관동의 뷰) (iOS only)
    CS_ActiveUserSetVID 로그인 계정에 맞춰 VID 자동으로 세팅 (iOS only)
    CS_ActiveUserRegisterToken 미사용 내부 함수 (개별모듈 내 push token 인식용) (iOS only)
    setEnableUserAgreeUI CS_UserAgreeUnityShowUI setEnableUserAgreeUI 미사용 API
    setEnableUserAgreeUI(int) CS_UserAgreeUnityShowUIEx(int) setEnableUserAgreeUI(int) 미사용 API
    Peppermint
    Java API C Plugin API Unity API 비고
    GetIsPGS CS_hubGetIsPGS GetIsPGS 미사용 API (Android only)
    PgsLoginProc CS_hubPGSLoginProc PgsLoginProc 미사용 API (Android only)
    SetOption CS_hubSetOption SetOption 미사용 내부 함수 (개별모듈/통합모듈 구분용)
    SocialRequest (social/logout) CS_hubSocialRequest(“social/logout”, …) SocialRequest(“social/logout”, …) 미사용 API
    AsyncRequest (guest/status_savedata) CS_hubAsyncRequest(“guest/status_savedata”, …) AsyncReqyest(“guest/status_savedata”, …) 미사용 API
    AsyncRequest (savedata/delete) CS_hubAsyncRequest(“savedata/delete”, …) AsyncReqyest(“savedata/delete”, …) 미사용 API
    AsyncRequest (savedata/download) CS_hubAsyncRequest(“savedata/download”, …) AsyncReqyest(“savedata/download”, …) 미사용 API
    AsyncRequest (savedata/upload) CS_hubAsyncRequest(“savedata/upload”, …) AsyncReqyest(“savedata/upload”, …) 미사용 API
    Initialize CS_hubInitialize Initialize InitializeEx API로 대체 가능
    Uninitialize CS_hubUninitialize Uninitialize 불필요 동작
    CS_hubApplicationDidBecomeActive C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    CS_hubApplicationOpenURL C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    Mercury
    Java API C Plugin API Unity API 비고
    SetUid CS_MercurySetUid setUid 로그인 성공 시 모듈에 uid가 내부적으로 설정됩니다.
    SetIsUsingStaging CS_MercurySetIsUsingStaging setIsUsingStaging ActiveUser-StartEx API에 따라 serverState 영향을 받습니다.
    mercuryGetBadgeType CS_MercuryGetBadgeType CS_MercuryGetBadge로 대체
    setLogged CS_MercurySetLog setLog CS_ActiveUserSetLogged로 로그 노출 여부를 결정
    Offerwall
    Java API C Plugin API Unity API 비고
    RewardFinish CS_OfferwallRewardFinish rewardFinish
    show CS_OfferwallShow show showEx API로 사용하세요.
    setLogged CS_OfferwallSetLog setLogged
    Push
    Java API C Plugin API Unity API 비고
    SetUid CS_pushSetUid setUid 로그인 성공 시 모듈에 uid가 내부적으로 설정됩니다.
    SetSound CS_pushSetSound setSound (Android only)
    SetVid CS_pushSetVib setVib (Android only)
    GetSound CS_pushGetSound getSound (Android only)
    GetVib CS_pushGetVib getVib (Android only)
    CS_hlpPushSendPromoCodeEx C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    CS_hlpPushRegisterToken
    CS_hlpPushRegisterTokenEx
    C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    CS_hlpPushLoadOption 미사용 API (이미 사용 중단된 상태) (iOS only)
    setUseTestServer CS_hlpPushUseTestServer
    CS_hlpPushUseTestServerEx
    setUserTestServer CS_ActiveUserStartEx / CS_ActiveUserStartWithoutNotice에서 CS_ActiveUserRegisterTokenSERVER_STATE 선택하도록 통합
    CS_hlpPushGetVersion 미사용 API (이미 사용 중단된 상태이므로 CS_hlpPushGetVersionEx 사용하도록 가이드) (iOS only)
    CS_hlpPushDefaultActionOnLaunch C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    CS_pushSetUNUserNotification C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    start CS_pushStartEx start (for Android)
    또는
    startEx (for iOS)
    pushStart 호출 더이상 필요 없음
    CS_hlpPushSendOpen C2SAppDelegate/HiveAppController didFinishLaunchingWithOptions API 호출 시 자동 대체 (iOS only)
    setUseThirdPartyPush setUseThirdPartyPush
    setAppIdForIdentity setAppIdForIdentity
    setOperationOnRunning setOperationOnRunning
    InAppV4
    Java API C Plugin API Unity API 비고
    SetUid CS_IapV4SetUid SetUid 로그인 성공 시 모듈에 uid가 내부적으로 설정됩니다.
    HivePromotion
      • 없음

     


    추가 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 가이드를 참고해주세요.