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
- C2S.20.2.2 부터 파일 미포함
- C2S.20.2.2 부터 build.gradle 설정을 따름
- YouTubeAndroidPlayerApi.jar
- open_sdk_3.5.14.3_rc26220c_lite.jar
- C2S.20.1.4 부터 파일 미포함, 미사용
- YouTubeAndroidWebPlayerApi.aar
- 원스토어 기능 사용 시
- 원스토어 v4 버전 적용 시 아래 라이브러리 포함
- InAppTstoreSDKv4-16.06.00_20201007.jar
- C2S.23.2.2 부터 파일 미포함
- C2S.23.2.2 부터 build.gradle 설정을 따름
- InAppTstoreSDKv4-16.06.00_20201007.jar
- 원스토어 v6 버전 적용 시 아래 라이브러리 포함
- onestore_iap_sdk-v19.00.02.aar
- C2S.21.0.2 부터 파일 미포함, 미사용
- onestore_iap_sdk-v19.00.02.aar
- 원스토어 v7 버전 적용 시 build.gradle 설정을 따름
- 원스토어 v4 버전 적용 시 아래 라이브러리 포함
- 러비 사용 시 아래 라이브러리 포함
- alipaySdk-15.6.8-2019021122514.aar
- 해당 라이브러리를 포함하지 않는 경우에는 알리페이 앱이 아닌 웹 페이지에서 알리페이 충전이 진행됨
- C2S.20.2.2 부터 파일 미포함
- C2S.20.2.2 부터 build.gradle 설정을 따름
- C2S.23.2.2 부터 hive-iapv4-market-lebi 라이브러리에 포함되었음
- alipaySdk-15.6.8-2019021122514.aar
- 삼성 갤럭시 스토어 사용 시 아래 라이브러리 포함
- samsung_iap_sdk-v6.1.aar
- 아마존 Push 사용 시 아래 라이브러리 포함
- amazon-device-messaging-1.0.1.jar
- C2S 23.2.2에서 hive:push:amazon-adm 라이브러리에 포함되었음
- C2S 23.2.2에서 hive:push:amazon-adm 라이브러리에 포함되었음
- 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부터 /Unity/Project/Assets/Plugins 를 구성하였던 Unity Plugin 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 설정으로 대체됩니다.
기존 라이브러리 | 변경 라이브러리 | 변경 라이브러리(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 저장소 권한을 요청하려는 경우
1234567891011…… (생략)...<!-- 권한 요청 관련 설정 --><!-- 외장 메모리 권한 요청 여부. 이 필드가 true 이면 SDK 초기화시 SDK 내부에서 외장 메모리 접근에 대한 권한 요청 창을 띄운다 - Android only (true, false) -->true… (생략)...
- 모듈 초기화 시 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” // Kotlin Dependency // Firebase Cloud Messaging Dependency // Google Play Services Dependency // (C2S.19.6 이상 ~ C2S.20.1.3 미만) // (C2S.20.1.3 이상 ~ C2S.20.2.2 미만) // Facebook Dependency // Huawei Dependency // IDP Dependency // Jetpack Dependency // Analytics Dependency // Other Dependency |
외부 라이브러리 의존성 설정(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 // IDP Dependency — // Push Dependency — // Analytics Dependency — // IAP Dependency — // Promotion Dependency — // Other Dependency — |
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에 설정
123<meta-data android:name="com.hive.iapv4.amazon_purchase_delay" android:value="8" />
- 5~30초 사이 값을 value에 설정
- Amazon Push 사용 시 아래 설정이 필요합니다.
1234567891011121314151617<service android:name="com.hive.push.adm.ADMMessageHandler" android:exported="false" /><receiver android:name="com.hive.push.adm.ADMReceiver" android:permission="com.amazon.device.messaging.permission.SEND" android:exported="true"><intent-filter><action android:name="com.amazon.device.messaging.intent.REGISTRATION" /><action android:name="com.amazon.device.messaging.intent.RECEIVE" /><category android:name="{게임 패키지 이름}"/></intent-filter></receiver><meta-data android:name="AmazonAPIKey" android:value="{Your API Key}"/> <amazon:enable-feature android:name="com.amazon.device.messaging" android:required="true" /><permission android:name="{게임 패키지 이름}.permission.RECEIVE_ADM_MESSAGE" android:protectionLevel="signature"/><uses-permission android:name="{게임 패키지 이름}.permission.RECEIVE_ADM_MESSAGE"/><uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE"/> - 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
라이브러리에 포함되었습니다.
- C2S 23.2.2부터
Firebase 설정하기
- C2S.19.8부터 Firebase에서 요구하는 manifest 설정이 아래와 같이 기본으로 포함되어 있습니다.
1234// Hive SDK의 기본 포함된 설정<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" /><meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" /> - 개발팀에서 Firebase의 애널리틱스 지표 기능을 자체적으로 사용하는 경우에는 아래의 내용을 확인하세요.
- 자체적으로 Firebase 애널리틱스 지표 수집 기능을 사용할 경우 프로젝트의 AndroidManifest.xml에서
firebase_analytics_collection_enabled
옵션을true
로 재정의 바랍니다.
123// 재정의<meta-data android:name="firebase_analytics_collection_enabled" android:value="true" tools:node="replace"/> - 자체적으로 Firebase 애널리틱스 지표 수집 시 유저의 Android 광고 Id를 수집할 경우 프로젝트의 AndroidManifest.xml에서
google_analytics_adid_collection_enabled
옵션을true
로 재정의 바랍니다.
123// 재정의<meta-data android:name="google_analytics_adid_collection_enabled" android:value="true" tools:node="replace"/>
- 자체적으로 Firebase 애널리틱스 지표 수집 기능을 사용할 경우 프로젝트의 AndroidManifest.xml에서
Lebi 빌드 설정하기
Lebi 빌드 AndroidManifest 설정 방법은 아래와 같습니다.
- IAP v4 사용 시: 별도 설정 필요 없음
- 기타: Wechat Pay 충전 기능을 지원하면서 Android 11 (API 30) 대응 시, AndroidManifest 설정 필요
- Android 11 이상 단말에서 Wechat Pay 사용 및 targetSDK 버전을 30이상 적용하여 Wechat Pay 사용 시
12345678<manifest package=”com.com2us….”><queries><package android:name=”con.tencent.mm” /></queries><!-- 생략 --></manifest>
- Android 11 이상 단말에서 Wechat Pay 사용 및 targetSDK 버전을 30이상 적용하여 Wechat Pay 사용 시
OneStore 빌드 설정하기
OneStore 빌드 설정하기 방법은 아래와 같습니다.
- OneStore V4 결제를 지원하는 경우
- AndroidManifest 하위에 아래와 같이 추가합니다.
1234567891011// C2S.19.2+ (InAppV4Plugin v4.15.2.2+)에서 InAppV4 원스토어 V4 적용 시 tools:replace 설정을 반드시 추가해야 합니다.<meta-dataandroid:name="iap:api_version"android:value="4"tools:replace="android:value"/><activity android:name="com.skplanet.dodo.IapWeb"android:configChanges="orientation|locale|keyboardHidden|layoutDirection|screenSize"android:excludeFromRecents="true"android:windowSoftInputMode="stateHidden" /> -
프로젝트 수준 build.gradle 내용 추가
※ 별도 설정 필요 없음
-
모듈 수준 build.gradle 내용 추가
1234567dependencies {...implementation "com.com2us.android.hive:hive-iapv4-market-onestore-v4" // C2S 23.2.2 이상...}
- AndroidManifest 하위에 아래와 같이 추가합니다.
- OneStore V5 결제를 지원하는 경우
- AndroidManifest 하위에 아래와 같이 추가합니다.
123<meta-data android:name="iap:api_version" android:value="5" />
- AndroidManifest 하위에 아래와 같이 추가합니다.
- OneStore V6 결제를 지원하는 경우
- 별도 설정 필요 없음
- OneStore V7 결제를 지원하는 경우
- 프로젝트 수준 build.gradle 내용 추가
123456789allprojects {repositories {...maven { url 'https://repo.onestore.co.kr/repository/onestore-sdk-public' } // only for OneStore...}}
- 모듈 수준 build.gradle 내용 추가
1234567dependencies {...implementation "com.com2us.android.hive:hive-iapv4-market-onestore" // 국내, 글로벌 빌드 구분 없이 적용 (C2S 23.2.2 이상)...}
- 프로젝트 수준 build.gradle 내용 추가
- 기타
- Android 11 (API 30) 대응 시 AndroidManifest 추가 설정
- Android 11 이상 단말 사용 및 targetSDK 버전을 30 이상 적용 사용 시
12345678910111213<manifest><queries><intent><action android:name="com.onestore.ipc.iap.IapService.ACTION" /></intent><intent><action android:name="android.intent.action.VIEW" /><data android:scheme="onestore" /></intent></queries></manifest>
- Android 11 이상 단말 사용 및 targetSDK 버전을 30 이상 적용 사용 시
- Android 11 (API 30) 대응 시 AndroidManifest 추가 설정
Huawei 빌드 설정하기
- Project 폴더에 Huawei 콘솔에서 다운로드한 agconnect-services.json 파일을 추가합니다.
- C2S.19.8.1 이상 적용 시 agconnect.service.json 파일을 Huawei 콘솔에서 새로 다운로드하시기 바랍니다.
- Project 폴더 내 build.gradle 파일에 아래 내용을 추가합니다.
12345678910111213141516allprojects {repositories {//...maven {url 'http://developer.huawei.com/repo/'} // huawei}}buildscript {repositories {//...maven {url 'http://developer.huawei.com/repo/'} // huawei}dependencies {//...classpath 'com.huawei.agconnect:agcp:1.9.1.300' // huawei (C2S 23.2.2)}}
- 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를 적용하는 모든 버전에서 요구됩니다.1234567891011121314// Huawei 요구 Android 권한 추가uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />// Android 11 대응을 위한 설정<queries><intent><action android:name="com.huawei.hms.core.aidlservice" /></intent></queries><queries><package android:name="com.huawei.appmarket" /><package android:name="com.huawei.hwid" /></queries>
- Proguard 사용시 난독화 제외 설정
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 미만 버전 사용 중 업데이트 하는 경우 아래의 안내에 따라 파일 내용을 수정하세요.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788// FileProvider 설정이 있는 경우 제거 바랍니다. C2S.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<providerandroid:name="androidx.core.content.FileProvider"android:authorities="com.com2us.Hive SDK.normal.freefull.google.global.android.common.provider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/provider_paths"/></provider>// Promotion Youtube 재생 관련 제거. C2S.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<activityandroid:name="com.com2us.module.hivepromotion.impl.promotion.PromotionVideoActivity"android:hardwareAccelerated="true"android:screenOrientation="sensorLandscape"android:launchMode="standard"/><activityandroid:name="com.com2us.module.hivepromotion.impl.promotion.PromotionWebVideoActivity"android:hardwareAccelerated="true"android:screenOrientation="sensorLandscape"android:theme="@style/Theme.AppCompat.NoActionBar"/><activityandroid:name="com.com2us.module.mercury.MercuryVideoActivity"android:hardwareAccelerated="true"android:screenOrientation="sensorLandscape"android:launchMode="standard"/><activityandroid:name="com.com2us.module.mercury.MercuryWebVideoActivity"android:hardwareAccelerated="true"android:screenOrientation="sensorLandscape"android:theme="@style/Theme.AppCompat.NoActionBar"/>// ActiveUser UserAgree 관련 설정 제거, C2S.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<activity android:name="com.com2us.module.activeuser.useragree.AgreementUIActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale|fontScale" android:screenOrientation="behind" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />// Push 모듈 관련 설정 제거, C2S.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<activity android:name="com.com2us.module.push.ShowMsgActivity" android:launchMode="singleInstance" android:theme="@android:style/Theme.Translucent" /><activity android:name="com.com2us.module.push.NotificationMessage" android:exported="true" android:launchMode="singleInstance" android:theme="@android:style/Theme.Translucent" /><activity android:name="com.com2us.module.push.PushWakeLock" android:launchMode="singleInstance" android:theme="@android:style/Theme.Translucent" /><receiver android:name="com.com2us.module.push.LocalPushReceiver" android:process=":remote" /><receiver android:name="com.com2us.module.push.DeviceStatusReceiver" android:exported="true"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.action.TIME_SET" /><category android:name="com.com2us.Hive SDK.normal.freefull.google.global.android.common" /></intent-filter></receiver>// ActiveUser 관련 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<service android:name="com.com2us.module.activeuser.downloadcheck.InstallService" /><activity android:name="com.com2us.module.activeuser.useragree.AgreementUIActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale|fontScale" android:screenOrientation="behind" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />// Google 관련 아래 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<meta-dataandroid:name="com.google.android.gms.version"android:value="@integer/google_play_services_version" />// FCM 관련 아래 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<service android:name="com.com2us.module.fcm.MessagingService" android:exported="true"><intent-filter><action android:name="com.google.firebase.MESSAGING_EVENT" /></intent-filter></service>// C2SM 관련 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<permission android:name="com.com2us.hivesdk.normal.freefull.google.global.android.common.permission.C2D_MESSAGE" android:protectionLevel="signature" /><uses-permission android:name="com.com2us.hivesdk.normal.freefull.google.global.android.common.permission.C2D_MESSAGE" /><uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />// Android API 30 관련 설정이 있는 경우 제거 바랍니다. C2S.19.6 라이브러리에 관련 설정이 포함되어 있습니다.<queries><package android:name="com.kakao.talk" /><package android:name="jp.naver.line.android" /><package android:name="com.whatsapp" /><package android:name="com.facebook.katana" /><package android:name="com.facebook.orca" /><package android:name="com.tencent.mm" /><package android:name="com.tencent.mobileqq" /><package android:name="com.huawei.appmarket" /><package android:name="com.huawei.hwid" />\</queries>// (단, 게임에서 임의로 외부 앱을 실행하도록 추가된 내용을 유지 바랍니다.) - AndroidManifest 설정 예시
패키징에 포함된 샘플앱이 사용하는 AndroidManifest.xml 설정에 대한 예시입니다.
C2S.19.6부터는 Hive SDK 초기화 단계에서 위험 권한(Dangerous Permissions)을 자동 요청하지 않습니다. Active User에서 제공하는 권한 요청 API(ActiveUserRequestUserPermissions
)나 별도로 구현하여 사용 중인 API로 권한을 요청하세요.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="..(생략).."xmlns:tools="http://schemas.android.com/tools"..(생략)..><!-- 게임 프로젝트에서 사용하는 권한이 있다면 AndroidManifest에 작성 하고 —-><!-- Hive SDK의 권한 요청 API나(또는 C2S 개별모듈 API) 혹은 게임 프로젝트에서 직접 구현하여 획득해야 합니다. —-><!-- (Hive 1.19.6(또는 C2S.19.6) 기준 Hive가 요구로 하는 Dangerous 권한 없음) —-><uses-permission android:name="..(생략).."><application..(생략)..<activity..(생략)..</activity><!- Facebook 설정 (시작) -><!- facebookId와 facebookClientToken으로 표시된 부분에 페이스북 앱아이디와 페이스북 토큰 정보를 입력합니다. -><!— (Facebook SDK v13 이상 시 토큰 필수) —><provider android:authorities="com.facebook.app.FacebookContentProvider${facebookId}"android:name="com.facebook.FacebookContentProvider"android:exported="true" /><meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="fb${facebookId}"/><meta-dataandroid:name="com.facebook.sdk.ClientToken"android:value="${facebookClientToken}"/><meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/><meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled" android:value="false"/><meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="false"/><!- Facebook 설정 (끝) -><!-- Google —-><meta-dataandroid:name="com.google.android.gms.games.APP_ID"android:value="@string/app_id"/><!-- Google —-><!-- QQ Auth (QQ 사용 시 )--><!-- 아래 data 태그에 발급받은 QQ AppId를 입력해주세요 (myQQAppId 부분) --><activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent{myQQAppId}" /></intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden"android:screenOrientation="behind" android:theme="@android:style/Theme.Translucent.NoTitleBar" /><!-- QQ Auth --><!-- Amazon Messaging (Amazon 사용 시 )--><meta-data android:name="AmazonAPIKey" android:value="..(생략).."/><amazon:enable-feature android:name="com.amazon.device.messaging" android:required="true" android:exported="true"/><!-- Amazon Messaging --></application></manifest>
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
- iOS: <프로젝트 이하> (샘플 프로젝트의 경우
요소 | 설명 |
---|---|
zone | Hive 클라이언트가 접속할 서버 CS_ActiveUserStartEx API 호출 시 설정한 서버 값이 hive_config보다 상위 우선순위로 적용됩니다.
|
useLog | Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부 CS_ActiveUserSetLogged API 호출 시 설정한 로그 사용 여부 값이 hive_config보다 상위 우선순위로 적용됩니다.
|
ageGateU13 | Hive SDK에서 COPPA 적용 여부
|
usePush | Hive SDK Push 사용 여부 CS_pushsSetPush API 호출 시 설정한 push 사용 여부 값이 hive_config보다 상위 우선순위로 적용됩니다.
|
permissions – sdwrite | Hive 초기화 시 요청할 권한의 요청 여부 (Android 전용) sdwrite 값을 true로 사용할 경우 CS_ActiveUserSetEnableRequestStoragePermission API 호출도 동반되어야 합니다.
|
company | 게임 퍼블리싱 업체
|
market | 게임 앱이 사용하는 마켓 플랫폼 Google과 Lebi를 함께 사용하는 빌드는 GO 와 LE 중 하나를 입력합니다.
|
channel | 게임 앱에서 사용하고 있는 로그인 서비스 플랫폼
|
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의 노출 방향을 미리 정의 게임 앱의 노출 방향에 따라 설정 필요
|
provider | Hive 클라이언트에서 사용하는 서드 파티 라이브러리에 대한 속성값 지정 (SDK v1 및 C2S 개별모듈에서는 provider 옵션을 사용하지 않음) |
- hive_config.xml 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<!--?xml version="1.0" encoding="UTF-8"?--> <!-- Hive 플랫폼의 서버 선택. sandbox 는 개발용, real 은 실계 (sandbox, real) --> real <!-- SDK 내부 동작 로그 사용 유무 설정 (true, false) --> false <!-- AgeGateU13 적용 여부 --> false <!-- Hive SDK 를 이용한 푸시 서비스 사용 유무 설정 (true, false) --> true <!-- 권한 요청 관련 설정 --> <!-- 외장 메모리 권한 요청 여부. 이 필드가 true 이면 SDK 초기화시 SDK 내부에서 외장 메모리 접근에 대한 권한 요청 창을 띄운다 - Android only (true, false) --> false <!-- 회사 설정 (C2S : 컴투스, GVI : 게임빌) --> C2S <!-- 결제 마켓을 설정 (GO : Google Play, LE : Com2us Lebi, AP : Apple Appstore) --> GO <!-- 체널 설정 (C2S : HIVE 플랫폼) --> C2S <!-- Hive SDK 내부에서 사용되는 HTTP Connect Timeout 시간을 초단위로 설정 (특별한 경우가 아니면 변경 금지) --> 8 <!-- Hive SDK 내부에서 사용되는 HTTP Read Timeout 시간을 초단위로 설정 (특별한 경우가 아니면 변경 금지) --> 8 <!-- 게임 로그 최대 저장 갯수 설정 (특별한 경우가 아니면 변경 금지) --> 50 <!-- Hive Orientation --> all <!-- 외부 소셜 provider 설정 (SDK v1는 provider 관련 설정 없음) --> |
기타 설정하기
Com2uS 개별모듈 > 개발 환경 구축 > Android > 기타 설정하기의 FCM 설정을 모두 제거하세요.
Android Activity Lifecycle
Com2uS 개별모듈 > 개발 환경 구축 > Android > Android Activity Lifecycle에서 각 모듈 객체가 호출하는 Android Lifecycle 메서드를 모두 제거하세요. 이후 HiveActivity의 Lifecycle 메서드만 존재하도록 합니다.
- 제거 대상 코드
- Peppermint와 관련된 Android Lifecycle 메서드 제거
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556// C Plugin 환경@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// .. 제거 (시작)if (HubBridge.getPeppermint() != null) {HubBridge.getPeppermint().onActivityResult(requestCode, resultCode, data);}// .. 제거 (끝)}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {// .. 제거 (시작)if (HubBridge.getPeppermint() != null) {HubBridge.getPeppermint().onRequestPermissionsResult(requestCode, permissions, grantResults);}// .. 제거 (끝)}// Java native, 기타 환경@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// .. 제거 (시작)if (mPeppermint != null) {mPeppermint.onActivityResult(requestCode, resultCode, data);// .. 제거 (끝)}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {// .. 제거 (시작)if (mPeppermint != null) {mPeppermint.onRequestPermissionsResult(requestCode, permissions, grantResults);}// .. 제거 (끝)}// Unity 환경@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// .. 제거 (시작)if (mHubUnityController != null && mHubUnityController.getPeppermint() != null) {mHubUnityController.getPeppermint().onActivityResult(requestCode, resultCode, data);// .. 제거 (끝)}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {// .. 제거 (시작)if (mHubUnityController != null && mHubUnityController.getPeppermint() != null) {mHubUnityController.getPeppermint().onRequestPermissionsResult(requestCode, permissions, grantResults);}// .. 제거 (끝)} - ActiveUser와 관련된 Android Lifecycle
해당 코드는 아직 제공되고 있으므로, CPlugin의 코드를 이미 사용하고 있다면 유지하세요.
12345@Overrideprotected void onResume() {// .. 사용 가능mActiveUser.onCletResumed();} - InAppV1과 관련된 Android Lifecycle 메서드 제거
1234567891011121314151617181920212223242526272829303132333435363738394041// Unity 환경@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// .. 제거 (시작)if(InAppUnityPlugin.getInstance() != null) {InAppUnityPlugin.getInstance().onActivityResult(requestCode, resultCode, data);}// .. 제거 (종료)}// Unity 외 개발 환경@Overrideprotected void onActivityResult(){super.onActivityResult();// .. 제거 (시작)if(mInApp != null)mInApp.onActivityResult();// .. 제거 (종료)}// Lebi 관련 (Unity 환경)@Overrideprotected void onResume(){// .. 제거 (시작)if(InAppUnityPlugin.getInstance() != null) {InAppUnityPlugin.getInstance().onActivityResumed();// .. 제거 (종료)}// Lebi 관련 (Unity 외 개발 환경)@Overrideprotected void onResume(){super.onResume();// .. 제거 (시작)if(mInApp != null)mInApp.onActivityResumed();// .. 제거 (종료)} - 기타 Android Lifecycle 메서드 제거
12345678// onCreate 내 activity 설정 관련@Overrideprotected void onCreate(Bundle savedInstanceState) {// .. 제거 (시작)com.hive.v1.Configuration.setActivity(this);// .. 제거 (종료)}
- Peppermint와 관련된 Android Lifecycle 메서드 제거
- HiveActivity Lifecycle 구성
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364@Overrideprotected void attachBaseContext(Context newBase) {super.attachBaseContext(HiveActivity.attachBaseContext(newBase));}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);HiveActivity.onCreate(this, savedInstanceState);}@Overrideprotected void onStart() {super.onStart();HiveActivity.onStart(this);}@Overrideprotected void onRestart() {super.onRestart();HiveActivity.onRestart(this);}@Overrideprotected void onResume() {super.onResume();HiveActivity.onResume(this);}@Overrideprotected void onPause() {HiveActivity.onPause(this);super.onPause();}@Overrideprotected void onStop() {HiveActivity.onStop(this);super.onStop();}@Overrideprotected void onDestroy() {HiveActivity.onDestroy(this);super.onDestroy();}@Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowFocusChanged(hasFocus);HiveActivity.onWindowFocusChanged(this, hasFocus);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);// intent를 게임 프로젝트에서 자체 처리하는 코드가 있는 경우 HiveActivity.onNewIntent 코드를 가장 나중으로 구현 바랍니다.// HiveActivity.onNewIntent에서 intent 데이터 중복 처리 방지를 위해 intent 데이터 초기화가 발생할 수 있어 intent 데이터 복사 혹은 우선 처리 후 호출 바랍니다.HiveActivity.onNewIntent(this, intent);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);HiveActivity.onActivityResult(this, requestCode, resultCode, data);}// Android SDK 6.0 (android-23) API over@TargetApi(23)@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);HiveActivity.onRequestPermissionsResult(this, requestCode, permissions, grantResults);}- 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 종료)
- HivePromotion 새소식 및 InAppV4 UI 노출 시 게임에서 실행 중인 Activity에
- Android 홈 키를 사용하거나 Google, Facebook 등의 외부 라이브러리 API 동작을 포함한 모듈 동작에서도 다음과 같이 게임에서 실행 중인 Activity에
C Plugin 환경에서 각 모듈 객체 호출 및 생명주기 코드 호출 예
아래 예제 코드는 Cocos2d-x를 적용한 개별모듈 샘플(C 혹은 C++ 환경)을 예로 구성하였습니다. 게임 프로젝트 환경에 따라 차이가 발생할 수 있으며 특이사항이 있을 경우 컴투스플랫폼 클라이언트팀에 문의바랍니다.
C2S.19.6 미만 패키징을 사용했을 때의 예와 C2S.19.6 이상 개별모듈 패키징을 사용했을 때의 예로 구성되어있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
// C2S.19.6 미만 개별모듈 패키징 적용 시 메인 액티비티 코드 예 import ..(생략).. public class AppActivity extends Cocos2dxActivity { // 각 모듈의 생성자를 호출하기 위해 선언 static ActiveUser activeuser; static Mercury mercury; static Offerwall offerwall; static Push push; static InAppV4 inappV4; static Peppermint peppermint; static HubBridge hubBridge; static PromotionJNI promotionJNI; class ViewEx extends SurfaceViewWrapper { public ViewEx(SurfaceView view) { super(view); } @Override public void queueEvent(Runnable paramRunnable) { paramRunnable.run(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HiveActivity.INSTANCE.onCreate(this, savedInstanceState); // Hive SDK v4 라이브러리에 activity를 설정 com.hive.v1.Configuration.setActivity(this); SurfaceView sf = new SurfaceView(this); viewEx = new ViewEx(sf); // 모듈 클래스의 생성자를 구성 setActiveUser(); ..(생략).. } /** * 각 모듈의 생성자를 호출하는 코드 * 생성자 구성 뒤에는 각 모듈의 C 플러그인 API 함수를 통해 자유롭게 기능 호출 */ public static void setActiveUser() { activeuser = new ActiveUser(this, viewEx); } public static void setMercury() { mercury = new Mercury(activity, viewEx); } public static void setOfferwall() { offerwall = new Offerwall(activity, viewEx); } public static void setPush() { push = Push.getInstance(activity); push.setUseCLibrary(viewEx); } public static void setHivePromotion() { promotionJNI = new com.com2us.module.hivepromotion.PromotionJNI(this, viewEx); } public static void setInAppV4() { inappV4 = new InAppV4(viewEx); } public static void setPeppermint() { peppermint = new Peppermint(activity); hubBridge = new HubBridge(); hubBridge.hubInitializeJNI(activity); } // 생명주기 메서드 내에 모듈별 호출 필요 코드 추가 // 각 모듈에 호출 필요했던 코드가 있고 HiveActivity 관련 코드도 같이 존재 @Override protected void onPause() { super.onPause(); HiveActivity.INSTANCE.onPause(this); } @Override protected void onStart() { super.onStart(); HiveActivity.INSTANCE.onStart(this); } @Override protected void onStop() { super.onStop(); HiveActivity.INSTANCE.onStop(this); } @Override protected void onDestroy() { super.onDestroy(); HiveActivity.INSTANCE.onDestroy(this); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); HiveActivity.INSTANCE.onRequestPermissionsResult(this, requestCode, permissions, grantResults); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(hubBridge.getPeppermint() != null) hubBridge.getPeppermint().onActivityResult(requestCode, resultCode, data); HiveActivity.INSTANCE.onActivityResult(this, requestCode, resultCode, data); } @Override protected void onResume() { super.onResume(); HiveActivity.INSTANCE.onResume(this); activeuser.onCletResumed(); } ..(생략).. } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
// C2S.19.6 이상 개별모듈 패키징 적용 시 메인 액티비티 코드 예 import ..(생략).. public class AppActivity extends Cocos2dxActivity { // 각 모듈의 생성자를 호출하기 위해 선언 static ActiveUser activeuser; static Mercury mercury; static Offerwall offerwall; static Push push; static InAppV4 inappV4; // static Peppermint peppermint; // KS C2S에서 제거 static HubBridge hubBridge; static PromotionJNI promotionJNI; class ViewEx extends SurfaceViewWrapper { public ViewEx(SurfaceView view) { super(view); } @Override public void queueEvent(Runnable paramRunnable) { paramRunnable.run(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); HiveActivity.INSTANCE.onCreate(this, savedInstanceState); // Hive SDK v4 라이브러리에 activity를 설정 // com.hive.v1.Configuration.setActivity(this); // KS C2S에서 제거 SurfaceView sf = new SurfaceView(this); viewEx = new ViewEx(sf); // 모듈 클래스의 생성자를 구성 setActiveUser(); ..(생략).. } /** * 각 모듈의 생성자를 호출하는 코드 * 생성자 구성 뒤에는 각 모듈의 C 플러그인 API 함수를 통해 자유롭게 기능 호출 */ public static void setActiveUser() { activeuser = new ActiveUser(this, viewEx); } public static void setMercury() { mercury = new Mercury(activity, viewEx); } public static void setOfferwall() { offerwall = new Offerwall(activity, viewEx); } public static void setPush() { push = Push.getInstance(activity); push.setUseCLibrary(viewEx); } public static void setHivePromotion() { promotionJNI = new com.com2us.module.hivepromotion.PromotionJNI(this, viewEx); } public static void setInAppV4() { inappV4 = new InAppV4(viewEx); } public static void setPeppermint() { // peppermint = new Peppermint(activity); // KS C2S에서 제거 hubBridge = new HubBridge(); hubBridge.hubInitializeJNI(activity); } // 생명주기 메서드 내에 모듈별 호출 필요 코드 추가 // 각 모듈에 호출 필요했던 코드가 있고 HiveActivity 관련 코드도 같이 존재 @Override protected void onPause() { super.onPause(); HiveActivity.INSTANCE.onPause(this); } @Override protected void onStart() { super.onStart(); HiveActivity.INSTANCE.onStart(this); } @Override protected void onStop() { super.onStop(); HiveActivity.INSTANCE.onStop(this); } @Override protected void onDestroy() { super.onDestroy(); HiveActivity.INSTANCE.onDestroy(this); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); HiveActivity.INSTANCE.onRequestPermissionsResult(this, requestCode, permissions, grantResults); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); HiveActivity.INSTANCE.onActivityResult(this, requestCode, resultCode, data); // if(hubBridge.getPeppermint() != null) // hubBridge.getPeppermint().onActivityResult(requestCode, resultCode, data); // KS C2S에서 제거 } @Override protected void onResume() { super.onResume(); HiveActivity.INSTANCE.onResume(this); activeuser.onCletResumed(); // 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 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
android { compileSdkVersion 34 buildToolsVersion "34.0.0" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 21 // Hive SDK C2S minSdkVersion targetSdkVersion 34 versionCode 1 versionName "1.0" // Application에서 사용할 페이스북 AppId. (Facebook 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${facebookId} 항목이 아래의 값으로 치환됨. manifestPlaceholders = [facebookId:"123456789"] // Application에서 사용할 페이스북 Client Token. // AndroidManifest.xml 파일의 ${facebookClientToken} 항목이 아래의 값으로 치환됨 manifestPlaceholders += [facebookClientToken:"123456789"] // Application에서 사용할 구글플레이(PGS) AppId. (Google Play Service 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${googleplayId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [googleplayId:"123456789"] // Application에서 사용할 페이스북 QQ appid. (QQ 사용 시 설정 필수)\ // AndroidManifest.xml 파일의 ${qqAppId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [qqAppId:"123456789"] compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } … } dependencies { … implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.aar'], dir: 'libs') // C2S 개별모듈 (ex : C2S 23.2.2 == 4.23.2.2 / HIVE_SDK_VERSION == 23.2.2) // HiveSDK v4 버전이 필요하며 매칭되는 HiveSDK v4 버전은 상단의 ‘C2S 개별모듈 및 외부 라이브러리 의존성 설정' 항목 확인 implementation(platform("com.com2us.android.hive:hive-sdk-bom:${HIVE_SDK_VERSION}")) // Hive Main Dependency -- // Hive SDK 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-sdk" implementation "com.com2us.android.hive:hive-plugin-c2s" // Idp Dependency -- // Google 로그인, Google Play Service, Firebase Cloud Messaging 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-authv4-provider-google-signin" // Facebook 기능 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-authv4-provider-facebook" // Google Play Games on PC 사용시 implementation "com.com2us.android.hive:hive-authv4-provider-google-playgames" // Huawei 로그인 기능 사용시 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-authv4-provider-huawei" // Hercules implementation "com.com2us.android.hive:hive-hercules" // 허큘리스 보안 기능 사용시 // Push Dependency -- // Google FCM implementation "com.com2us.android.hive:hive-push-google-fcm" // FCM 사용 시 // Amazon Device Messaging implementation "com.com2us.android.hive:hive-push-amazon-adm" // Amazon 빌드 시 // Promotion Dependency -- implementation "com.com2us.android.hive:hive-promotion" // (필수 적용) implementation "com.com2us.android.hive:hive-promotion-google-inappreview" implementation "com.com2us.android.hive:youtube-helper" // 프로모션 동영상 기능 사용 시 // IAP Dependency -- implementation "com.com2us.android.hive:hive-iapv4-market-google" // 구글 PlayStore 지원 시 implementation "com.com2us.android.hive:hive-iapv4-market-huawei" // Huawei 글로벌 빌드 지원 시 // Other Dependency implementation "com.android.installreferrer:installreferrer" // 인스톨 리퍼러 // Analytics Dependency -- // C2S 개별모듈의 경우 트래킹 기능을 지원하지 않음 // Adjust //implementation "com.com2us.android.hive:hive-analytics-provider-adjust" // AppsFlyer //implementation "com.com2us.android.hive:hive-analytics-provider-appsflyer" // Singular //implementation "com.com2us.android.hive:hive-analytics-provider-singular" … } |
C2S 21.0.2 이상 gradle 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
android { compileSdkVersion 33 buildToolsVersion "33.0.0" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 21 // Hive SDK C2S minSdkVersion targetSdkVersion 33 versionCode 1 versionName "1.0" // Application에서 사용할 페이스북 AppId. (Facebook 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${facebookId} 항목이 아래의 값으로 치환됨. manifestPlaceholders = [facebookId:"123456789"] // Application에서 사용할 페이스북 Client Token. // AndroidManifest.xml 파일의 ${facebookClientToken} 항목이 아래의 값으로 치환됨 manifestPlaceholders += [facebookClientToken:"123456789"] // Application에서 사용할 구글플레이(PGS) AppId. (Google Play Service 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${googleplayId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [googleplayId:"123456789"] // Application에서 사용할 페이스북 QQ appid. (QQ 사용 시 설정 필수)\ // AndroidManifest.xml 파일의 ${qqAppId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [qqAppId:"123456789"] compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } … } dependencies { … implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.aar'], dir: 'libs') // C2S 개별모듈 (Hive SDK) (C2S.21.0.2 == 4.21.0.2) // HiveSDK v4 버전이 필요하며 매칭되는 HiveSDK v4 버전은 상단의 ‘C2S 개별모듈 및 외부 라이브러리 의존성 설정' 항목 확인 implementation(platform("com.com2us.android.hive:hive-sdk-bom:${HIVE_SDK_VERSION}")) // Hive SDK 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-sdk" implementation "com.com2us.android.hive:hive-service-extension-c2s" // Google 로그인, Google Play Service, Firebase Cloud Messaging 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-service-extension-google-signin" // Facebook 기능 사용을 위해 의존성을 추가합니다. implementation "com.com2us.android.hive:hive-service-extension-facebook" implementation "com.com2us.android.hive:hive-service-extension-google-playgames" // Google Play Games on PC 사용시 // Hercules implementation "com.com2us.android.hive:hercules" // 허큘리스 보안 기능 사용시 // Huawei 로그인 및 결제 기능 사용시 의존성을 추가합니다. implementation 'com.huawei.hms:hwid' // Huawei 인증 implementation 'com.huawei.hms:iap' // Huawei 빌링 // Other Dependency implementation "com.android.installreferrer:installreferrer" // 인스톨 리퍼러 implementation "com.android.billingclient:billing" // PlayStore 인앱 implementation "com.com2us.android.hive:youtube-helper" // 프로모션, Hive프로모션에서 동영상 기능 사용시 // Other Dependency implementation "com.tencent.mm.opensdk:wechat-sdk-android-without-mta" // 러비에서 Wechat Pay 사용 시 implementation "com.amazon.device:amazon-appstore-sdk" // Amazon 사용 시 implementation "com.alipay.sdk:alipaysdk-android" // 러비에서 알리페이 앱충전 기능 사용시 // Analytics Dependency // 게임앱에서 자체 사용하는 경우 설정바랍니다. implementation 'com.adjust.sdk:adjust-android' // adjust 사용시 implementation 'com.singular.sdk:singular_sdk' // singular 사용시 implementation 'com.appsflyer:af-android-sdk' // appsflyer 사용시 … } |
C2S 21.0.2 미만 gradle 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
android { compileSdkVersion 31 buildToolsVersion "30.0.3" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 19 // C2S.19.6의 minSdkVersion targetSdkVersion 31 versionCode 1 versionName "1.0" // Application에서 사용할 페이스북 AppId. (Facebook 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${facebookId} 항목이 아래의 값으로 치환됨. manifestPlaceholders = [facebookId:"123456789"] // Application에서 사용할 페이스북 Client Token. // AndroidManifest.xml 파일의 ${facebookClientToken} 항목이 아래의 값으로 치환됨 manifestPlaceholders += [facebookClientToken:"123456789"] // Application에서 사용할 구글플레이(PGS) AppId. (Google Play Service 사용 시 설정 필수) // AndroidManifest.xml 파일의 ${googleplayId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [googleplayId:"123456789"] // Application에서 사용할 페이스북 QQ appid. (QQ 사용 시 설정 필수)\ // AndroidManifest.xml 파일의 ${qqAppId} 항목이 아래의 값으로 치환됨. manifestPlaceholders += [qqAppId:"123456789"] compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } … } dependencies { … implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.aar'], dir: 'libs') // C2S 개별모듈 (Hive SDK) (C2S.20.2.2 == 4.16.2.2) // HiveSDK v4 버전이 필요하며 매칭되는 HiveSDK v4 버전은 상단의 ‘C2S 개별모듈 및 외부 라이브러리 의존성 설정' 항목 확인 implementation "com.com2us.android.hive:hive-sdk:4.16.2.2" implementation "com.com2us.android.hive:hive-service-extension-c2s:4.16.2.2" // (C2S.20.2.2 이상 필수) // Hercules implementation "com.com2us.android.hive:hercules:4.16.2.2" // C2S.20.2.2 이상 implementation "com.com2us.android.hive:hive-service-extension-facebook:4.16.2.2" implementation "com.com2us.android.hive:hive-service-extension-google:4.16.2.2" // Kotlin Dependency // Kotlin 라이브러리는 C2S.20.2.2부터 HiveSDK 라이브러리 내부 설정에 포함됩니다. implementation 'org.jetbrains.kotlin:kotlin-reflect:1.5.10' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3' // Firebase Cloud Messaging Dependency // Firebase Cloud Messaging 라이브러리는 C2S.20.2.2부터 hive-service-extension-google 라이브러리 내부 설정에 포함됩니다. implementation 'com.google.firebase:firebase-iid:20.2.4' implementation 'com.google.firebase:firebase-messaging:20.2.4' // 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' implementation 'com.google.android.gms:play-services-games:17.0.0' implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0' implementation 'com.google.android.gms:play-services-analytics:17.0.0' implementation ‘com.google.android.play:review:2.0.0’ // Facebook Dependency // Facebook 라이브러리는 C2S.20.2.2부터 hive-service-extension-google 라이브러리 내부 설정에 포함됩니다. implementation 'com.facebook.android:facebook-core:13.0.0' implementation 'com.facebook.android:facebook-common:13.0.0' implementation 'com.facebook.android:facebook-login:13.0.0' implementation 'com.facebook.android:facebook-share:13.0.0' // IDP Dependency implementation ‘com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.8.0’ (Wechat 사용 시) 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 // (C2S.20.1.3 에서 설정 삭제) implementation 'androidx.appcompat:appcompat:1.4.0-alpha01' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.browser:browser:1.0.0' implementation 'androidx.annotation:annotation:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.1' implementation 'androidx.core:core:1.3.2' implementation 'androidx.emoji2:emoji2:1.0.0-alpha03' implementation 'androidx.emoji2:emoji2-bundled:1.0.0-alpha03' 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에서 설정 삭제 // 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.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 가이드를 참고해주세요.
- Hive SDK UI 방향을 설정합니다. (default “UNDEFINED”)