# 1 接入准备

这一步骤主要介绍快速将SDK资源集成到游戏工程,以编译打包正常为完成标志。

核心库以外,其余模块均属于可选依赖,按需引入即可。

下一步将介绍具体业务功能的集成。

# 1.1 准备环境

  1. 下载 SDK资源
  2. 接入准备:

# 2 集成

# 2.1 SDK导入

  1. SDK现仅适用于Android Studio开发。

  2. 将压缩包解压,解压后将marketsdk.aar复制到项目moudle(通常是app目录)的libs下。

# 2.2 配置

所有的配置,可参考获取到的SDK版本中的demo工程。

# 2.2.1 AndroidManifest.xml配置

说明:
1. 请根据实际用到的 市场模块 配置

  1. 权限配置

    • appsflyer:

      <!-- appsflyer -->
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      
      1
      2
      3
      4
    • facebook:

      <!-- facebook -->
      <uses-permission android:name="android.permission.INTERNET" />
      
      1
      2
    • firebase:

      <!-- firebase -->
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.WAKE_LOCK" />
      
      1
      2
      3
      4
    • Adjust:

      <!-- Adjust -->
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
      1
      2
      3
      4
  2. 其它配置(在 <application>...</application> 内)

    • AppsFlyer配置

      <receiver
          android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
          android:exported="true">
          <intent-filter>
          <action android:name="com.android.vending.INSTALL_REFERRER" />
          </intent-filter>
      </receiver>
      
      1
      2
      3
      4
      5
      6
      7
    • Facebook 配置

      • 打开您的 /app/res/values/strings.xml 文件,添加名称为 facebook_app_idfacebook_client_tokenstring 元素

        <string name="facebook_app_id">1234</string>
        <string name="facebook_client_token">56789</string>
        
        1
        2
      • 打开 /app/manifest/AndroidManifest.xml 文件, 将 meta-data 元素添加到应用编号和客户端口令的 application 元素中:

        
        <application android:label="@string/app_name" ...>
            ...
                <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
                <meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
            ...
        </application>
        
        
        1
        2
        3
        4
        5
        6
        7
        8
      • 客户端口令(facebook_client_token)获取位置:在facebook控制台面板中,依次前往设置 > 高级设置 > 安全 > 客户端口令

    • Adjust配置

      <receiver
          android:name="com.adjust.sdk.AdjustReferrerReceiver"
          android:exported="true" >
              <intent-filter>
                  <action android:name="com.android.vending.INSTALL_REFERRER" />
          </intent-filter>
      </receiver>
      
      1
      2
      3
      4
      5
      6
      7
  3. Android Studio 混淆配置

    若游戏在编译过程中开启了混淆机制,请务必添加以下字段到混淆文件 proguard-rules.pro

        -keep class com.hero.market.** { *; }
        -keep class com.ultra.market.** { *; }
        -keep class com.hero.global.** { *; }
        -keep class com.ultrasdk.global.** { *; }
        -keep class com.appsflyer.** { *; }
        -keep class com.facebook.** { *; }
        -keep class com.google.** { *; }
        -keep class com.android.** { *; }
        -keep class com.hu.plugin.** { *; }
    
        -keep class com.adjust.sdk.**{ *; }
        -keep class com.google.android.gms.common.ConnectionResult {
            int SUCCESS;
        }
        -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
            com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
        }
        -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
            java.lang.String getId();
            boolean isLimitAdTrackingEnabled();
        }
        -keep public class com.android.installreferrer.**{ *; }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

# 2.2.2 编译脚本配置(build.gradle

  1. Firebase配置

    1. 将在google后台下载的google-services.json文件复制到项目根目录下

    2. 向您的根级build.gradle文件添加规则:

          buildscript {
              repositories {
                  google()
                  mavenCentral()
              }
          }
      
          dependencies {
              classpath 'com.google.gms:google-services:4.3.15'
          }
          
          allprojects {
              repositories {
                  mavenCentral()
                  google()
              }
          }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17

# 2.2.3 库引用配置(build.gradle

  1. 在您的模块Gradle文件(通常是app/build.gradle)中,添加规则:

    apply plugin: 'com.android.application'
    
    dependencies {
        <!-- 核心库 必须依赖--start>
        implementation 'com.android.installreferrer:installreferrer:2.2'
        implementation files('libs/marketsdk.aar')
        <!-- 核心库 必须依赖--end>
    
        <!-- appsflyer 未使用则不依赖-->
        implementation 'com.appsflyer:af-android-sdk:6.13.0'
    
        <!-- facebook 未使用则不依赖-->
        implementation 'com.facebook.android:facebook-android-sdk:16.0.0'
    
        <!-- firebase 未使用则不依赖-->
        implementation platform('com.google.firebase:firebase-bom:32.7.2')
        implementation 'com.google.firebase:firebase-analytics'
    
        <!-- adjust 未使用则不依赖-->
        implementation 'com.adjust.sdk:adjust-android:4.33.4'
    
        <!-- AppMetrica 未使用则不依赖-->
        implementation 'com.yandex.android:mobmetricalib:5.3.0'     
    }
            
    // ADD THIS AT THE BOTTOM
    // firebase need to copy
    apply plugin: 'com.google.gms.google-services'    	
    
    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

三方库冲突解决方案

  1. 如果使用打包工具出全球渠道包,接入市场SDK时,为了 避免 版本差异带来的 库冲突,请务必保证SDK版本号与文档所示版本号一致

  2. 接入市场SDK的时候,如果本身有引入相应SDK,请确保sdk版本号保持与市场SDK引入的三方库版本一致即可,无须重复依赖

本文档对解决你的问题有所帮助?