Game > Gamebase > Android SDK ご利用ガイド > はじめる

Environments

AndroidでGamebaseを利用するためのシステム環境は、次の通りです。

[最小仕様]

  • 使用者実行環境:Android API 16 (JellyBean, OS 4.1)以上
  • ビルド環境:Android Gradle Plugin 3.2.0以上
  • 開発環境:Android Studio

Dependencies

Gamebase SDK Gamebase Adapter External SDK 用途 minSdkVersion
Gamebase gamebase-sdk-base
gamebase-sdk
toast-core-0.27.4
toast-common
toast-crash-reporter-ndk
toast-logger
gson-2.8.7
okhttp-3.12.5
kotlin-stdlib-1.5.21
kotlin-stdlib-common
kotlin-stdlib-jdk7
kotlin-stdlib-jdk8
kotlin-android-extensions-runtime
kotlinx-coroutines-core-1.5.1
kotlinx-coroutines-android
kotlinx-coroutines-core-jvm
GamebaseのInterfaceおよびコアロジックを含む API 16 (JellyBean, OS 4.1)
Gamebase Auth Adapters gamebase-adapter-auth-appleid - Sign In With Appleログインをサポート API 19(Kitkat, OS 4.4)
gamebase-adapter-auth-facebook facebook-login-11.1.0 Facebookログインをサポート -
gamebase-adapter-auth-google play-services-auth-19.0.0 Googleログインをサポート -
gamebase-adapter-auth-hangame hangame-id-1.4.2 Hangameログインをサポート -
gamebase-adapter-auth-line linesdk-5.6.2 LINEログインをサポート API 17(Kitkat, OS 4.2)
gamebase-adapter-auth-naver naveridlogin-android-sdk-4.4.1 Naverログインをサポート -
gamebase-adapter-auth-payco payco-login-1.5.6 Paycoログインをサポート -
gamebase-adapter-auth-twitter signpost-core-1.2.1.2 Twitterログインをサポート API 19(Kitkat, OS 4.4)
gamebase-adapter-auth-weibo sinaweibosdk.core-11.8.1 Weiboログインをサポート API 19(Kitkat, OS 4.4)
gamebase-adapter-auth-kakaogame kakaogame.idp_kakao-3.11.5
kakaogame.gamesdk
kakaogame.common
kakao.sdk.v2-auth-2.5.2
kakao.sdk.v2-partner-auth
kakao.sdk.v2-common
play-services-ads-identifier-17.0.0
Kakaoログインをサポート API 21(Lollipop, OS 5.0)
Gamebase IAP gamebase-adapter-toastiap toast-gamebase-iap-0.16.0
toast-iap-core
ゲーム内決済をサポート -
gamebase-adapter-purchase-galaxy toast-iap-galaxy Galaxy Storeをサポート API 21(Lollipop, OS 5.0)
Galaxy IAP SDKのminSdkVersionは18ですが、
実際の決済のためにインストールしなければいけないCheckoutサービスアプリの
minSdkVersionは21です。
gamebase-adapter-purchase-google billingclient.billing-3.0.3
toast-iap-google
Google Storeをサポート -
gamebase-adapter-purchase-onestore toast-iap-onestore ONE Storeをサポート -
Gamebase Push gamebase-adapter-toastpush toast-push-analytics
toast-push-core
toast-push-notification
Pushをサポート -
gamebase-adapter-push-fcm firebase-messaging-17.6.0
toast-push-fcm
Firebase Notificationをサポート -

Setting

Console

[注意]

  • NHN Cloud Consoleで新しいプロジェクトを作成してGamebaseサービスが有効になっていることを必ず確認してください。
  • 各IdPのコンソールでClient IDを発行してGamebaseコンソールに入力していることを必ず確認してください。

Register as Tester

Gamebase Test Device

Store's Tester

Gradle

Using AndroidX

  • AndroidX使用宣言をビルド設定に追加してください。
    • Android Studio groovy # gradle.properties # >>> [AndroidX] android.useAndroidX=true android.enableJetifier=true
    • Unity 2019.2以下 groovy // mainTemplate.gradle ([rootProject] + (rootProject.subprojects as List)).each { ext { it.setProperty("android.useAndroidX", true) it.setProperty("android.enableJetifier", true) } }
    • Unity 2019.3以上 groovy // gradleTemplate.properties android.useAndroidX=true android.enableJetifier=true
    • Unreal xml <gradleProperties> <insert> android.useAndroidX=true android.enableJetifier=true </insert> </gradleProperties>

Define Adapters

  • 使用するGamebaseバージョン、使用する認証、決済、プッシュモジュールをbuild.gradleファイルで宣言してください。
    • Gamebaseの最新バージョンはMaven Central(LINK)で確認できます。
    • mavenCentral()保存場所を追加してください。
repositories {
    // >>> For Gamebase SDK
    mavenCentral()
    ...
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // >>> Gamebase Version
    def GAMEBASE_SDK_VERSION = 'x.x.x'

    // >>> Gamebase - Add Auth Adapter
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-google:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-facebook:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-appleid:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-twitter:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-naver:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-line:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-payco:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-weibo:$GAMEBASE_SDK_VERSION"

    // >>> Gamebase - Select Purchase Adapter
    implementation "com.toast.android.gamebase:gamebase-adapter-purchase-google:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-purchase-galaxy:$GAMEBASE_SDK_VERSION"

    // >>> Gamebase - Select Push Adapter
    implementation "com.toast.android.gamebase:gamebase-adapter-push-fcm:$GAMEBASE_SDK_VERSION"

    // >>> 次のモジュールの使用方法はサポートへお問い合わせください。
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangame:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-auth-kakaogame:$GAMEBASE_SDK_VERSION"
    implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore-v16:$GAMEBASE_SDK_VERSION"
}

android {
    compileOptions {
        // >>> [AndroidX]
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        // >>> [Weibo IdP]
        ndk {
            abiFilters 'armeabi' // , 'armeabi-v7a', 'arm64-v8a'
        }
    }
    }
}

Resources

Firebase Notification

  • Android Studioビルドの場合
  • Unityビルドの場合
    • Firebase Unity SDK Packageをインストールした場合は、以下のコマンドでgenerate_xml_from_google_services_json.exeファイルを実行してjsonファイルをxmlファイルに変換できます。 "{UnityProject}\Firebase\Editor\generate_xml_from_google_services_json.exe" -i "{JsonFilePath}\google-services.json" -o "{UnityProject}\Assets\Plugins\Android\res\values\google-services.xml" -p "{PackageName}"
    • Firebase Unity SDK Packageをインストールしていない場合は、「Firebase Console > プロジェクト設定」からgoogle-services.jsonファイルをダウンロードして、以下のガイドに従ってstring resource(xml)ファイルを直接作って「Assets/Plugins/Android/res/values/」フォルダに含める必要があります。 Firebaseサービスの連携によってgoogle-services.jsonファイルの内容は異なる場合があります。 Download google-services.json
<!-- Assets/Plugins/Android/res/values/google-services-json.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="firebase_database_url" translatable="false">https://gamebase-sample-00000000.firebaseio.com</string>
    <string name="gcm_defaultSenderId" translatable="false">000000000000</string>
    <string name="google_storage_bucket" translatable="false">gamebase-sample-00000000.appspot.com</string>
    <string name="project_id" translatable="false">gamebase-sample-00000000</string>
    <string name="google_api_key" translatable="false">AbCd_AbCd_AbCd_AbCd_AbCd_AbCd_AbCd</string>
    <string name="google_app_id" translatable="false">1:000000000000:android:abcd0123abcd0123</string>
    <string name="default_web_client_id" translatable="false">000000000000-abcdabcdabcdabcdabcdabcdabcd.apps.googleusercontent.com</string>
</resources>
  • Unrealビルドの場合、Gamebase Unreal SDKで空のgoogle-service-json.xmlファイルを含めて配布しているため、該当ゲーム情報に合った値に変更してください。
    • もしEasyFirebaseのように、似たような形式のxmlを自動作成するContentがある場合、リソース重複により ビルドエラーが発生する場合があります。この時はgoogle-service-json.xmlファイルを除去してください。

AndroidManifest.xml

Facebook IdP

  • Facebook SDKを初期化するためにApp IDを宣言します。
    • 値を直接宣言するよりは、以下の例のようにresourcesを参照するように設定するのが良いでしょう。
    • Gamebase SDKが内部的にFacebook SDK初期化関数を呼び出しているため、現在は必須設定ではありません。

AndroidManifest.xml

<manifest ...>
    <application ...>
        ...
        <!-- [Facebook] Configurations begin -->
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
        <!-- [Facebook] Configurations end -->
        ...
    </application>
</manifest>

res/values/strings.xml

<resources>
    <!-- [Facebook] Facebook APP ID -->
    <string name="facebook_app_id">123456789012345</string>
</resources>

Line IdP

  • Line SDKの内部にandroid:allowBackup="false"が宣言されており、アプリケーションビルド時にManifest mergerでfailが発生することがあります。ビルドが失敗した場合は、次のようにapplicationタグにtools:replace="android:allowBackup"宣言を追加してください。
<application
      tools:replace="android:allowBackup"
      ... >

Weibo IdP

  • Weibo IdPが正常に動作するには、applicationタグにandroid:networkSecurityConfig attributeを追加し、weibo、sina関連URLを宣言したxmlファイル名を設定する必要があります。
<application android:networkSecurityConfig="@xml/my_network_security_config"
    ...>
    ...
</application>
  • res/xml/my_network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- Weibo SDK start -->
        <domain includeSubdomains="true">sina.cn</domain>
        <domain includeSubdomains="true">weibo.cn</domain>
        <domain includeSubdomains="true">weibo.com</domain>
        <domain includeSubdomains="true">sinaimg.cn</domain>
        <domain includeSubdomains="true">sinajs.cn</domain>
        <domain includeSubdomains="true">sina.com.cn</domain>
        <!-- Weibo SDK end -->
    </domain-config>
</network-security-config>

ONE Store

  • ONE storeは、全体決済画面とポップアップ決済画面をサポートします。
    • AndroidManifest.xmlにmeta-dataを追加して全体決済画面("full")またはポップアップ決済画面("popup")を選択できます。
    • meta-dataを設定しない場合はデフォルト値("full")が適用されます。
<manifest>
    ...
    <application>
        ...
        <!-- [ONE store] Configurations begin -->
        <!-- popup:ポップアップ決済画面 / full:全体決済画面 -->
        <meta-data
            android:name="iap:view_option"
            android:value="popup | full" />
        <!-- [ONE store] Configurations end -->
        ...
    </application>
</manifest>
決済画面 設定値
全体決済画面 "full"
ポップアップ決済画面 "popup"

Notification Options

  • 次のような方法で通知オプションを設定できます。

Example

<!-- Notification priority -->
<meta-data android:name="com.toast.sdk.push.notification.default_priority"
           android:value="1"/>
<!-- Notification background color -->
<meta-data android:name="com.toast.sdk.push.notification.default_background_color"
           android:resource="@color/defaultNotificationColor"/>
<!-- LED light -->
<meta-data android:name="com.toast.sdk.push.notification.default_light_color"
           android:value="#0000ff"/>
<meta-data android:name="com.toast.sdk.push.notification.default_light_on_ms"
           android:value="0"/>
<meta-data android:name="com.toast.sdk.push.notification.default_light_off_ms"
           android:value="500"/>
<!-- Small icon -->
<meta-data android:name="com.toast.sdk.push.notification.default_small_icon"
           android:resource="@drawable/ic_notification"/>
<!-- Sound -->
<meta-data android:name="com.toast.sdk.push.notification.default_sound"
           android:value="notification_sound"/>
<!-- Vibrate pattern -->
<meta-data android:name="com.toast.sdk.push.notification.default_vibrate_pattern"
           android:resource="@array/default_vibrate_pattern"/>
<!-- Use badge icon or not -->
<meta-data android:name="com.toast.sdk.push.notification.badge_enabled"
           android:value="true"/>
<!-- Enable notification when application is foreground. -->
<meta-data android:name="com.toast.sdk.push.notification.foreground_enabled"
           android:value="false"/>
meta-data key value type description
com.toast.sdk.push.notification.default_priority int 優先順位。
以下の5つの値を設定できます。
NoticationComapt.PRIORITY_MIN : -2
NoticationComapt.PRIORITY_LOW : -1
NoticationComapt.PRIORITY_DEFAULT : 0
NoticationComapt.PRIORITY_HIGH : 1
NoticationComapt.PRIORITY_MAX : 2
com.toast.sdk.push.notification.default_background_color int 背景色。
com.toast.sdk.push.notification.default_light_color int LED色。
com.toast.sdk.push.notification.default_light_on_ms int LEDが点灯する時の時間。
com.toast.sdk.push.notification.default_light_off_ms int LEDが消える時の時間。
com.toast.sdk.push.notification.default_small_icon resource id 小さいアイコンのリソース識別子。
com.toast.sdk.push.notification.default_sound String 通知音ファイル名。
Android 8.0未満のOSでのみ動作します。
「res/raw」フォルダのmp3、wavファイル名を指定すると、通知音が変更されます。
com.toast.sdk.push.notification.default_vibrate_pattern long[] 振動のパターン。
com.toast.sdk.push.notification.badge_enabled boolean バッジアイコンの使用有無。
com.toast.sdk.push.notification.foreground_enabled boolean フォアグラウンド通知の使用有無。

Android 11

  • Android 11は、ビルド時にあらかじめ宣言されたアプリケーションでなければ、他のアプリケーションが実行されません。
  • そのため、targetSdkVersionを30以上に設定する場合には必ずAndroidManifest.xmlにqueriesタグを利用して許可するアプリケーションをあらかじめ宣言しておく必要があります。

[注意]

  • 'queries'タグは既存Android Gradle Plugin(AGP)では認識できず、ビルドが失敗します。
  • 以下のガイドおよび表を参考にして'queries'タグビルドが可能なAGPバージョンにアップグレードしてください。
    • https://android-developers.googleblog.com/2020/07/preparing-your-build-for-package-visibility-in-android-11.html
    • AGP 3.2.*以下のバージョンを使用する場合、3.3.3以上にアップグレードする必要があります。
    • AGP 4.1.0以上のバージョンを使用する場合は、AGPのアップグレードは行わなくても構いません。 | If you are using
      the Android Gradle
      plugin version... | ...upgrade to: | Unity Editor | | --- | --- | --- | | 4.1. | N/A (no upgrade needed)| - | | 4.0. | 4.0.1 | - | | 3.6. | 3.6.4 | 2020.1 ~ | | 3.5. | 3.5.4 | - | | 3.4. | 3.4.3 | 2018.4.4 ~
      2019.1.7 ~ | | 3.3.
      | 3.3.3 | - | | 3.2. | Not supported | 2017.4.17 ~
      2018.3 ~ 2018.4.3
      2019.1.0 ~ 2019.1.6 | | 3.0.
      | Not supported | 2018.2 | | 2.3. | Not supported | 2017.3 ~ 2017.4.16
      2018.1 | | 2.1.
      | Not supported | Unity 5
      2017.1 ~ 2017.2 |
<manifest>
    <!-- [Android11] settings start -->
    <queries>
        <!-- [All SDK] AppToWeb Authenthcation support start -->
        <package android:name="com.android.chrome" />
        <package android:name="com.chrome.beta" />
        <package android:name="com.chrome.dev" />
        <package android:name="com.sec.android.app.sbrowser" />
        <!-- [All SDK] AppToWeb Authenthcation support end -->

        <!-- [Facebook] Configurations begin -->
        <package android:name="com.facebook.katana" />
        <!-- [Facebook] Configurations end -->

        <!-- [Payco/Hangame] Configurations begin -->
        <package android:name="com.nhnent.payapp" />
        <!-- [Payco/Hangame] Configurations end -->

        <!-- [Hangame] Configurations begin -->
        <package android:name="com.nhn.hangameotp" />
        <package android:name="com.sci.siren24.ipin" />
        <package android:name="kr.co.samsungcard.mpocket" />
        <package android:name="com.lcacApp" />
        <package android:name="com.shcard.smartpay" />
        <package android:name="com.hyundaicard.appcard" />
        <package android:name="com.kbcard.cxh.appcard" />
        <package android:name="com.hanaskcard.paycla" />
        <package android:name="kvp.jjy.MispAndroid320" />
        <package android:name="nh.smart.nhallonepay" />
        <!-- [Hangame] Configurations end -->

        <!-- [Line] Configurations begin -->
        <package android:name="jp.naver.line.android" />
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
        </intent>
        <!-- [Line] Configurations end -->

        <!-- [Naver] Configurations begin -->
        <package android:name="com.nhn.android.search" />
        <!-- [Naver] Configurations end -->

        <!-- [Weibo] Configurations begin -->
        <package android:name="com.weico.international" />
        <package android:name="com.sina.weibo" />
        <!-- [Weibo] Configurations end -->

        <!-- [ONE store] Configurations begin -->
        <intent>
            <action android:name="com.onestore.ipc.iap.IapService.ACTION" />
        </intent>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="onestore" />
        </intent>
        <!-- [ONE store] Configurations end -->

        <!-- [Galaxy store] Configurations begin -->
        <package android:name="com.sec.android.app.samsungapps" />
        <!-- [Galaxy store] Configurations end -->
    </queries>
    <!-- [Android11] settings end -->
</manifest>

Proguard

  • Gamebase 2.21.0未満のバージョンはProguard適用時、Proguard Ruleに次の宣言を追加していない場合、決済API呼び出し時にクラッシュが発生します。
    • Gamebase 2.21.0バージョンで修正されました。
# ---------------------- [Gamebase TOAST IAP] defines start ----------------------
# For using reflection
-keep class com.toast.android.toastgb.iap.ToastGbStoreCode { *; }
# ---------------------- [Gamebase TOAST IAP] defines end ----------------------
  • Gamebaseで推奨するflowは、Sample Projectにも同じように実装されています。
  • ゲームが始まった時、GamebaseクライアントSDKを初期化し、ログインが成功したら決済の再処理が始まるように実装してください。

overview flow

3rd-Party Provider SDK Guide

API Reference

  • API Referenceは、SDKの中に含まれています。

API Deprecate Governance

GamebaseでサポートしないAPIは、使用していないもの(deprecate)として処理します。 使用していない(deprecated) APIは、次の条件を満たす場合、事前告知を行わずに削除されることがあります。

  • 5回以上のマイナーバージョンアップデート
    • Gamebaseバージョン形式 - XX.YY.ZZ
      • XX:Major
      • YY:Minor
      • ZZ:Hotfix
  • 最低5ヶ月経過
TOP