# 1 接入准备
这一步骤主要介绍快速将SDK资源集成到游戏工程,以编译打包正常为完成标志。
除核心库
以外,其余模块均属于可选依赖,按需引入即可。
下一步将介绍具体业务功能的集成。
# 1.1 准备环境
- 下载 SDK资源
- 接入准备:
-
ThirdExtraKey.AF_DEV_KEY
,即 devKey
-
ThirdExtraKey.FB_APP_ID
,即 appId
Firebase (opens new window) 的 google-services.json 文件
Adjust (opens new window) 的 appToken
ThirdExtraKey.ADJ_APP_TOKEN
ThirdExtraKey.ADJ_CHARGE_EVENT_TOKEN
: 支付时使用
AppMetrica (opens new window) 的 API key (for SDK)
ThirdExtraKey.APPMETRICA_API_KEY
当前三方库版本
AppsFlyer
SDK版本AdJust
SDK版本Facebook
SDK版本Firebase
SDK版本AppMetrica
SDK版本v6.15.2
(官网地址 (opens new window))v5.0.2
(官网地址 (opens new window))v17.0.2
(官网地址 (opens new window))firebase-bom:33.7.0
(官网地址 (opens new window))v5.3.0
(官网地址 (opens new window))
-
# 2 集成
# 2.1 SDK导入
SDK
现仅适用于Android Studio
开发。将压缩包解压,解压后将
marketsdk.aar
复制到项目moudle
(通常是app目录)的libs
下。
# 2.2 配置
所有的配置,可参考获取到的SDK版本中的demo
工程。
# 2.2.1 AndroidManifest.xml
配置
说明:
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
4facebook:
<!-- facebook --> <uses-permission android:name="android.permission.INTERNET" />
1
2firebase:
<!-- 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
4Adjust:
<!-- 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
其它配置(在
<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
7Facebook 配置
打开您的
/app/res/values/strings.xml
文件,添加名称为facebook_app_id
、facebook_client_token
的string
元素<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
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.**{ *; } -keep class com.appsflyer.** { *; } -keep class kotlin.jvm.internal.** { *; } -dontwarn 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
23
24
25
# 2.2.2 编译脚本配置(build.gradle
)
Firebase配置
将在
google
后台下载的google-services.json
文件复制到项目根目录下向您的根级
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
)
在您的模块
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.15.2' <!-- facebook 未使用则不依赖--> implementation 'com.facebook.android:facebook-android-sdk:17.0.2' <!-- firebase 未使用则不依赖--> implementation platform('com.google.firebase:firebase-bom:33.7.0') implementation 'com.google.firebase:firebase-analytics' <!-- adjust 未使用则不依赖--> implementation 'com.adjust.sdk:adjust-android:5.0.2' <!-- 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
三方库冲突解决方案
如果使用打包工具出全球渠道包,接入市场SDK时,为了
避免
版本差异带来的库冲突
,请务必保
证SDK版本号与文档所示版本号一致
。接入市场SDK的时候,如果本身有引入相应SDK,请确保sdk版本号保持与市场SDK引入的三方库版本一致即可,无须重复依赖