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 동영상 기능 사용 시 아래 라이브러리 포함
    • YouTubeAndroidWebPlayerApi.aar
    • YouTubeAndroidPlayerApi.jar
    • open_sdk_3.5.14.3_rc26220c_lite.jar
      • C2S.20.1.4 부터 파일 미포함, 미사용
  • 원스토어 기능 사용 시
    • 원스토어 v4 버전 적용 시 아래 라이브러리 포함
    • 원스토어 v6 버전 적용 시 아래 라이브러리 포함
      • onestore_iap_sdk-v19.00.02.aar
        • C2S.21.0.2 부터 파일 미포함, 미사용
    • 원스토어 v7 버전 적용 시 build.gradle 설정을 따름
  • 러비 사용 시 아래 라이브러리 포함
  • 삼성 갤럭시 스토어 사용 시 아래 라이브러리 포함
    • samsung_iap_sdk-v6.1.aar
  • 아마존 Push 사용 시 아래 라이브러리 포함
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부터 /Unity/Project/Assets/Plugins 를 구성하였던 Unity Plugin Java 파일들은 제거되었습니다. 관련 코드는 hive-service-x.x.x.aar 라이브러리에 포함됩니다.

 


변경 사항

대체되는 라이브러리

아래 표를 참고하여 기존 라이브러리 목록의 파일은 제거하고, C2S.19.6 패키지에 대체된 변경 라이브러리 목록의 파일을 추가하세요.
대체된 라이브러리 파일은 Module_Package/Android/libs 디렉토리 내에 포함되어 있습니다.

기존 라이브러리 변경 라이브러리 변경 라이브러리(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 설정하기’를 참고하세요.
  • Hive SDK C2S 23.2.2부터 Hive 라이브러리 구조가 변경되었습니다.

외부 라이브러리 의존성 설정(C2S.20.1.3 이상)

// 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.23.2.2 이상)

// C2S 개별모듈 설정하기
// 필요한 서비스에 맞는 Hive 라이브러리 선언 시 관련 외부 라이브러리들은 별도 선언 없이 Hive에서 로드합니다.
// C2S 23.2.2 이전 외부 라이브러리 의존성 설정에서 추가 선언하고 있던 외부 라이브러리에 대해선 추가 설정 필요없이 Hive 라이브러리 선언으로 자동 포함됩니다.// Hive SDK Main Dependency —
// HIVE_SDK_VERSION으로 매칭되는 HiveSDK v4 버전을 설정합니다. 해당하는 HiveSDK v4 버전은 아래 표를 참고 바랍니다.
implementation “com.com2us.android.hive:hive-sdk:$HIVE_SDK_VERSION” // (필수 적용)
implementation “com.com2us.android.hive:hive-plugin-c2s:$HIVE_SDK_VERSION” // (필수 적용)

// Hercules
implementation “com.com2us.android.hive:hive-hercules:$HIVE_SDK_VERSION” // Hercules 사용 시

// IDP Dependency —
// Facebook
implementation “com.com2us.android.hive:hive-authv4-provider-facebook:$HIVE_SDK_VERSION” // Facebook 로그인 사용 시
// Google SignIn
implementation “com.com2us.android.hive:hive-authv4-provider-google-signin:$HIVE_SDK_VERSION” // Google 로그인 사용 시
implementation “com.com2us.android.hive:hive-authv4-google-inappupdate:$HIVE_SDK_VERSION”
implementation “com.com2us.android.hive:hive-authv4-google-recaptcha:$HIVE_SDK_VERSION” // 리캡차 사용 시
// Google PlayGames
implementation “com.com2us.android.hive:hive-authv4-provider-google-playgames:$HIVE_SDK_VERSION” // Google Games on PC 빌드 시
// Huawei (Global)
implementation “com.com2us.android.hive:hive-service-extension-huawei:$HIVE_SDK_VERSION” // Huawei 글로벌 빌드 시
// Hive
implementation “com.com2us.android.hive:hive-authv4-provider-hive-membership:$HIVE_SDK_VERSION” // Hive 로그인 사용 시 (필수 적용)
// Wechat
implementation “com.com2us.android.hive:hive-authv4-provider-wechat:$HIVE_SDK_VERSION” // Wechat 로그인 사용 시
// VK
implementation “com.com2us.android.hive:hive-authv4-provider-vk:$HIVE_SDK_VERSION” // VK 로그인 사용 시
// QQ
implementation “com.com2us.android.hive:hive-authv4-provider-qq:$HIVE_SDK_VERSION” // QQ 로그인 사용 시

// Push Dependency —
// Google FCM
implementation “com.com2us.android.hive:hive-push-google-fcm:$HIVE_SDK_VERSION” // FCM 사용 시
// Amazon Device Messaging
implementation “com.com2us.android.hive:hive-push-amazon-adm:$HIVE_SDK_VERSION” // Amazon 빌드 시

// Analytics Dependency —
// C2S 개별모듈의 경우 트래킹 기능을 지원하지 않음
// Adjust
//implementation “com.com2us.android.hive:hive-analytics-provider-adjust:$HIVE_SDK_VERSION”
// AppsFlyer
//implementation “com.com2us.android.hive:hive-analytics-provider-appsflyer:$HIVE_SDK_VERSION”
// Singular
//implementation “com.com2us.android.hive:hive-analytics-provider-singular:$HIVE_SDK_VERSION”

// IAP Dependency —
implementation “com.com2us.android.hive:hive-iapv4-market-google:$HIVE_SDK_VERSION” // PlayStore 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-amazon:$HIVE_SDK_VERSION” // Amazon 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-lebi:$HIVE_SDK_VERSION” // 러비 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-onestore:$HIVE_SDK_VERSION” // OneStore v7 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-onestore-v4:$HIVE_SDK_VERSION” // OneStore v4 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-samsung:$HIVE_SDK_VERSION” // GalaxyStore 빌드 시
implementation “com.com2us.android.hive:hive-iapv4-market-huawei:$HIVE_SDK_VERSION” // Huawei 글로벌 빌드 시

// Promotion Dependency —
implementation “com.com2us.android.hive:hive-promotion:$HIVE_SDK_VERSION” // (필수 적용)
implementation “com.com2us.android.hive:hive-promotion-google-inappreview:$HIVE_SDK_VERSION”
implementation “com.com2us.android.hive:youtube-helper:1.0.1” // 프로모션 동영상 기능 사용 시

// Other Dependency —
implementation ‘com.android.installreferrer:installreferrer:2.2’

 

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

  • 버전 첫째 자리
    • C2S.23.2.2 미만: 4값 고정
    • C2S.23.2.2 이상: 사용하지 않음
  • 버전 둘째 자리:
    • 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.2.2 23.2.2

아마존 빌드 설정하기

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-x.x.x.jar 는 프로젝트의 libs 이하에 위치하지 않고 /libs/external에 위치합니다.
    • C2S 23.2.2부터 amazon-device-messaging-x.x.x.jar 라이브러리는 hive:push:amazon-adm 라이브러리에 포함되었습니다.

 

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 설정 방법은 아래와 같습니다.

  • IAP v4 사용 시: 별도 설정 필요 없음
  • 기타: Wechat Pay 충전 기능을 지원하면서 Android 11 (API 30) 대응 시, AndroidManifest 설정 필요
    • Android 11 이상 단말에서 Wechat Pay 사용 및 targetSDK 버전을 30이상 적용하여 Wechat Pay 사용 시

OneStore 빌드 설정하기

OneStore 빌드 설정하기 방법은 아래와 같습니다.

  • OneStore V4 결제를 지원하는 경우
    • AndroidManifest 하위에 아래와 같이 추가합니다.
    • 프로젝트 수준 build.gradle 내용 추가

      ※ 별도 설정 필요 없음

    • 모듈 수준 build.gradle 내용 추가

  • OneStore V5 결제를 지원하는 경우
    • AndroidManifest 하위에 아래와 같이 추가합니다.

  • OneStore V6 결제를 지원하는 경우
    • 별도 설정 필요 없음
  • OneStore V7 결제를 지원하는 경우
    • 프로젝트 수준 build.gradle 내용 추가

    • 모듈 수준 build.gradle 내용 추가

  • 기타
    • Android 11 (API 30) 대응 시 AndroidManifest 추가 설정
      • Android 11 이상 단말 사용 및 targetSDK 버전을 30 이상 적용 사용 시

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 버전별 매핑되는 라이브러리를 확인하기 위해 상단 다운로드 페이지의 릴리즈 노트를 확인해주세요.

Hive SDK C2S 적용 버전에 따라 Gradle 설정 방법이 달라집니다. 아래와 같이, BOM을 사용하여 구성한 Gradle 설정 예제를 참고하세요.

C2S 23.2.2 이상 gradle 설정

C2S 21.0.2 이상 gradle 설정

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