Hive SDK v1.19.6부터는 Hive SDK v1 패키지가 개선되어 HiveSDK v1.19.6+ 페이지에서 가이드를 제공합니다. 아래의 가이드를 통해 변경된 라이브러리 구성과 설정 방법에 대해 알아보세요.
HiveSDK v1.19.6+ 패키징 파일 구조
a. Android/libs
Hive SDK v1.19.6(혹은 그 이상 버전) Android 라이브러리로 구성되어 있습니다. 기존 Hive SDK v1 Android/aar 폴더 내 라이브러리 제거 후 hive-xxx-(version).aar 파일들을 추가하세요. (com2usmodule-(version).aar 파일은 반드시 제거해야 합니다.) 또한, Hive SDK v1.20.0 이상 패키지에서 libs/Extension
이하의 파일들은 베타 버전이므로 적용 시 제외하세요.
Hive SDK v1.20.1.5 이상 패키지부턴 /libs 이하에 Hive 라이브러리 파일을 제공하지 않습니다. Hive 라이브러리는 Maven 저장소를 통해 build.gradle 설정으로 가져올 수 있습니다. 아래 ‘Hive 및 외부 라이브러리 의존성 설정하기’ 의 ‘// Hive SDK 설정하기’ 를 참고하여 설정합니다.
b. Android/external
Hive SDK v1.19.6(혹은 그 이상 버전) 동작에 필요한 Android 외부 라이브러리들로 구성되어 있습니다.
해당 라이브러리는 사용 기능에 따라 추가 또는 제거할 수 있습니다. 사용 중인 외부 플랫폼에 따른 대상 라이브러리를 추가하세요. Hive SDK 1.19.6 미만 버전을 사용 중이었다면, Hive SDK 패키징에서 제공하던 외부 라이브러리를 제거하고 대상 라이브러리로 교체하세요.
제공 플랫폼 | 대상 라이브러리 |
---|---|
Amazon | amazon-device-messaging-1.0.1.jar (1.23.2.2부터 Hive 라이브러리 내부에 포함되었음) |
mid-sdk-2.10.jar, mta-sdk-2.0.0.jar | |
One Store (V4) | InAppTstoreSDKv4-16.06.00_20201007.jar (1.23.2.2부터 Hive 라이브러리 내부에 포함되었음) |
One Store (v6) | onestore_iap_sdk-v19.00.01.aar (1.21.1.1부터 제공되지 않음) |
One Store (v7) | 1.21.1.1부터 build.gradle 설정으로 추가 |
open_sdk_3.5.14.3_rc26220c_lite.jar (1.20.2.2 이상) | |
Samsung | samsung_iap_sdk-v6.1.aar |
Youtube |
YouTubeAndroidWebPlayerApi.aar (1.20.2.2 미만): 1.20.2.2부터 build.gradle 설정으로 추가 YouTubeAndroidPlayerApi.jar (1.20.1.5 미만): 1.20.1.5부터 제공되지 않음 |
c. Android/res
Hive SDK v1.19.6 동작에 필요한 리소스 파일이 구성되어 있습니다. Android 프로젝트 기준 리소스를 포함하는 경로인 /res
폴더 하위에 /raw
폴더를 생성하고(/res/raw), 패키지에 포함된 hive_config.xml 파일을 추가하세요.
(제공된 hive_config.xml에서 별도의 설정없이 파일만 추가하시면 됩니다.)
d. Android/cpp/include
Hive SDK v1.19.6 CPP 헤더파일을 포함합니다.
e. Android/cpp/libs
Hive SDK v1.19.6 CPP 소스 코드를 빌드한 정적 라이브러리 파일을 포함합니다.
설정 변경사항
Hive SDK 추가하기 (Hive 1.19.6+)
기존 Hive SDK v1 라이브러리를 제거하고, HiveSDK v1.19.6 라이브러리로 교체하세요.
- /{version_name} HIVESDK_AAR/aar 디렉토리 또는 적용 중인 프로젝트의 /libs 이하에서 com2usmodule-{version_name}.aar 파일을 삭제하세요.
- /Android/libs 디렉토리 또는 프로젝트의 /libs 이하에 아래의 파일들을 추가하세요.
- hive-base-15.6.0.aar
- hive-core-15.6.0.aar
- hive-iapv4-15.6.0.aar
- hive-protocol-15.6.0.aar
- hive-service-4.15.6.aar
- hive-service-extension-facebook-4.15.6.aar
- hive-service-extension-google-4.15.6.aar
- hive-ui-15.6.0.aar
Hive SDK 추가하기 (Hive 1.20.1.5+)
기존 Hive SDK v1 라이브러리를 제거하고, Hive SDK v1.20.1.5 이상 버전에서의 설정으로 변경하세요.
- /{version_name} HIVESDK_AAR/aar 디렉토리 또는 적용 중인 프로젝트의 /libs 이하에서 com2usmodule-{version_name}.aar 파일을 삭제하세요.
- /Android/libs 경로 또는 프로젝트의 /libs 이하에 Hive 관련 라이브러리를 삭제하세요.
- 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-service-x.x.x.aar
- hive-service-extension-facebook-x.x.x.aar
- hive-service-extension-google-x.x.x.aar
- hive-ui-x.x.x.aar
- 아래 ‘Hive 및 외부 라이브러리 의존성 설정하기’ 의 ‘// Hive SDK 설정하기’ 를 참고하여 설정합니다.
배포 버전에 포함된 외부 라이브러리 추가하기
Hive SDK v1.19.6 미만 버전을 사용 중이었다면, 기존 Hive SDK v1에 포함된 라이브러리를 제거하고 Hive SDK v1.19.6 외부 라이브러리로 교체하세요.
- Hive SDK 패키징에서 제공하던 외부 라이브러리를 포함하는 /{version_name} ExternalLibrary와 /{version_name} HIVESDK_AAR/libs 디렉토리를 삭제하세요.
- 사용 서비스에 따라 /Android/external 디렉토리 또는 /libs 이하에 대상 라이브러리를 추가하세요.
제공 플랫폼 대상 라이브러리 Amazon amazon-device-messaging-1.0.1.jar (1.23.2.2부터 Hive 라이브러리 내부에 포함되었음) Wechat mid-sdk-2.10.jar, mta-sdk-2.0.0.jar One Store (V4) InAppTstoreSDKv4-16.06.00_20201007.jar (1.23.2.2부터 Hive 라이브러리 내부에 포함되었음) One Store (v6) onestore_iap_sdk-v19.00.01.aar (1.21.1.1부터 제공되지 않음) One Store (v7) 1.21.1.1부터 build.gradle 설정으로 추가 QQ open_sdk_3.5.14.3_rc26220c_lite.jar (1.20.2.2 이상) Samsung samsung_iap_sdk-v6.1.aar Youtube YouTubeAndroidWebPlayerApi.aar (1.20.2.2 미만): 1.20.2.2부터 build.gradle 설정으로 추가
YouTubeAndroidPlayerApi.jar (1.20.1.5 미만): 1.20.1.5부터 제공되지 않음
Hive SDK 및 외부 라이브러리 의존성 설정하기
Hive 개발자 페이지의 SDK v1 Android 외부 라이브러리 의존성 설정하기에 따라 아래 외부 라이브러리 의존성을 설정합니다.
외부 라이브러리 의존성 설정
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 |
// Hive SDK 설정하기 // 필요한 서비스에 맞는 Hive 라이브러리 선언 시 관련 외부 라이브러리들은 별도 선언 없이 Hive에서 로드합니다. // Hive 1.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 -- // 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" // Analytics Consent-Mode implementation "com.com2us.android.hive:hive-analytics-consent-mode:$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 글로벌 빌드 시 implementation "com.com2us.android.hive:hive-iapv4-hivestore:$HIVE_SDK_VERSION" // Hive PG 빌드 시 // 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’ |
Hive SDK 라이브러리 버전 값(HIVE_SDK_VERSION)을 적용하는 규칙은 아래 내용을 참고 바랍니다.
- 버전 첫째 자리
- Hive SDK v1.23.2.2 미만: 4값 고정
- Hive SDK v1.23.2.2 이상: 사용하지 않음
- 버전 둘째 자리
- Hive SDK v1.21.1.1 미만: 적용하려는 SDK v1 버전 둘째 자리 값 – 4
- Hive SDK v1.21.1.1 이상: 동일
- 버전 셋째 자리: 동일
적용하려는 Hive SDK v1 버전 | build.gradle에 설정해야하는 값 (HIVE_SDK_VERSION 수정 값) |
|
---|---|---|
적용 가능 최소 버전 | 1.20.1.5 | 4.16.1.5 (적용하려는 C2S 버전 둘째 자리 값 – 4) |
상용 버전 예시 | 1.20.3.1
(적용하려는 C2S 버전 둘째 자리 값 – 4) |
4.16.3.1 |
1.21.1.1 | 4.21.1.1 (동일) | |
1.22.0.0 | 4.22.0.0 (동일) | |
1.23.0.0 | 4.23.0.0 (동일) | |
1.23.2.2 | 23.2.2 |
AndroidManifest.xml 설정하기
- Hive SDK v1.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 127 128 129 130 131 132 133 134 |
<manifest> // UserEngagement 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- UserEngagement Start --> <activity android:name="com.com2us.module.engagement.C2SModuleEngagementRedirectActivity"> <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="{게임 패키지 네임}" /> </intent-filter> </activity> <!-- UserEngagement End --> // 챗봇 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- Chatbot Start --> <activity android:name="com.com2us.peppermint.PeppermintChatbotActivity" android:configChanges="orientation|screenSize|keyboard|keyboardHidden" android:screenOrientation="behind" /> <!-- Chatbot End --> // 약관 UI 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- ActiveUser Start --> <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" /> <service android:name="com.com2us.module.activeuser.downloadcheck.InstallService" /> <!-- ActiveUser End --> // Promotion Youtube 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- Promotion Start --> <activity android:name="com.com2us.module.hivepromotion.impl.promotion.PromotionVideoActivity" android:hardwareAccelerated="true" android:screenOrientation="sensorLandscape" android:launchMode="standard"/> <activity android:name="com.com2us.module.hivepromotion.impl.promotion.PromotionWebVideoActivity" android:hardwareAccelerated="true" android:screenOrientation="sensorLandscape" android:theme="@style/Theme.AppCompat.NoActionBar"/> <activity android:name="com.com2us.module.mercury.MercuryVideoActivity" android:hardwareAccelerated="true" android:screenOrientation="sensorLandscape" android:launchMode="standard"/> <activity android:name="com.com2us.module.mercury.MercuryWebVideoActivity" android:hardwareAccelerated="true" android:screenOrientation="sensorLandscape" android:theme="@style/Theme.AppCompat.NoActionBar"/> <!-- Promotion End --> // Push 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- Push Start --> <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"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.TIME_SET" /> <category android:name="{게임 패키지 네임}" /> </intent-filter> </receiver> <!-- Push End --> // FileProvider 설정이 있는 경우 제거 바랍니다. SDK v1.19.6 라이브러리에 관련 설정이 포함되어 있습니다. <!-- Peppermint Start --> <provider android:name="androidx.core.content.FileProvider" android:authorities="{게임 패키지 네임}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> <!-- Peppermint End --> </application> // Android API 30 관련 설정이 있는 경우 제거 바랍니다. SDK v1.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> // (단, 게임에서 임의로 외부 앱을 실행하도록 추가된 내용을 유지 바랍니다.) // 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-data android: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" /> </manifest> |
- AndroidManifest 설정 예시
패키징에 포함된 샘플앱이 사용하는 AndroidManifest.xml 설정에 대한 예시입니다.
v1.19.6부터는 Hive SDK 초기화 단계에서 위험 권한(Dangerous Permissions)을 자동 요청하지 않습니다. Hive SDK에서 제공하는 권한 요청 API(C2SModuleSocial_Show
)나 별도로 구현하여 사용 중인 API로 권한을 요청하세요.
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 |
<!--?xml version="1.0" encoding="utf-8"?--> <!-- 게임 프로젝트에서 사용하는 권한이 있다면 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-data android:name="com.facebook.sdk.ApplicationId" android:value="fb${facebookId}"/> <meta-data android: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-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/> <!-- Google —-> <!-- QQ Auth (QQ 사용 시 )--> <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="tencent1106227203" /> </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> |
아마존 빌드 설정하기
Amazon 빌링 사용 시 Appstore SDK에서 아이템 정보를 전달받으려면 /assets
위치에 암호화된 키 파일을 추가해야 합니다. 아마존 앱 스토어 가이드를 참고하여 AppstoreAuthenticationKey.pem 키를 다운로드 및 추가하는 방법에 대해 알아보세요.
Amazon 빌링(IAP) 사용 시 구매 요청 후 Amazon SDK의 응답이 늦어질 경우 무한 대기를 하거나 로딩 상태를 오래 유지하지 않도록 HiveSDK에선 임의 시간을 두고 처리를 하고 있습니다.
- 구매 완료 후 Amazon SDK에서 완료 응답을 5초 이내로 주지 않을 경우 구매 실패 콜백이 전달됩니다. 단, 5초 이후에 구매 성공 응답이 올 수 있으며 이런 경우 상점 진입 등을 통해 모듈의 구매 복구 API가 호출되면 영수증을 획득합니다.
- 만약, 구매 완료 후 응답 대기 시간을 변경하고 싶은 경우 AndroidManifest에 아래 설정을 추가 바랍니다.
- 5~30초 사이 값을 value에 설정
123<meta-data android:name="com.hive.iapv4.amazon_purchase_delay" android:value="8" />
Amazon Push 사용 시 아래 설정이 필요합니다.
- Amazon Push(ADM) 사용을 위해선 AmazonAPIKey 설정이 필수입니다. Amazon 콘솔 가이드 페이지를 확인 바랍니다.
- Amazon Push 라이브러리인 amazon-device-messaging-1.0.1.jar는 프로젝트의 libs이하에 위치하지 말고 /libs/external 에 위치시킵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<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"/> |
Firebase 설정하기
- Hive SDK v1.19.6부터 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에서
OneStore 빌드 설정하기
Hive SDK v1.21.1.1부터 OneStore V7 결제를 지원합니다. OneStore V7 결제 사용 시 라이브러리 다운로드를 위한 설정을 아래와 같이 추가합니다.
Hive SDK v1.22.0.3부터 국내용 빌드와 글로벌 빌드를 지원합니다.
1 2 3 4 5 6 7 8 9 |
// 프로젝트 수준의 build.gradle allprojects { repositories { ... maven { url 'https://repo.onestore.co.kr/repository/onestore-sdk-public' } // only for OneStore ... } } |
1 2 3 4 5 6 |
// 모듈 수준의 build.gradle: 국내용 빌드 dependencies { ... implementation "com.com2us.android.hive:hive-iapv4-market-onestore" // 국내, 글로벌 빌드 구분 없이 적용 ... } |
기존 OneStore V6 결제의 onestore_iap_sdk-v19.00.02.aar 파일이 있다면 제거합니다.
Google Play Games for PC 빌드 설정하기
Hive 1.20.2.3 에서 Google Play Games on PC를 정식 지원합니다. Google Play Games on PC는 Google 및 컴투스 플랫폼실 담당자와 협의를 통해 빌드 지원 여부 확인이 필요합니다. 빌드와 관련된 부분은 컴투스 플랫폼실에 문의 바랍니다.
Google의 PC 환경 에뮬레이터 플랫폼인 Google Play Games on PC를 지원하는 경우 아래 설정을 확인바랍니다.
- build.gradle에 필요한 라이브러리 설정
-
Hive SDK 및 외부 라이브러리 의존성 설정하기 내용에서
hive-service-extension-google
및hive-service-extension-googlev2
를 제거합니다. 이 후,hive-authv4-provider-google-playgames
를 적용합니다.123456789101112… (생략) …// Hive SDK 1.23.2.2 이상implementation "com.com2us.android.hive:hive-sdk:$HIVE_SDK_VERSION"implementation "com.com2us.android.hive:hive-authv4-provider-google-playgames:$HIVE_SDK_VERSION" // Google Play Games for PC 빌드 시 필수 적용// Hive SDK 1.21.1.1 이상 ~ 1.23.2.2 미만implementation "com.com2us.android.hive:hive-sdk"implementation "com.com2us.android.hive:hive-service-extension-google-playgames" // Google Play Games for PC 빌드 시 필수 적용… (생략) …
-
- AndroidManifest 설정
-
구글 games 사용을 위한 APP_ID 설정을 추가합니다. (이미 추가되어 있는 경우 별도의 설정이 필요 없습니다.)
1234<meta-data android:name="com.google.android.gms.games.APP_ID"android:value="@string/app_id" /> -
WIFI 관련 권한이 있다면 삭제합니다. (Google Play Games for PC에서는 android.hardware.wifi feature 항목을 지원하지 않습니다. 혹시라도 아래 권한을 게임에서 사용하고 있다면 사용하지 않도록 예외 처리 작업이 필요합니다.)
123456<!-- 제거 --><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> -
또한 bluetooth, camera, location, microphone 장치에 접근하는 권한 혹은 구현 코드가 있다면 삭제합니다.
-
-
values/strings.xml 설정
-
아래 app_id, google_server_client_id 값에 구글 콘솔에 등록된 ‘게임 서비스 프로젝트 ID’ 와 ‘서버 클라이언트 ID’ 키값을 정확하게 입력합니다.
-
Hive SDK v1.21.1.1 미만 버전인 경우 google_server_client_id 키 이름을 사용하고, Hive SDK v1.21.1.1 이상 버전인 경우 google_play_games_server_client_id 키 이름을 사용합니다.
1234567891011121314<?xml version="1.0" encoding="utf-8"?><resources>… (생략) …<string name="app_id" translatable="false">331526026701</string><!-- Hive 1.21.1.1 미만 --><string name="google_server_client_id" translatable="false">331526026701-42uadtkeght91f7saspdg92gtdill6mv.apps.googleusercontent.com</string><!-- Hive 1.21.1.1 이상 --><string name="google_play_games_server_client_id" translatable="false">331526026701-42uadtkeght91f7saspdg92gtdill6mv.apps.googleusercontent.com</string>… (생략) …</resources>
-
Huawei 빌드 설정하기
- Project 폴더에 Huawei 콘솔에서 다운로드한 agconnect-services.json 파일을 추가합니다.
- Hive 1.19.8 이상 적용 시 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 (Hive 1.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 사용시 난독화 제외 설정
- Huawei 라이브러리를 설정합니다.
- 해당 페이지의 외부 라이브러리 의존성 가이드를 참고하세요.
- hms:game 라이브러리는 Hive 1.20.1.5 버전에서 개별모듈에 대한 의존성이 제거되었습니다.
- 기존 HiveSDK 패키지들은 hms:game 라이브러리에 대한 API 기능은 사용하고 있지 않았습니다.
- Huawei Global 빌드에서 hms:game 라이브러리를 사용하는 게임 프로젝트는 자체적으로 라이브러리를 적용하시고 및 관련 기능을 구현하세요.
- 다만, C2S 개별모듈을 통해 hms:game 라이브러리의 초기화만 진행하고 싶은 경우 hms:game 6.1.0.301 버전을 gradle에 추가하세요.
strings.xml 설정하기
res/values/strings.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 |
<resources> <string name="app_name">Sample</string> <!-- Google App ID를 입력하세요. --> <string name="app_id">331526026701</string> <!-- Facbook App ID를 입력하세요. --> <string name="applicationId" translatable="false">1809615065921877</string> <!-- Google 로그인 시 필요한 웹 애플리케이션의 Client ID를 입력하세요. --> <string name="google_server_client_id" translatable="false">331526026701-42uaawseweereght91f7saspdg92erggel6mv.apps.googleusercontent.com</string> <!-- Google Play Games 로그인 시 필요한 웹 애플리케이션의 Client ID를 입력하세요. 보통 "google_server_client_id"에 입력한 값과 같습니다. (필수, Google Play Games for PC 빌드 지원 시) --> <string name="google_play_games_server_client_id" translatable="false">331526026701-42uaawseweereght91f7saspdg92erggel6mv.apps.googleusercontent.com</string> <!-- WeChat Pay 충전 지원 시 “wechat_appid” 값에 WeChat에서 발급받은 AppID를 입력하세요. --> <string name="wechat_appid" translatable="false">wx810adfc018b5f0bd</string> <!-- WeChat Pay 충전 지원 시 “wechat_key” 값에 WeChat에서 발급받은 key를 입력하세요. --> <string name="wechat_key" translatable="false">auILMZisSYHnEb4ISD58QYm7uETdVX6d</string> <!-- QQ 로그인 지원 시 “qq_appid” 값에 QQ에서 발급받은 APPID를 입력하세요. --> <string name="qq_appid" translatable="false">101518248</string> </resources> |
hive_config.xml 설정하기
hive_config.xml 파일은 게임 프로젝트에 반드시 포함되어야 합니다.
Hive SDK의 설정 파일은 xml 기반으로 구성되어 있으며, Hive 클라이언트는 hive_config.xml 파일에 있는 값으로 초기화합니다. 앱 실행 중 변경되지 않는 정적인 항목은 모두 파일에서 설정하기를 권장합니다. Hive SDK 설정 파일은 반드시 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 클라이언트가 접속할 서버 C2SModuleSocial_Initialize API 호출 시 useSandbox 값을 설정하면 useSandbox 값이 우선 적용됩니다.
|
useLog | Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부 C2SModuleSocial_Initialize API 호출 시 showLog 값을 설정하면 showLog 값이 우선 적용됩니다.
|
ageGateU13 | Hive SDK에서 COPPA 적용 여부
|
usePush | Hive SDK Push 사용 여부 C2SModulePush_Description API 호출 시 usePush 값을 설정하면 usePush 값이 우선 적용됩니다.
|
permissions – sdwrite | Hive 초기화 시 요청할 권한의 요청 여부 (Android 전용) Hive 초기화 시 외부 저장소 접근 권한을 요청할 경우 sdwrite 옵션을 true 로 활성화하고, C2SModuleSocial_Initialize API 호출 시 permissionWriteExternalStorage 값을 true 로 설정하여야 합니다.
|
company | 게임 퍼블리싱 업체
|
market | 게임 앱이 사용하는 마켓 플랫폼 Google과 Lebi를 함께 사용하는 빌드는 GO 와 LE 중 하나를 입력합니다.
|
channel | 게임 앱에서 사용하고 있는 로그인 서비스 플랫폼
|
httpConnectTimeout | Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초) 기본값은 8초(이전 10초에서 변경, Hive 1.20.1.5+)로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지 |
httpReadTimeout | Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초) 기본값은 8초(이전 15초에서 변경, Hive 1.20.1.5+)로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지 |
maxGameLogSize | 비정형 데이터 파일로 저장하는 게임 로그의 최대 저장 개수 Hive 애널리틱스 v2에서 이 값을 수집 기본값은 50개로 설정되어 있으며, 특수한 상황이 아닌 이상 값 변경 금지 |
hiveOrientation | Hive 클라이언트에서 노출하는 UI의 노출 방향을 미리 정의 게임 앱의 노출 방향에 따라 설정 필요
|
provider | Hive 클라이언트에서 사용하는 서드 파티 라이브러리에 대한 속성값 지정 (SDK v1에서는 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) --> <zone>real</zone> <!-- SDK 내부 동작 로그 사용 유무 설정 (true, false) --> <useLog>false</useLog> <!-- AgeGateU13 적용 여부 --> <ageGateU13>false</ageGateU13> <!-- Hive SDK 를 이용한 푸시 서비스 사용 유무 설정 (true, false) --> <usePush>true</usePush> <!-- 권한 요청 관련 설정 --> <permissions> <!-- 외장 메모리 권한 요청 여부. 이 필드가 true 이면 SDK 초기화시 SDK 내부에서 외장 메모리 접근에 대한 권한 요청 창을 띄운다 - Android only (true, false) --> <sdwrite>false</sdwrite> </permissions> <!-- 회사 설정 (C2S : 컴투스, GVI : 게임빌) --> <company>C2S</company> <!-- 결제 마켓을 설정 (GO : Google Play, LE : Com2us Lebi, AP : Apple Appstore) --> <market>GO</market> <!-- 체널 설정 (C2S : HIVE 플랫폼) --> <channel>C2S</channel> <!-- Hive SDK 내부에서 사용되는 HTTP Connect Timeout 시간을 초단위로 설정 (특별한 경우가 아니면 변경 금지) --> <httpConnectTimeout>8</httpConnectTimeout> <!-- Hive SDK 내부에서 사용되는 HTTP Read Timeout 시간을 초단위로 설정 (특별한 경우가 아니면 변경 금지) --> <httpReadTimeout>8</httpReadTimeout> <!-- 게임 로그 최대 저장 갯수 설정 (특별한 경우가 아니면 변경 금지) --> <maxGameLogSize>50</maxGameLogSize> <!-- Hive Orientation --> <hiveOrientation>all</hiveOrientation> <!-- 외부 소셜 provider 설정 (SDK v1는 provider 관련 설정 없음) -–> |
기타 설정하기
SDK v1 개발 > Hive 설정하기 > Android > 기타 설정하기의 FCM 설정을 모두 제거하세요.
Android Activity Lifecycle
SDK v1 개발 > Hive 설정하기 > Android의 Android Acrivity Lifecycle 설정을 모두 제거하고, 아래의 내용을 추가하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Unity에서 아래와 같이 사용하고 있던 경우 (case 1) public class MainActivity extends com.com2us.module.activity.C2SModuleNativeActivity // 1.19.6+에서 Activity 상속으로 변경 public class MainActivity extends Activity // Unity에서 아래와 같이 사용하고 있던 경우 (case 2) public class MainActivity extends com.com2us.module.activity.C2SModuleActivity // 1.19.6+에서 Activity 상속으로 변경 public class MainActivity extends Activity // Cocos2d-x에서 아래와 같이 사용하고 있던 경우 public class MainActivity extends com.com2us.module.activity.C2SModuleCocos2dxActivity // 1.19.6+에서 Cocos2dxActivity 상속으로 변경 public class MainActivity extends Cocos2dxActivity |
- MainActivity에서 Android Lifecycle에 맞춰서 아래 코드를 호출합니다. Hive SDK 동작을 위해 반드시 추가되어야 합니다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263@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);}
- HiveActivity를 적용함에 따라 게임 프로젝트 내 활동 생명 주기(Activity Lifecycle) 메서드가 호출되는 동작 특이사항
- Android 홈 키를 사용하거나 Google, Facebook 등의 외부 라이브러리 API 동작을 포함하여 Hive SDK 동작에서도 다음과 같이 게임에서 실행 중인 Activity에
onPause()
또는onResume()
메서드가 호출됩니다. 자체 로직 구현 시 참고 바랍니다.
Hive SDK 버전 모듈 관련 동작 Hive SDK v1.19.6 미만 - HivePromotion 새소식 및 InAppV4 UI 노출 시 게임에서 실행 중인 Activity에
onPause()
가 호출됨 (HiveActivity 생성) - 해당 UI 종료 시 게임에서 실행 중인 Activity에
onResume()
이 호출됨 (HiveActivity 종료)
Hive SDK v1.19.6 이상 - 모듈에서 제공하는 대부분의 UI 노출 시 게임에서 실행 중인 Activity에
onPause()
가 호출됨 (HiveActivity 생성) - 해당 UI 종료 시 게임에서 실행 중인 Activity에
onResume()
이 호출됨 (HiveActivity 종료)
- HivePromotion 새소식 및 InAppV4 UI 노출 시 게임에서 실행 중인 Activity에
- Android 홈 키를 사용하거나 Google, Facebook 등의 외부 라이브러리 API 동작을 포함하여 Hive SDK 동작에서도 다음과 같이 게임에서 실행 중인 Activity에
Gradle 설정하기
-
Hive SDK v1.21.1.1부터 지원하는 minSdkVersion은 21입니다.
-
Hive SDK v1.21.1.1부터 Hive SDK BOM(Bill of Materials)을 지원합니다.
- Hive SDK BOM을 사용하면 BOM 버전만 하나만 지정하여 모든 Hive SDK 라이브러리 및 선택 가능한 외부 라이브러리 버전을
관리할 수 있습니다. - BOM에는 안정적으로 호환가능한 버전 정보가 표기되어 있습니다. BOM을 사용하여 프로젝트를 구성하면 개별 라이브러리의 버전을 추가하지
않아도 BOM의 정보를 기준으로 자동 설정됩니다. BOM 버전을 업데이트하면 사용중인 모든 라이브러리가 새 버전으로 자동 업데이트됩니다. - Hive SDK BOM 버전별 매핑되는 라이브러리를 확인하기 위해 상단 다운로드 페이지의 릴리즈 노트를 확인해주세요.
- Hive SDK BOM을 사용하면 BOM 버전만 하나만 지정하여 모든 Hive SDK 라이브러리 및 선택 가능한 외부 라이브러리 버전을
Hive SDK v1.23.2.2 및 이후 버전에서 BOM을 사용하여 구성된 Gradle 설정 예제는 아래와 같습니다.
Hive SDK v1.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 |
android { compileSdkVersion 34 buildToolsVersion "34.0.0" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 21 // Hive SDK v1 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') // Hive SDK v1 (Hive 1.23.2.2 == 4.23.2.2) // HiveSDK v4 버전이 필요하며 매칭되는 HiveSDK v4 버전은 상단의 ‘Hive SDK 및 외부 라이브러리 의존성 설정' 항목 확인 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 -- // 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" … } |
Hive SDK v1.21.1.1 및 이후 버전, 그리고 Hive 1.21.1.1 이전 버전의 Gradle 설정 예제는 아래의 각 해당 탭을 확대하여 확인하시기 바랍니다.
Hive SDK v1.21.1.1 및 이후 버전의 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 |
android { compileSdkVersion 33 buildToolsVersion "33.0.0" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 21 // Hive SDK v1 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') // Hive SDK v1 (Hive 1.21.1.1 == 4.21.1.1) // 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 사용시 … } |
Hive SDK v1.21.1.1 이전 버전의 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 |
android { compileSdkVersion 31 buildToolsVersion "30.0.3" … defaultConfig { applicationId "{Your Package Name}" minSdkVersion 19 // Hive SDK v1.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') // Hive SDK 설정하기 implementation "com.com2us.android.hive:hive-sdk:4.16.2.2" // 필수 적용 implementation "com.com2us.android.hive:hive-service-extension-c2s:4.16.2.2" // (1.20.2.2 이상 필수) // Hercules implementation "com.com2us.android.hive:hercules:4.16.2.2" // 1.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 라이브러리는 1.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 라이브러리는 1.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 라이브러리는 1.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 라이브러리는 1.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.vk:androidsdk:1.6.9' (VK 사용 시) implementation 'com.linecorp.linesdk:linesdk:5.7.0' (LINE 사용 시) // implementation 'com.squareup.okhttp3:okhttp:3.12.12' (QQ 사용 시) (Hive 1.20.1.5 미만) implementation 'com.amazon.device:amazon-appstore-sdk:3.0.2' (Amazon 사용 시) // Analytics Dependency // Hive SDK v1.19.6 이상 v1.20.0 미만에서: Adjust, Singular, AppsFlyer를 모두 적용해야 합니다. // Hive SDK v1.20.0 이상에서: 사용하고자 하는 analytics 라이브러리만 적용합니다. implementation 'com.adjust.sdk:adjust-android:4.32.0' implementation 'com.singular.sdk:singular_sdk:12.0.8' implementation 'com.appsflyer:af-android-sdk:6.9.2' // Jetpack Dependency // emoji-bundle을 제외한 Jetpack 라이브러리는 Hive 1.20.1.5부터 HiveSDK 내부 설정에 포함됩니다. implementation ‘androidx.appcompat:appcompat:1.4.0-alpha01’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.cardview:cardview:1.0.0’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.browser:browser:1.0.0’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.annotation:annotation:1.0.0’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.constraintlayout:constraintlayout:2.1.1’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.core:core:1.3.2’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.emoji2:emoji2:1.0.0-alpha03’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.emoji2:emoji2-bundled:1.0.0-alpha03’ // (Hive 1.19.6이상 Hive 1.20.1.5 미만) implementation ‘androidx.recyclerview:recyclerview:1.2.0’ (Hive 1.19.6이상 Hive 1.20.1.5 미만) // Other Dependency implementation 'com.android.installreferrer:installreferrer:2.2' implementation 'com.android.billingclient:billing-ktx:5.0.0' // PlayStore 인앱, Hive SDK v1.20.0+ implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' // 프로모션 이미지 배너 (Hive SDK v1.19.8에서부터 제거됨) // implementation ‘com.github.bumptech.glide:glide:4.13.0’ // 프로모션 이미지 배너, (Hive 1.19.8이상 Hive 1.20.1.5미만), Hive 1.20.1.5부터 HiveSDK 내부 설정에 포함됩니다. // implementation 'com.google.code.gson:gson:2.7' // (1.20.2.2 미만) Hive 1.20.2.2부터 HiveSDK 내부 설정에 포함됩니다. implementation "com.com2us.android.hive:youtube-helper:1.0.1" // (1.20.2.2 이상) 프로모션, Hive프로모션에서 동영상 기능 사용시 implementation 'com.alipay.sdk:alipaysdk-android:15.8.11' // (1.20.2.2 이상) 러비에서 알리페이 앱충전 기능 사용시 … |
Proguard 설정하기
- (변경사항 없음) HiveSDK v1의 ProGuard 설정하기 내용 중 변경된 내용이 없습니다.
디퍼드 딥링크 설정하기 (v1.19.8+)
Hive SDK v1.19.8 이상부터 디퍼드 딥링크 기능을 지원합니다. 관련 기능을 사용하려는 경우 아래 설정 절차를 확인 바랍니다. 반대로 해당 기능을 사용하지 않는 경우 아래 IMPORTANT 항목을 반드시 참고 바랍니다.
- 디퍼드 딥링크는 Android에서 Google Play 스토어만 지원하고 있습니다.
- Hive 유저 에퀴지션(UA)을 통해 친구 초대 링크를 공유하고자 하는 경우 설정하세요.
- 디퍼드 딥링크 설정 시 Hive 유저 에퀴지션(UA) 기능의 동작 순서는 다음과 같습니다.
- A 유저가 UA 초대 링크를 통해 디퍼드 딥링크 형태의 링크를 공유
- 초대 링크를 공유 받은 B 유저가 해당 링크를 통해 앱에 접속할 경우 서버는 링크 정보를 분석하여 B가 A의 초대를 받아 게임을 진행하였음을 확인: 보상을 위한 정보 획득
- 디퍼드 딥링크는 하나의 링크로 제공되며, B 유저의 단말기에 앱이 설지되지 않은 경우에는 앱 설치를 유도하고, 이미 앱을 설치한 경우에는 앱을 실행하여 A 유저와 B 유저의 정보를 프로모션 서버로 전달
- Hive 콘솔에서 디퍼드 딥링크 설정
- Hive 콘솔의 프로모션 > 앱 설정에서 디퍼드 딥링크를 설정할 앱을 검색하세요. 목록의 앱 이름을 클릭하면 기본 설정 페이지로 이동합니다.
- 기본 설정의 앱 아이디 설정 영역에서 설정하고자 하는 Android 앱 아이디를 확인하세요.
- 아래의 설명을 참고하여 앱 아이디 설정에서 일반, UA 초대, SHA256 항목을 입력하세요.
- 일반: https://play.google.com/store/apps/details?id={앱아이디}
- UA 초대: market://details?id={앱아이디}
- SHA256: SHA256 지문은 리눅스 환경에서 아래 명령을 통해 획득할 수 있습니다.
123$ keytool -list -v -keystore my-release-key.keystore// 노출 형태 예// 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0 … (생략)... - 해당 내용은 assetlinks.json 파일을 구성하고 활용하는 데 사용됩니다. 관련 내용은 Android 앱 링크 인증하기 가이드에서 확인하세요.
- Hive 콘솔의 프로모션 > 앱 설정에서 디퍼드 딥링크를 설정할 앱을 검색하세요. 목록의 앱 이름을 클릭하면 기본 설정 페이지로 이동합니다.
추가 API
Hive SDK v1.19.6 적용 시 반드시 적용해야하는 API는 다음과 같습니다. 자세한 사항은 API의 참조 가이드로 안내된 페이지에서 확인하세요.
Social_Initianlize
- 참조 가이드: SDK v1 개발 > Hive 초기화 > Social Initialize
- Social_Initianlize API 호출 arg에 HiveSDK UI Orientation을 설정할 수 있는
hiveOrientation
이 추가되었습니다.
Argument Name Type Desc Platform 비고 hiveOrientation string - Hive SDK UI 방향을 설정한다.
- “all”, “portrait” or “landscape”
default “UNDEFINED”
“all”일 경우 기기 방향에 따라 HiveUI가 실시간 회전을 지원한다.
all 1.19.6+ 실시간 회전을 지원하지 않는 게임에서는 반드시 게임 지원 방향에 맞춰 호출해야 합니다.