모든 문서(일반 문서, 분류 문서, 파일(이미지, 사운드 등) 문서) 분류가 달려 있어야 합니다.

--Administrator (토론)

Hub/docs/android/getting started

컴투스위키
이동: 둘러보기, 찾기
Hive >>

Hive_게임_클라이언트_적용가이드

>>

플랫폼별 환경설정 가이드

Hive iOS 환경설정

Hive Android 환경설정

Hive Unity3d_iOS 환경설정

Hive Unity3d_Android 환경설정

>>

하이브 모듈 API 레퍼런스

Hive API Reference

Hive Unity API Reference

Hive AsyncRequest API Reference

Hive SocialRequest API Reference

>>

하이브 기능 활용 가이드

프로필 이미지 가져오기

국기 이미지 가져오기

Hive Dialog 특정 페이지 이동하기

Hive 소셜 확장 연동 가이드


목차

개요

  • 이 문서는 하이브(Hive) Android 모듈을 게임에 붙이는 과정을 안내합니다.

필수 적용 사항

적용 준비

  • 앱 아이디 및 게임 인덱스 발급
    • Hive 모듈을 적용하는 모든 게임은 앱 아이디(com.com2us / com.gamevil 같은 스트링 형태의 패키지 이름) 및 게임 인덱스(4자리 정수 형태의 숫자 값)를 가지고 있어야 합니다. 이 정보들은 해당 게임을 식별하는 정보로 사용됩니다. 앱 아이디 및 게임 인덱스 발급은 사업지원팀에 요청하시면 됩니다.
  • facebook 및 Google+ 등록
    • Hive 모듈은 facebook, Google+, Sina weibo 계정을 통한 Hive 가입 및 로그인이 지원됩니다(단, Sina Weibo는 현재 중국 IP로 접속하는 경우에만 로그인 화면에서 버튼이 노출됩니다). 서버 설정에 따라 로그인 화면에서 해당 SNS 아이콘이 노출되며, Hive 모듈에서 지원하는 소셜 기능(공유, 메시지 등)을 사용할 수 있습니다.
    • 이들 기능을 사용하고자 하는 경우에는, 해당 소셜 서비스 앱 등록을 해야 합니다(facebook, Google+). 이 부분도 사업지원팀에 요청하시면 됩니다.

Hive 라이브러리 프로젝트(Peppermint_dist) 설정

  • Peppermint_dist 프로젝트 적용
    • 프로젝트를 이클립스에서 임포트합니다. (Hive 신규적용게임은 꼭 2.6.x 이상 버전을 적용하시기 바랍니다.)
    • 게임 프로젝트에서 Peppermint_dist 를 Library Project로 설정합니다.
      1. Package Explorer/Project Explorer창에서 게임 프로젝트를 선택한 뒤 우 클릭한 메뉴에서 'Properties'를 선택합니다.
      2. 좌측 메뉴에서 Android 탭을 선택합니다. 우측 아래 Library 영역에서 'Add'버튼을 선택합니다.
      3. Peppermint_dist 프로젝트를 선택하고 'OK'버튼을 누릅니다.
  • AndroidManifest.xml 수정(게임 프로젝트)
    • AndroidManifest.xml 파일에는 아래 내용들이 추가됩니다(하단의 샘플 코드 참고).
      1. SNS 라이브러리(facebook, Google + 등) 관련 설정
      2. 퍼미션 추가
      3. 하드웨어 가속 설정
  • Hive에서 사용하는 퍼미션들에 대한 설명 및 어느 동작에서 해당 퍼미션을 요구하는지에 대해서는 Hub Permission 를 참조하십시오.
    • 참고로, UPDATE_DEVICE_STATS permission을 추가할 경우, 이클립스에서 빌드 시에 "permission is only granted to system apps"오류가 발생하기도 합니다. 이는 기본적으로 안드로이드 프레임워크 상의 오류로 보이는데, 프로젝트를 클린한 뒤 다시 빌드하면 정상적으로 빌드됩니다.
  • Hive를 적용할 때는 렌더링 방식을 반드시 하드웨어 가속 방식으로 설정하셔야 합니다.하드웨어 가속 방식을 사용하지 않으면 고해상도 단말에서 Hive 창을 띄웠을 때 속도가 매우 느려집니다.
    • 하드웨어 가속 방식은 <application android:hardwareAccelerated="true" ...>와 같이 application tag에 hardwareAccelerated 속성을 추가해주면 됩니다.
<application ..... android:hardwareAccelerated="true">
      .....
</application>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

facebook, Google +, Sina Weibo 라이브러리 설정

  • 개요
    • Hive에서는 facebook, Google +, Sina Weibo 계정을 가지고 있는 사용자라면, 별도의 Hive 가입 절차 없이 SNS 계정을 통해 인증(회원 가입 또는 로그인)을 받을 수 있습니다. SNS계정을 통해 인증된 사용자도 일반 Hive 사용자와 마찬가지로 Hive 서버로부터 동일하게 인증 정보(uid, did, sessionkey)를 발급 받고, 동일하게 게임을 이용할 수 있습니다.
  • 다운로드
    • Facebook : 플랫폼 클라이언트팀에서 배포하는 facebook SDK를 사용하길 권장합니다. (Hive v2.6.0부터 Facebook SDK v4.18 사용중, Hive v2.6.9부터 Facebook SDK v4.33 사용중)
      • 최신버전을 사용하길 권장합니다.(버전 숫자가 높을수록 최신)
      • 하이브 svn에서 배포중인 페이스북 SDK는 하이브 서버에서 페이스북 로그인 후에 유저 정보 쿠키를 날리지 않도록 커스터마이징 한 버전입니다. svn을 통해 하이브팀에서 배포하는 SDK를 사용하길 권장합니다.
      • Android Peppermint v2.6.7부터 다른 모듈과의 연관성을 확인해야 합니다.
        • Android Peppermint v2.6.7 적용 시 동일 시점에 업데이트된 Android 모듈 ModuleManager v2.5.2, ActiveUser v2.8.2, Mercury v2.11.0, Push v3.3.9, InApp v2.14.1을 동시에 업데이트하는 것을 권장합니다. (Offerwall 모듈은 상관 없습니다.)
        • Android Peppermint v2.6.7에 추가된 Facebook 4.18_libs_update 프로젝트는 Facebook에서 사용하는 Android Support v4 및 v7 라이브러리를 기존 25.0.0 버전에서 27.1.0 버전으로 업데이트 하였고, 외부 모듈들은 해당 Support 라이브러리 버전에 의존하는 로직을 포함하고 있습니다.
        • 각 모듈 패키지에도 Support 라이브러리 27.1.0 버전이 포함되어 있지만 권장하지 않는 버전들과 혼용할 경우 빌드 시 Support 라이브러리 중복 에러가 발생할 수 있어 동시 업데이트를 권장합니다.
    • Google+ : 마찬가지로 하이브팀에서 배포하는 google-play-services SDK를 사용하길 권장합니다. (Hive v2.6.0부터 google-play-services SDK v10.0.1 사용중)
      • 최신버전을 사용하길 권장합니다.(버전 숫자가 높을수록 최신)
  • facebook SDK v4.18 설정
1. 이클립스에 facebook SDK 프로젝트를 임포트합니다.
2. facebook SDK 임포트 시 facebook library, aapt, appcompat-v7, cardview-v7 프로젝트를 볼 수 있는데 그 중 aapt만 제외하고 3개의 프로젝트를 가져옵니다.
3. 그 다음, facebook library 프로젝트를 우클릭하여 속성(Properties) 수행, Android > Library 항목으로 이동하여 facebook library 프로젝트가 appcompat-v7, cardview-v7 프로젝트를 참조하도록 설정합니다.
facebookSDK properties setting.png


Facebook 4.18 프로젝트는 Android Peppermint v2.6.7 업데이트 이후 프로젝트 설정이 변경되었으니 아래 변경사항을 참고 바랍니다.
3-1) Android Peppermint v2.6.7 이전
- Peppermint 패키지의 /android/facebook-4.18.0 프로젝트를 사용합니다.
- 각 프로젝트 속성에 참조된 라이브러리 파일(.jar)를 참고바랍니다.
- v2.6.7 이전의 경우 appcompat, cardview 프로젝트가 별도의 .jar 파일을 참조하고 있지 않습니다.
peppermint 2 6 7 before facebook.png


3-2) Android Peppermint v2.6.7 부터
- Peppermint 패키지의 /android/facebook-4.18.0_libs_update프로젝트를 사용합니다. (기존 /android/facebook-4.18.0/libs, /android/facebook-4.18.0/externalLibs 경로의 파일이 변경되었고, /android/facebook-4.18.0_libs_update로 새롭게 패키징 되었습니다.)
- 각 프로젝트 속성에서 참조된 라이브러리 파일(.jar)를 참고바랍니다.
peppermint 2 6 7 facebook 2.png


peppermint 2 6 7 appcompat 2.png


peppermint 2 6 7 cardview 2.png


4. Package Explorer/Project Explorer에서 Hive 모듈 프로젝트(Peppermint_dist)를 선택한 다음, 우클릭을 하고 속성(Properties)을 클릭합니다.
5. 좌측 패널에서 ‘Android’를 선택후 ‘Library’에서 ‘Add...’ 버튼을 클릭해 facebook SDK(facebook library) 프로젝트를 연결시킵니다.
6. Package Explorer에서 게임 프로젝트를 클릭한 뒤, 속성(Properties)을 선택합니다. 프로젝트 속성 창이 열리면, Java Build Path를 선택하고, Order and Export 탭을 클릭합니다. 여기서 Android Private Libraries를 체크해줍니다(만약 이 항목이 없다면 이클립스 ADT버전이 최신이 아닌 것인데, 빌드 후 실행해서 문제가 없으면 이 과정은 생략하셔도 좋습니다).
7. 게임 프로젝트의 res/values 디렉토리에 있는 strings.xml 에 facebook 어플리케이션 아이디 값을 추가합니다. 이 아이디는 위에서 사업지원팀을 통해 facebook 앱 등록을 하면서 발급 받은 아이디를 말합니다(여기서 키 값은 정확히 “applicationId”로 해주서야 합니다).
<resources>
    <string name="applicationId">[사업지원팀에서 받은 facebook 아이디]</string>
</resources>
8. AndroidManifest.xml은 다음과 같이 설정합니다.
<application ..... android:hardwareAccelerated="true">
      .....
    <activity android:name="com.facebook.FacebookActivity" />
                  android:config="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
                  android:theme="@style/AppTheme"
                  android:label="@string/app_name" />
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId" />
</application>
  • facebook SDK v4.33 (혹은 v4.38) 설정
facebook SDK v4.33, 4.38 모두 동일하게 적용 가능한 방법입니다. 아래 내용을 참고 바랍니다.
1. 이클립스에 facebook SDK 프로젝트를 임포트합니다.
2. facebook SDK 임포트 시 보이는 10개의 라이브러리 FacebookActivity(facebook-common), facebook, facebook-share, facebook-places, facebook-messenger, facebook-login, facebook-core, facebook-applinks, appcompat-v7, cardview-v7 를 모두 가져옵니다.
3. FacebookActivity 프로젝트를 우클릭하여 속성(Properties) 수행, Android > Library 항목으로 이동하여 facebook library 프로젝트가 appcompat-v7, cardview-v7 프로젝트를 참조하도록 설정합니다.
Facebook 4 33 업데이트 내용1.png


그리고 facebook-share, facebook-login 프로젝트를 각각 우클립하여 속성(Properties) 수행, Android > Library 항목으로 이동하여 FacebookActivity(facebook-common) 프로젝트를 참조하도록 설정합니다.
Facebook 4 33 업데이트 내용2.png


다음, facebook 프로젝트 속성(Properties)에서 참조된 라이브러리 파일(.jar)의 구성을 아래 내용을 참고하여 추가합니다.
Facebook 4 33 업데이트 내용3.png


4. Package Explorer/Project Explorer에서 Hive 모듈 프로젝트(Peppermint_dist)를 선택한 다음, 우클릭을 하고 속성(Properties)을 클릭합니다.
5. 좌측 패널에서 ‘Android’를 선택후 ‘Library’에서 ‘Add...’ 버튼을 클릭해 facebook SDK(FacebookActivity(facebook-common), facebook, facebook-share, facebook-places, facebook-messenger, facebook-login, facebook-core, facebook-applinks) 프로젝트(8개)를 연결시킵니다.
Facebook 4 33 업데이트 내용4.png


6. Package Explorer에서 게임 프로젝트를 클릭한 뒤, 속성(Properties)을 선택합니다. 프로젝트 속성 창이 열리면, Java Build Path를 선택하고, Order and Export 탭을 클릭합니다. 여기서 Android Private Libraries를 체크해줍니다(만약 이 항목이 없다면 이클립스 ADT버전이 최신이 아닌 것인데, 빌드 후 실행해서 문제가 없으면 이 과정은 생략하셔도 좋습니다).
7. 게임 프로젝트의 res/values 디렉토리에 있는 strings.xml 에 facebook 어플리케이션 아이디 값을 추가합니다. 이 아이디는 위에서 사업지원팀을 통해 facebook 앱 등록을 하면서 발급 받은 아이디를 말합니다(여기서 키 값은 정확히 “applicationId”로 해주서야 합니다).
<resources>
    <string name="applicationId">[사업지원팀에서 받은 facebook 아이디]</string>
</resources>
8. AndroidManifest.xml은 다음과 같이 설정합니다.
<application ..... android:hardwareAccelerated="true">
      .....
    <activity android:name="com.facebook.FacebookActivity" />
                  android:config="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
                  android:theme="@style/AppTheme"
                  android:label="@string/app_name" />
    <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId" />
</application>
9. facebook-core 라이브러리의 AndroidManifest.xml에서 applicationId를 설정합니다.
이클립스에서 빌드하는 경우 AndroidManifest.xml에 포함된 ${applicationId} 라는 구문은 스스로 빌드되지 못합니다. 이부분에 packageName을 직접넣어 대체합니다.
반면, Android Studio에서 빌드하는 경우 ${applicationId} 구문에 빌드시 packageName이 자동으로 대체됩니다.

manifest applicationId입력필요부분.png < br/>

  • Facebook SDK v4.39 설정
Facebook SDK v4.39 설정 방법은 기존 v4.33, v4.38과 유사합니다.
단, 2가지 변경 주의사항이 있으니 아래 (1), (2) 항목을 체크해주세요.

(1) import하는 프로젝트 수가 변경되었습니다.

이제 Facebook SDK는 총 4개의 프로젝트만 import 합니다.
(facebook-common(FacebookActivity), facebook-share, facebook-core, facebook-login)

(2) Android Support v4 라이브러리는 Facebook-core 라이브러리가 갖고 있습니다.

기존는 facebook-release 프로젝트가 /libs 경로에 Android Support v4 라이브러리들을 갖고 있었습니다.
v4.39.0 부터는 facebook-core 라이브러리가 Android Support v4 라이브러리들을 갖고 있습니다.

각 라이브러리가 참고해야하는 하위 프로젝트는 기존 v4.33, v4.38 버전과 동일합니다.


  • Google Play Services v11.2.0(11200000) 라이브러리 설정
1. 이클립스에 Google Play Services 라이브러리(프로젝트)를 임포트합니다.
2. Google Play Services 라이브러리 임포트 시 총 9개의 프로젝트를 가져옵니다. (auth, auth-api-phone, auth-base, base, basement, drive, games, tasks, plus)

Android Peppermint 2610 GooglePlayServicesSetting.png

3. 그 다음, 각 Google Play Services 라이브러리가 필요로하는 참조 프로젝트를 프로젝트 Properties에 설정합니다.
(아래 9개의 프로젝트 Properties 설정을 확인)

GooglePlayService auth base 11200000.png GooglePlayService auth 11200000.png GooglePlayService auth api phone 11200000.png GooglePlayService base 11200000.png GooglePlayService basement 11200000.png GooglePlayService drive 11200000.png GooglePlayService game 11200000.png GooglePlayService plus 11200000.png GooglePlayService tasks 11200000.png

  • Google + / Google PGS 설정
    1. Google + SDK 프로젝트(google-play-services_lib_버전정보)를 임포트합니다.
    2. 위 “facebook SDK 설정"과 동일합니다
    3. 위 “facebook SDK 설정"과 동일합니다
    4. 위 “facebook SDK 설정"과 동일합니다
    5. 게임 프로젝트 AndroidManifest.xml 에 다음 퍼미션 및 메타 데이터를 추가합니다. 메타 데이터는 <application> 태그 안쪽에 위치시키셔야 합니다(샘플 프로젝트 참조).
 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 <uses-permission android:name="android.permission.USE_CREDENTIALS" />
 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
 <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
    1. 게임 프로젝트의 res/values 디렉토리에 있는 strings.xml 에 Google+ 앱 아이디 값을 추가합니다. 이 앱아이디는 위에서 사업지원팀을 통해 Google+ 앱 등록을 하면서 발급 받은 ClientID의 맨 앞 정수 12자리(혹은 12자리이상) 값입니다. (여기서 키 값은 정확히 임의로 변경가능하지만, 반드시 매니페스트파일에 등록하는 메타파일의 value 값과 맞춰야 합니다).
    <string name="app_id">000000000000</string>
  • 키해시, SHA1 지문, md5 서명 전달
    • facebook, Google 개발자 사이트에 APK Signing에 사용된 인증서 정보(키해시, SHA1 지문, md5 서명)를 등록해야만 정상적으로 facebook, Google + API를 사용할 수 있습니다.
    • 프로젝트를 빌드하는 데 사용하는 인증서의 키해시, SHA1 지문, md5 정보를 확인하여 사업지원팀에 전달해주셔야 합니다. 디버깅 과정의 편의를 위해 디버그용 인증서 및 배포용 인증서의 정보를 모두 전달하시길 권장합니다. 예컨대 배포용 인증서의 키해시만 전달할 경우, 디버그용 인증서로 빌드한 apk파일(이클립스 상에서 Run -> Run하는 경우)에서는 SNS 계정을 통한 로그인이 동작하지 않습니다.
    • 사내 TF의 경우, 디버그용 인증서의 정보만 확인하시면 됩니다. Certificate (Android) 페이지에 나와 있는 Com2usGames 및 기타 공용으로 사용하는 4종의 인증서를 배포용 인증서로 사용하시면, 이 인증서들의 인증서 정보는 별도로 확인하지 않으셔도 됩니다. 예컨대 사업지원팀에 "Com2usGames 인증서"로 등록해 달라고만 말씀하시면 됩니다.
    • 외부 개발사의 경우, 디버그용 인증서 및 배포용 인증서의 정보를 확인하여 사업지원팀에 전달해주시기 바랍니다.
    • 인증서 정보(키해시, SHA1 지문, md5)를 확인하는 방법은 파일:안드로이드 허브(hub) - 키해시, sha1 지문, md5 서명 안내 가이드.pdf를 참고 바랍니다.

QQ 라이브러리 설정

  • Android Peppermint v2.7.0부터 클라이언트 사이드 QQ 로그인을 사용할 수 있습니다.
    • 텐센트 QQ 로그인 정책 대응으로 인한 QQ 로그인 방식 변경(로그인 방식을 기존 서버(웹) 로그인 방식에서 클라이언트 로그인으로 변경) 서버패치(2018/11/15)로 인하여, Peppermint v2.7.0 이하를 적용할 경우, 아래 대상게임은 QQ 로그인 버튼이 비활성화되어 노출되고 있습니다.
    • Peppermint v2.7.0 이상을 적용할 경우 자동으로 QQ 로그인 버튼이 활성화 됩니다.
  • 2018.11.15 시점 참고사항
    • 2018.11.15 시점 QQ 로그인 버튼 비활성화 된 게임목록 : 서머너즈워, 낚시의 신, 골프스타, 사커스피리츠, 원더택틱스, 타이니팜, 라이트:빛의원정대, 소울시커
    • Peppermint v2.7.0 업데이트 적용 대상 게임 : 서머너즈워, 낚시의 신, 골프스타, 사커스피리츠, 원더택틱스
    • 참고 사항
      • 타이니팜과 라이트:빛의원정대의 경우 중국법인에서 서비스 허가를 받지 않은 상황이라 QQ 로그인 적용 대상에서 제외되었습니다.
      • 소울시커의 경우 19년 1월 종료 예정이라 추가 대응을 하지 않았고, 멤버십 전환 유도만 진행됩니다.
      • 제외된 게임의 경우 AppId를 발급받지 않았기 때문에 QQ 로그인 버튼 클릭 시 동작을 하지 않습니다.


  • QQ 라이브러리 적용 방법
    • QQ 콘솔에 앱을 등록하였을 경우 QQ 앱아이디를 발급받아 QQ 라이브러리를 통한 로그인 기능을 사용할 수 있습니다.
    • QQ 콘솔에 앱 등록과 관련된 문의는 GCP 플랫폼 클라이언트팀으로 문의바랍니다. (18.11.15 적용 대상 게임은 별도로 앱 등록 및 앱아이디 발급이 필요 없습니다. GCP 플랫폼 클라이언트팀으로 문의바랍니다.)
  • 적용 사항 1 : AndroidManifest.xml 설정
    • <application> 태그 이하에 아래 내용을 추가
<application>
// ...
    <!--  QQ Login -->
    <activity
       android:name="com.tencent.connect.common.AssistActivity"
       android:configChanges="orientation|keyboardHidden"
       android:screenOrientation="behind"
       android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <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="tencent123456789" />   <!-- tencent 텍스트 뒤에 QQ AppId를 직접 추가 -->
        </intent-filter>
    </activity>
    <uses-library android:name="org.apache.http.legacy" android:required="false"/>
// …
<application>
  • 적용 사항 2 : /res/strings.xml 설정
    • QQ 콘솔에서 발급받은 QQ AppId를 추가
<?xml version="1.0" encoding="utf-8"?>
<resources>
// …
    <string name="qq_appid">123456789</string>
// ...
</resources>
  • 적용 사항 3 : QQ 라이브러리 파일 추가
    • open_sdk_r6019_lite.jar 라이브러리를 프로젝트에 추가
    • 주의! QQ 라이브러리 미포함 시 Facebook, Google 등 소셜 로그인 시(로그인 버튼 터치 시) 크래시가 발생할 수 있습니다. (소셜 서비스 체크 로직에서 QQ 라이브러리 포함여부를 확인하고 있습니다.) 때문에 꼭 Android Peppermint v2.7.0사용 시 open_sdk_r6019_lite.jar를 프로젝트에 추가 바랍니다.
      • QQ 로그인을 사용하지 않는 경우 QQ 라이브러리는 포함하지만 'AndroidManifest.xml 설정', 'strings.xml 설정', 'QQ 앱 설치'는 제외 되어도 무방합니다.
  • 적용 사항 4 : QQ 앱 설치 여부
    • OS에 따라 QQ에서 제공하는 로그인 서비스 동작 차이가 있으며 아래 상황에 따라 QQ 앱 설치 여부가 충족되어야 합니다.


Huawei 라이브러리 설정

  • Peppermint v2.9.0+에서 Huawei Account 사용 시
    • libs 폴더에 peppermint-2.9.x.aar 파일과 Peppermint_Social_Plugin_Huawei-release-2.9.x.aar 라이브러리 파일을 추가
      • Peppermint_Social_Plugin_Huawei-release-2.9.x.aar 파일 위치는 Peppermint/Android/external 폴더에서 확인 가능
    • 프로젝트 폴더에 파일 추가
      • Huawei 콘솔에서 다운로드 받은 agconnect-services.json 파일을 프로젝트 루트 디렉토리에 복사
      • example agconnect json.png
    • Project 폴더내 build.gradle에 아래 내용 추가
      allprojects {
          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.2.1.301' // huawei
          }
      }
    • app 폴더내 build.gradle에 아래 내용 추가
      dependencies {
        //...
        implementation 'com.huawei.hms:hwid:4.0.1.300' // huawei account
      }
      apply plugin: 'com.huawei.agconnect' // huawei
    • Huawei 개발자 사이트 참고
    • 주의사항
      • Huawei 인증 및 빌링을 사용하기 위해서는 minSDKVersion을 반드시 17 이상으로 설정해야함
      • 원활한 테스트를 위해서 HMS(화웨이 모바일 서비스)가 설치된 화웨이 전용 단말에서 사용하는 것을 권장합니다. HMS(화웨이 모바일 서비스)가 미설치된 단말에서 테스트 할 경우 구글 플레이 스토어 또는 기타 apk 다운로드 사이트를 활용하여 HMS(화웨이 모바일 서비스) apk를 설치 후 테스트 바랍니다.
        android {
            //...
            defaultConfig {
          //...
                minSdkVersion 17
            }
        }
    • 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.**{*;}

의존 모듈 초기화(Active User)

  • Hive 모듈은 액티브 유저(Active User) 모듈에 의존성을 가지고 있습니다. 그래서 액티브 유저 모듈도 게임 프로젝트에 추가해야 하며 액티브 유저 모듈을 초기화해줘야 합니다.
  • 액티브 유저(Active User) 모듈의 적용 방법은 해당 모듈 적용 가이드를 참고합니다. Active User 모듈 적용 가이드 (Android)
  • 액티브 유저(Active User) 모듈 적용 시 반드시 아래 사항을 주의해야 합니다:
    • Hive의 Initialize 메서드는 반드시 액티브 유저의 activeUserStart 메서드가 호출된 이후에 불려야 합니다(Hub2Java 샘플 프로젝트 참조).
    • Hive 모듈에서 테스트 서버를 사용하는 경우, 액티브 유저 모듈에서도 테스트 서버를 사용합니다(아래 코드 예시 참조).
    • 자세한 코드 예제는 Active User 모듈 적용 가이드 및 Hub2Java 샘플 프로젝트를 참고 바랍니다.
@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    mActiveUser = new ActiveUser(this);
    if(PeppermintConstant.USE_HUB_TESTSERVER) {
        mActiveUser.setUseTestServer();
    }
    mActiveUser.start();
}

Hive 모듈 초기화

JNI 미사용 프로젝트

Hive 객체 설정

  • 게임 프로젝트 MainActivity의 onCreate() 메서드와 onActivityResult() 메서드에 아래 내용을 추가합니다.
public class MainActivity extends Activity {
        private Peppermint mPeppermint;
        private ActiveUser mActiveUser;
       ...

       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);

           ...
           mPeppermint = new Peppermint(this);
           mPeppermint.initialize("앱아이디", "게임 인덱스", "사용할 서버(false or true)");
       }

       @Override
       public void onActivityResult(int requestCode, int resultCode, Intent data) {
           super.onActivityResult(requestCode, resultCode, data);
           ...
           mPeppermint.onActivityResult(requestCode, resultCode, data);  
       }
}

JNI 사용 프로젝트(Com2us Wrapper, cocos2D 등)

Android.mk 수정

  • 아래 내용을 Android.mk 파일에 추가한다.
#static 라이브러리 선언
include $(CLEAR_VARS)
LOCAL_MODULE := cshub_prebuilt
LOCAL_SRC_FILES := libc2shub2_static.a  #../../프로젝트명  등의 상대경로도 입력 가능
include $(PREBUILT_STATIC_LIBRARY)

#헤더파일 경로 추가
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Peppermint_dist/jni/C2SHub2 \

#static 라이브러리 추가
LOCAL_STATIC_LIBRARIES := cshub_prebuilt
  • C/C++ Methods에 대한 자세한 내용은 Hive API Reference를 참고 하시면 됩니다.

java부분 수정

  • Hive 모듈의 기본 스레드 정책은 Hive API를 호출한 스레드가 콜백 함수도 호출하는 것입니다. 예를 들어, A 스레드가 auth() API를 호출하였을 경우, A 스레드가 closeCallback 함수를 부르도록 되어있습니다.
  • MainActivity onCreate() 메서드와 onActivityResult() 메서드에 아래 내용 추가
//관련 클래스 임포트 부분
import com.com2us.peppermint.HubBridge;
import com.com2us.peppermint.HubCallbackListener;

public class MainActivity extends Activity {
       ...
       @Override
       public void onCreate(Bundle savedInstanceState) {
              //Com2us Wrapper 사용 시
             HubBridge.hubInitializeJNI();
             HubBridge.HubCallbackSetListener(new HubCallbackListener() {
                        @Override
                        public void onCallback(Runnable r) {
                                wrapperView.queueEvent(r);  //wrapperView는 GLSurfaceView를 의미
                        }
             });

             //Cocos2D 사용 시
             SurfaceViewWrapper viewEx = new SurfaceViewWrapper(getGLSurfaceView()) {
                     @Override
                     public void queueEvent(Runnable r) {
                             if(view instanceof GLSurfaceView){
                                  ((GLSurfaceView)view).queueEvent(r);
                             }
                      }
              };
       }

       @Override
       public void onActivityResult(int requestCode, int resultCode, Intent data) {
           super.onActivityResult(requestCode, resultCode, data);
           ...
           //Com2us Wrapper 사용 시
           HubBridge.getPeppermint().onActivityResult(requestCode, resultCode, data);
       }

URL Scheme 설정

  • 하이브 웹페이지 혹은 외부링크를 통해 게임을 실행할 수 있도록 URL Scheme 를 추가 합니다
  • 아래 내용은 프로젝트 AndroidManifest.xml 파일의 메인액티비티 안에 포함시킵니다.
 <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>
  • 적용 확인 테스트
    • URL Scheme 설정이 제대로 되었는지 확인하려면, 빌드가 설치된 단말의 브라우저에서 http://test-hivemanager.com2us.com/api/url_scheme 로 접속하여 앱아이디를 입력해봅니다.
    • 앱아이디 입력시 해당 앱이 실행된다면 정상적으로 적용된 것입니다.
    • 위 url 링크는 사내망에서만 접근가능합니다.
      • 실행후 해당 앱아이디 입력 후 '입력완료' 버튼을 누르면 됩니다.

Facebook SDK 개인정보 보호 설정

  • GDPR 정책에 따라 약관 동의 이후에 Facebook SDK 초기화 및 네트워크 통신이 이루어지도록 하려면 아래 내용을 AndroidManifest.xml에 포함시킵니다. (관련 페이스북 페이지 링크)
    • Android Peppermint v2.7.9 이상을 적용하고 Android Facebook 5.4.0 이상을 적용하는 경우 꼭 확인이 필요합니다.
  • <application> 태그 이하에 포함시킵니다.
 <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"/>

Android Studio 적용하기 (190625 배포 이후)

1) .jar 라이브러리 추가하기

  • 배포된 패키지에 있는 Peppermint-x.x.x.jar 라이브러리를 프로젝트가 추가합니다.
    • build.gradle 설정에서 해당 .jar 파일을 implementation하여 빌드되도록 설정합니다.

2) 통합 리소스 및 수정설정 리소스 추가하기

  • 리소스 가이드에 있는 통합 리소스와 수정설정 리소스를 프로젝트에 추가합니다. [리소스 추가하기]

3) Peppermint 라이브러리가 필요로하는 외부 라이브러리를 추가하기

  • Peppermint 라이브러리는 Android Support 라이브러리 등 외부 라이브러리를 필요로 합니다. 아래 라이브러리를 build.gradle의 dependencies 항목에 추가하여 같이 사용하도록 합니다.
  • Google Play Services 라이브러리, Facebook 라이브러리 사용 시 역시 build.gradle의 dependencies 항목에 추가하여 같이 사용하도록 합니다.
  • 그 외, 기타 외부 라이브러리를 사용하는 경우 프로젝트 내의 경로를 잘 파악하거나 네트워크 저장소(google, maven 등) 경로를 잘 파악하여 build.gradle에 추가하여 사용합니다.
//... (생략)...
dependencies {
  // ...(생략)...
  // 위쳇 로그인 라이브러리
  implementation files('libs/open_sdk_r6019_lite.jar')

  // Android Support 라이브러리
  implementation 'androidx.appcompat:appcompat:1.0.0'
  implementation 'androidx.cardview:cardview:1.0.0'
  implementation 'androidx.legacy:legacy-support-v4:1.0.0'

  // Google Play Services 라이브러리
  implementation ‘com.google.android.gms:play-services-auth:17.0.0’ // Peppermint v2.8.2+
  implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0' // Peppermint v2.8.2+
  implementation 'com.google.android.gms:play-services-games:17.0.0' // Peppermint v2.8.2+

  // Facebook 라이브러리
  implementation 'com.facebook.android:facebook-common:6.5.1' // Peppermint v2.9.1- Facebook Version Update (v5.5.1 -> v6.5.1)
  implementation 'com.facebook.android:facebook-core:6.5.1' // Peppermint v2.9.1 - Facebook Version Update (v5.5.1 -> v6.5.1)
  implementation 'com.facebook.android:facebook-login:6.5.1' // Peppermint v2.9.1 - Facebook Version Update (v5.5.1 -> v6.5.1)
  implementation 'com.facebook.android:facebook-share:6.5.1' // Peppermint v2.9.1 - Facebook Version Update (v5.5.1 -> v6.5.1)

  //...(생략)...
}
//...(생략)...

4) gradle.properties 파일 내 androidX 사용 설정

  • gradle.properties 파일 내 아래의 코드를 추가하세요. gradle.properties 파일이 존재하지 않는 경우 신규 생성 후 아래의 코드를 추가하세요.
android.useAndroidX=true
android.enableJetifier=true

챗봇 UI 설정하기

  • 유저의 편의를 고려해 챗봇 UI를 세로 고정형으로 노출합니다. 챗봇 기능을 사용하는 게임에서 설정이 필요한 내용으로 AndroidManifest.xml 내 챗봇 액티비티 설정을 추가해야 합니다.
<activity
   android:name="com.com2us.peppermint.PeppermintChatbotActivity"
   android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
   android:screenOrientation="behind"  />


Hive >>

Hive_게임_클라이언트_적용가이드

>>

플랫폼별 환경설정 가이드

Hive iOS 환경설정

Hive Android 환경설정

Hive Unity3d_iOS 환경설정

Hive Unity3d_Android 환경설정

>>

하이브 모듈 API 레퍼런스

Hive API Reference

Hive Unity API Reference

Hive AsyncRequest API Reference

Hive SocialRequest API Reference

>>

하이브 기능 활용 가이드

프로필 이미지 가져오기

국기 이미지 가져오기

Hive Dialog 특정 페이지 이동하기

Hive 소셜 확장 연동 가이드

개인 도구
이름공간

변수
행위
둘러보기
도구모음
인쇄/내보내기