Android Studio Project를 이용하여 개발할 때 Hive SDK를 포팅하는 방법과 빌드하는 방법을 안내합니다.

본 가이드는 Android Studio 3.2 버전을 기준으로 안내합니다.

포팅하기

Android 개발 환경을 이용한다면 Hive SDK를 플러그인의 형태로 Android 개발 환경에 포팅해 주세요. 다음의 안내대로 Hive SDK를 개발 환경에 추가하고 필요한 설정 작업과 코드 작업을 수행하세요.

프로젝트 생성하기

    1. Android Studio Project를 실행하세요.
    2. Start a new Android Studio project를 클릭해 신규 프로젝트를 생성하세요. 기존에 생성한 프로젝트가 있다면 그대로 사용할 수 있습니다.

AndroidX 적용하기

Hive SDK v1.18.2부터 Android Support Library 버전을 업데이트하면서 AndroidX를 여러분의 프로젝트에 적용해야 합니다.

  1. Android Studio를 실행합니다.
  2. 메뉴 바에서 Refactor > Migrate to AndroidX를 실행합니다.
  3. 프로젝트 내 Android support library 참조가 변경되고 gradle.properties에 아래 항목이 추가됩니다.
    • android.enableJetifier=true
    • android.useAndroidX=true

Hive SDK 추가하기

Android Studio 프로젝트에 포팅하는 Hive SDK는 Hive 개발자 사이트에서 다운로드한 Hive SDK 압축 파일에 포함되어 있습니다.

공통 적용

  • appinfo-1.0.x_default.jar
  • peppermint-2.x.x.aar
  • com2usmodule-1.x.x.aar
  • com2us-tracking_lib-1.x.x.aar
  • YouTubeAndroidWebPlayerApi.aar
  • YouTubeAndroidPlayerApi.jar
  • universalimageloader-release.aar
  • commons-io-2.1.jar
  • gson-2.2.4.jar
  • httpmime-4.2.jar
  • 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-repayment-x.x.x.aar (v1.19.3+) (v1.19.4-)
  • QQ 로그인 지원 시 추가
    • open_sdk_r2973327_lite.jar (v1.19.2-)
    • open_sdk_3.5.4.11_r3f56456_lite.jar (v1.19.2+)
  • Huawei 로그인 지원 시 추가
    • Peppermint_Social_Plugin_Huawei-2.x.x.aar

Hive Lebi를 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • InAppC2SSecurity.jar
    • alipaySdk-15.6.8-20191021122514.aar
    • WeChatPay 지원 시 추가
      • wechat-sdk-android-with-mta_5.0.8.jar (v1.19.1부터 제거, build.gradle 설정으로 변경)
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar

ONE store를 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • ONE store V4 결제 지원 시 추가
      • InAppTstoreSDKv4-16.06.00_20181012.jar
    • ONE store V5 결제 지원 시 추가
      • InAppTstoreSDKv5-17.03.00_20181012.jar
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar
    • ONE store V4 결제 지원 시 추가 (v1.19.2+)
      • InAppTstoreSDKv5-16.06.00_20201007.jar
    • ONE store V5 결제 지원 시 추가 (v1.19.1-)
      • InAppTstoreSDKv5-17.03.00_20181012.jar
    • ONE store V6 결제 지원 시 추가 (v1.19.1+)
      • onestore_iap_sdk-v19.00.01.aar

Amazon Market을 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • Amazon 결제 지원 시 추가
      • in-app-purchasing-2.0.76.jar
      • 기존 InAppAmazonSDK.jar를 제거
    • Amazon 푸시 지원 시 추가
      • amazon-device-messaging-1.0.1.jar
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar
    • Amazon 결제 지원 시 추가
      • in-app-purchasing-2.0.76.jar
        • v1.19.1부터 v1.19.3 미만 버전은 SDK에 포함되어 별도 추가 필요 없음
        • v1.19.3부터 SDK에서 제외되어 추가 필요
      • 기존 InAppAmazonSDK.jar를 제거
    • Amazon 푸시 지원 시 추가
      • amazon-device-messaging-1.0.1.jar

Galaxy Store를 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • Galaxy Store 결제 지원 시 추가
      • SamsungInAppPurchase_5.1.0.aar

Huawei Market을 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • InAppLibrary-huawei-2.x.x.aar
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar

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

Gradle 설정으로 Hive SDK에서 사용 중인 외부 라이브러리를 추가할 수 있습니다.

    1. 프로젝트 수준의 build.gradle 파일에 외부 라이브러리를 가져올 수 있도록 레파지토리를 추가합니다.
    2. File > Project Structure 메뉴를 선택해 Project Structure 창을 띄웁니다.
    3. Dependencies 목록에서 app을 클릭, Declared Dependencies 하단 + 버튼을 클릭해 1 Library dependency를 선택합니다.
    4. Add Library Dependency 창이 뜨면 아래 항목을 추가합니다.

      • implementation ‘com.google.firebase:firebase-iid:20.2.4’ // FCM 사용 시
      • implementation ‘com.google.firebase:firebase-messaging:20.2.4’ // FCM 사용 시
      • implementation ‘com.google.android.gms:play-services-auth:17.0.0’
      • implementation ‘com.google.android.gms:play-services-ads-identifier:17.0.0’
      • implementation ‘com.facebook.android:facebook-core:9.1.0’
      • implementation ‘com.facebook.android:facebook-common:9.1.0’
      • implementation ‘com.facebook.android:facebook-login:9.1.0’
      • implementation ‘com.facebook.android:facebook-share:9.1.0’
      • implementation ‘com.android.billingclient:billing:3.0.3’ // updated v1.19.1
      • implementation ‘com.google.android.play:core:1.8.3’ // v1.19.1+
      • implementation ‘com.google.android.play:core-ktx:1.8.1’ // v1.19.1+
      • implementation ‘androidx.core:core-ktx:1.3.0’
      • implementation ‘androidx.appcompat:appcompat:1.0.0’
      • implementation ‘androidx.cardview:cardview:1.0.0’
      • implementation ‘androidx.legacy:legacy-support-v4:1.0.0’
      • implementation ‘androidx.constraintlayout:constraintlayout:1.1.3’
      • implementation ‘androidx.recyclerview:recyclerview:1.2.0-alpha05’ // v1.19.0+ (C2S.19.0)
      • implementation ‘com.android.installreferrer:installreferrer:2.2’
      • implementation ‘com.adjust.sdk:adjust-android:4.28.0’ // Adjust 사용 시
      • implementation ‘com.singular.sdk:singular_sdk:9.2.9’ // Singular 사용 시
      • implementation ‘com.huawei.hms:hwid:6.4.0.300’ // Huawei 로그인 지원 시 (1.19.8)
      • implementation ‘com.huawei.hms:iap:6.3.0.300’ // Huawei 결제 지원 시 (1.19.8)
      • implementation ‘com.huawei.agconnect:agconnect-core:1.6.4.300’ // Huawei 로그인 지원 시 (1.19.8)
      • implementation ‘com.huawei.hms:game:5.0.4.303’ // Huawei 로그인 지원 시 (1.19.8)
      • implementation ‘com.squareup.okhttp3:okhttp:3.12.12’ // QQ Login 지원 시 (1.19.2+)

배포 버전에 포함된 외부 라이브러리 추가하기

Gradle을 이용해 최신 버전을 추가할 수 없거나 별도 관리가 필요한 라이브러리의 경우 Hive SDK와 함께 배포 버전에 포함합니다. Hive SDK 추가 방식과 동일하게 외부 라이브러리를 추가합니다.
Hive SDK에 대한 의존성 설정하기

배포 버전에 포함된 외부 라이브러리(.aar/.jar) 목록은 다음과 같습니다.

공통 적용

  • YouTubeAndroidWebPlayerApi.aar
  • YouTubeAndroidPlayerApi.jar
  • universalimageloader-release.aar
  • commons-io-2.1.jar
  • gson-2.2.4.jar
  • httpmime-4.2.jar
  • QQ 로그인 지원 시 추가
    • open_sdk_r2973327_lite.jar (1.19.2-)
    • open_sdk_3.5.4.11_r3f56456_lite.jar (1.19.2+)
  • Huawei 로그인 지원 시 추가
    • Peppermint_Social_Plugin_Huawei-2.x.x.aar

Hive Lebi를 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • InAppC2SSecurity.jar
    • alipaySdk-15.6.8-20191021122514.aar
    • WeChatPay 지원 시 추가
      • wechat-sdk-android-with-mta_5.0.8.jar (v1.19.1부터 제거, build.gradle 설정으로 변경)
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar

ONE store를 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • ONE store V4 결제 지원 시 추가
      • InAppTstoreSDKv4-16.06.00_20181012.jar
    • ONE store V5 결제 지원 시 추가
      • InAppTstoreSDKv5-17.03.00_20181012.jar
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar
    • ONE store V4 결제 지원 시 추가 (v1.19.2+)
      • InAppTstoreSDKv5-16.06.00_20201007.jar
    • ONE store V5 결제 지원 시 추가 (v1.19.1-)
      • InAppTstoreSDKv5-17.03.00_20181012.jar
    • ONE store V6 결제 지원 시 추가 (v1.19.1+)
      • onestore_iap_sdk-v19.00.01.aar

Amazon Market을 지원

  • IAP v1(InAppLibrary) 지원 시 추가 (v1.19.1-)
    • Amazon 결제 지원 시 추가
      • in-app-purchasing-2.0.76.jar
      • 기존 InAppAmazonSDK.jar를 제거
    • Amazon 푸시 지원 시 추가
      • amazon-device-messaging-1.0.1.jar
  • IAP v4(InAppV4) 지원 시 추가
    • hive-iapv4-x.x.x.aar
    • hive-iapv4-plugin-x.x.x.aar
    • Amazon 결제 지원 시 추가
      • in-app-purchasing-2.0.76.jar
        • v1.19.1부터 v1.19.3 미만 버전은 SDK에 포함되어 별도 추가 필요 없음
        • v1.19.3부터 SDK에서 제외되어 추가 필요
      • 기존 InAppAmazonSDK.jar를 제거
    • Amazon 푸시 지원 시 추가
      • amazon-device-messaging-1.0.1.jar

Galaxy Store를 지원

  • IAP v1(InAppLibrary) 지원 시 추가
    • Galaxy Store 결제 지원 시 추가
      • SamsungInAppPurchase_5.1.0.aar

아마존 설정 파일 추가하기

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

 

Firebase 설정하기

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

 

AndroidManifest.xml 설정하기

AndroidManifest.xml에 다음의 항목을 직접 입력해 주세요.

  • Hive SDK 설정
    • 공통 적용
    • android:targetSdkVersion의 값이 28 이상일 때 아래 내용을 추가합니다.
      • <uses-library android:name=”org.apache.http.legacy” android:required=”false”/> 설정은 <application></application> 내에 추가합니다.
    • Android OS 12 이상 단말에서 광고 식별자를 사용할 수 있도록 AD_ID 권한을 추가합니다. (1.19.3+)
    • FCM을 사용할 경우 아래 내용을 추가합니다.

    • QQ 로그인 지원하는 경우 아래 내용을 추가합니다.

  • Facebook 설정
    • Facebook 로그인에 필요한 설정을 추가합니다.

  • Google Play Services 설정
    • Google Play Services 로그인에 필요한 설정을 추가합니다.

  • Android 앱 데이터 백업 허용 여부 설정
    • 앱 사용 기기에서 앱 데이터를 백업한 후 다른 기기에서 복구하면 로컬 데이터에 저장된 정보가 그대로 복사될 수 있습니다. Hive에서 사용하는 기기 정보나 유저 식별 정보가 앱에 복사될 수 있으니 백업을 허용하지 마세요.

  • 퍼미션 설정
    • <manifest> 하위에 아래 값을 입력하여 전체 모듈에 적용할 공통 퍼미션을 설정합니다. (1.19.0+)
    • Hive 1.19.3부터는 READ_PHONE_STATE와 READ_PHONE_NUMBERS 권한 사용을 중단합니다. 또한, Hive 1.19.3 이상에서 manifest에 dangerous 권한이 추가되어있다면 Hive 초기화 시 Hive SDK가 권한 고지와 권한 요청을 진행합니다. 별도의 시점에서 권한 고지 및 요청을 사용하려면 권한 고지 커스텀권한 별도 요청 API를 참고하세요.
  • Lebi Market 설정
    • IAP v1 사용 시
      • WeChat Pay 충전 기능을 지원할 경우 <application> 하위에 아래 값을 입력하여 WeChat Pay를 설정합니다.

    • IAP v4 사용 시
      • 별도 설정 없음
  • ONE store Market 설정
    • ONE store V4 결제를 지원할 경우 <application> 하위에 아래 값을 입력하여 ONE store V4 결제를 설정합니다.

    • ONE store V5 결제를 지원할 경우 <application> 하위에 아래 값을 입력하여 ONE store V5 결제를 설정합니다.

    • ONE store V6 결제를 지원할 경우 <application> 하위에 아래 값을 입력하여 ONE store V6 결제를 설정합니다.

  • Amazon Market 설정
    • Amazon 결제를 지원할 경우 <application> 하위에 아래 값을 입력하여 Amazon 결제를 설정합니다.

    • Amazon 푸시를 지원할 경우 <application> 하위에 아래 값을 입력하여 Amazon 푸시를 설정합니다.

  • strings.xml 설정하기

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

    • “app_id” 값에 Google App ID를 입력하세요.
      예. 331526026701
    • “applicationId” 값에 Facbook App ID를 입력하세요.
      예. 1809615065921877
    • WeChat Pay 충전 지원 시 “wechat_appid” 값에 WeChat에서 발급받은 AppID를 입력하세요.
      예. wx810adfc018b5f0bd
    • WeChat Pay 충전 지원 시 “wechat_key” 값에 WeChat에서 발급받은 key를 입력하세요.
      예. auILMZisSYHnEb4ISD58QYm7uETdVX6d
    • QQ 로그인 지원 시 “qq_appid” 값에 QQ에서 발급받은 APPID를 입력하세요.
      예. 101518248

    기타 설정하기

    FCM 설정

    /res/values/ 경로에 추가한 fcm_settings.xml 파일을 앱 설정에 맞게 수정합니다. FCM을 설정하려면 Firebase에 로그인한 후 프로젝트 설정 항목에서 google-service.json을 다운로드해 확인할 수 있습니다. 파일을 다운로드한 후 google-service.json 파일 내 주요 키 값을 fcm_settings.xml 파일에 설정해 FCM을 동작합니다.

    Huawei 로그인 및 결제 설정
    1. Project 폴더에 Huawei 콘솔에서 다운로드한 agconnect-services.json 파일을 추가합니다.
      • Hive SDK v1.19.8 이상 적용 시 agconnect.service.json 파일을 Huawei 콘솔에서 새로 다운로드하시기 바랍니다.
    2. Project 폴더 내 build.gradle 파일에 아래 내용을 추가합니다.
  • Proguard 사용시 난독화 제외 설정하기
      -ignorewarnings
      -keepattributes *Annotation*
      -keepattributes Exceptions
      -keepattributes InnerClasses
      -keepattributes Signature
      -keepattributes SourceFile,LineNumberTable
      -keep class com.hianalytics.android.**{*;}
      -keep class com.huawei.updatesdk.**{*;}
      -keep class com.huawei.hms.**{*;}

    • AndroidManifest 설정
      • Hive 1.19.4이하에 Huawei를 적용하는 모든 버전에서 요구됩니다.

    Android Activity Lifecycle

    MainActivity에서 Android Lifecycle에 맞춰 아래 코드를 호출합니다. Hive SDK가 정상 동작하려면 반드시 추가되어야 합니다.

    Unity 환경에서 개발 시 적용

    • UnityPlyerNativeActivity가 deprecated 처리된 Unity 환경에서 개발 시 적용

    Cocos2d-X 환경에서 개발 시 적용

     


    빌드하기

    Gradle 설정하기

    Gradle 설정으로 Hive SDK에서 사용 중인 외부 라이브러리를 추가할 수 있습니다.

    1. android > defaultConfig > applicationIdAndroidManifest.xml 파일의 packageName과 동일하게 입력해야 합니다. Hive SDK에서 지원하는 minSdkVersion은 15이고, Unity 환경에서 개발하거나 FCM을 사용하는 경우에는 16, Huawei Market을 지원하는 경우에는 17을 설정합니다.

       

    ProGuard 설정하기

    Hive SDK 및 Hive SDK에서 사용 중인 외부 라이브러리에 대해서 프로가드 설정을 하려면 다음의 내용을 적용하세요.

    hive

    unity

    facebook

    google / admob/adkit

    qq

    wechat

    adjust

    singular

    huawei