04/29/2024 11:54:53

Google 渠道说明

一、概述

一、概述

1.1 Google Mobile Services 与 Google Play Services

GMS,是 Google Mobile Services(Google 移动服务)的简称。

Google Play Services,是 Android 手机上的一套 Google 系统服务,包括:OAuth 授权体系、Games 游戏服务、Ads 广告服务、Maps 广告服务等。

一般认为,GMS 也就是 Google Play Services 的简称。

1.2 Google Play Games 应用

Google Play Games 是 GMS 的游戏应用,用于管理用户的 Google 游戏信息,并且提供成就、排行榜功能,与 iOS GameCenter 类似。MSDK Google 登录依赖 Google 游戏服务,要求手机上有安装 Google Play Games 应用。

二、开发者平台配置

二、开发者平台配置

Google 开发者平台配置主要流程如下:

  • 进入 Google Play 控制台,创建应用
  • 创建游戏服务,用于关联 API 控制台,否则会返回 10002 错误。关联上面创建的应用
  • API 控制台 进行配置后台权限,明确应用可以使用哪些 Google 服务

2.1 注册开发者账号

该流程在 Google Play Console 上进行注册即可。

[info]说明: Google 会收取 25 美金的费用,请提前准备好信用卡

2.2 创建游戏应用

1.进入 Google Play Console ,在 All apps 页面,点击 Create app,创建游戏应用程序。

2.补全应用信息

2.3 创建 Play 游戏服务

1.进入 Google Play Console,在左侧导航栏中,点击 Grow > Play Games Services > Setup and management > Configuration

2.在 Properties 模块点击 Edit properties

3.输入游戏基本信息,然后点击 Save changes

2.4 关联游戏服务和应用

1.进入 Google Cloud Platform,在左侧导航栏中,点击 OAuth consent screen,按照指引进行配置 OAuth 同意屏幕。

2.在左侧导航栏上点击 Credentials,选择 CREATE CREDENTIALS > OAuth Client ID,创建 OAuth 客户端 ID。

3.在 Application type 列表中,选择 Android。

4.输入 Package NameSHA-1 Certificate Fingerprint。与开发团队确认 Package Name 和 SHA-1 Certificate Fingerprint。Android 的 OAuth 客户端要求用户在 KeyStore 中配置 SHA-1 证书指纹和软件包名称。请确保这两个值正确无误。否则,登录过程将出现异常。

5.点击 CREATE 完成 Android 类型的 OAuth 的创建。此时可以进入详情页面查看 Android 类型的客户端 ID、包名、SHA1 指纹等信息。

6.在左侧导航栏上点击 Credentials,选择 CREATE CREDENTIALS > OAuth Client ID,创建 OAuth 客户端 ID。

7.在 Application type 列表中,选择 Web Application。

8.输入信息后,点击 CREATE 完成 Web Application 类型的 OAuth 的创建。此时可以进入详情页面查看 Web application 类型的客户端 ID、秘钥等信息。

9.进入 Google Play Console,在左侧导航栏中,点击 Grow > Play Games Services > Setup and management > Configuration,点击 Add credential

10.Type 选择 Android,Authorization 模块中的 OAuth client 下拉列表里选择上面刚创建的 Android 类型的 OAuth client。

2.5 添加 Google Play 测试人员

在游戏发布之前,只有测试人员才能登陆,并确认应用是处于可测试状态

2.6 配置成就和排行榜

进入 Google Play Console,在左侧导航栏中,点击 Grow > Play Games Services > Setup and management,分别点击 AchievementsLeaderboards 进行创建成就和排行榜。

2.7 开放式 Beta 测试,并且可以发布到 Google Play

进入 Google Play Console,在左侧导航栏中,点击 Release > Production,按照说明创建生产版本。

[info]发布成 Beta 测试的好处是:用户可以在 Google Play 上进行下载并且没有权限添加评论,只能通过设置的渠道反馈问题。通过点击下图 “管理 BETA 版”,然后按照提示填上对应的内容即可。

2.9 飞鹰配置

飞鹰 的游戏详情页>登录信息中勾选 Google Play 渠道并填写 AppID 和 AppKey

[info]特别注意 飞鹰管理端中的 AppID 和 AppKey 如何获取?

进入 Google Cloud Platform,在左侧导航栏中,点击 Credentials,点击 Web application 类型的 OAuth 2.0 Client ID 进入详情页面。

三、Android工程配置

三、Android工程配置

3.1 权限配置

在 AndroidManifest.xml 中新增网络访问权限

  <uses-permission android:name="android.permission.INTERNET"/>

3.2 Google Game APP ID 版本配置

在 Application 节点中添加如下配置:

  <meta-data
        android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/msdk_google_app_id" />

[info] 其中 msdk_google_app_id,可以从 Google云端平台 面板访问信息中心来查看,msdk_google_app_id 就是此页面上的 Project number。

3.3 App ID 配置和Server Client ID 配置

在工程的 assets/MSDKConfig.ini 文件中添加以下配置

[Google 渠道配置]
GOOGLE_APP_ID = {YOUR_GOOGLE_APP_ID}
GOOGLE_CLIENT_KEY = {YOUR_GOOGLE_CLIENT_KEY}
GOOGLE_EVERY_LOGIN_CHOICE_USER = {登录前是否先执行登出操作,以让用户重新选择账号:默认 0 否, 1 是}
MSDK_GOOGLE_LOGOUT_NEED_CONNECT = {登出操作时若不是连接状态,是否要执行连接后再登出:默认 0 否, 1 是}
MSDK_AUTOLOGIN_NOT_PLUGIN_CHANNEL = {自动登录时是否调用插件执行连接操作:不配置则默认 Google 渠道的自动登录执行连接操作,配置填写 Google 则表示 Google 渠道的自动登录不执行连接操作}

[info]说明

  1. {YOUR_GOOGLE_APP_ID} 为游戏应用在 Google Play Console 的 APP_ID,即 3.2 中配置的 APP_ID
  2. {YOUR_GOOGLE_CLIENT_KEY} 为 MSDK 需要的 Web 客户端 Key,配置 OAuth Client ID 时在 Credentials 页面中查看 Web application 类型对应的客户端 ID。可以参考 2.9 的指引获取。
  3. 后面三个配置项是可选配置,仅当需要再按照要求配置即可
四、iOS 工程配置

四、iOS 工程配置

Google Play 控制台地址凭据 存在接入的各个数据。以 Demo 举例:

4.1 需要数据

  • Client ID:为 iOS 端申请的账号 ID,该值需要填写到:MSDKConfig.ini 中的 GOOGLE_CLIENT_KEY_IOS 字段。
  • Server ID:为服务端的 ID,该值需要填写到:MSDKConfig.ini 中的 GOOGLE_CLIENT_KEY 字段(如果之前接入过安卓,则该值应和安卓相同)。

4.2 配置

更新了 Google 的 插件包及 SDK 之后,注意配置工程文件:

  • 在 dependent frameworks 中新增:
LocalAuthentication.framework
SafariServices.framework
SystemConfiguration.framework
  • 在 ObjC linker flag 中新增 -ObjC:
Other Linker Flags: $(OTHER_LDFLAGS) -ObjC
  • 在 URL scheme 中添加 ClientID,如:
五、功能说明

五、功能说明

5.1 登录功能

  1. 自动登录逻辑说明

    Google 的任何操作都需要先连接 Google 服务。

    在自动登录时,可能存在当前未连接到 Google 服务。MSDK 默认会在自动登录时去连接 Google 服务,也推荐执行连接操作(业务可以按照 3.3 中的字段 MSDK_GOOGLE_LOGOUT_NEED_CONNECT 配置去掉这一步的连接操作)。

  2. Google 登录说明

    MSDK 在做 Google 登录之前,会判断 Google 手机服务是否可用,只有在 GMS 有效时,才能调用对应的登录服务。 如果 GMS 无效,会将 Google 返回的错误码通过 MSDKLoginRet 的 thirdCode 字段返回给业务。

返回码 对应的值 错误描述
SERVICE_MISSING 1 设备上缺少GMS服务
SERVICE_VERSION_UPDATE_REQUIRED 2 安装的GMS版本已过期
SERVICE_DISABLED 3 GMS服务被禁用
SERVICE_INVALID 9 安装的GMS版本不正确
SERVICE_UPDATING 18 设备上正在更新GMS服务

[info] 参考 Google 文档:https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult.html

5.2 Google 游戏服务

  1. 先连接再使用

    Game 游戏服务为单独的模块,即使使用了 Google 登录模块,也需要调用 Setup 方法。示例代码:

     MSDKGame.Setup ("Google", "");
    
  2. 账号一致性说明

    Google 游戏服务(成就和排行榜)上报是跟连接的 Google 服务对应的。一般情况下:

    • Google 成功后,再调用 Game 模块的 Setup 方法,成就会上报到登录账号
    • 如果非 Google 登录,也可以使用 Game 模块功能,成就会上报到当前连接的 Google 账号上
  3. 关注界面关闭回调

    Game 模块的 ShowLeaderBoardShowAchievement 接口都会打开界面,用户可以在界面右上角 "..." 设置中进行登出,这样会导致成就系统不可用。此时,需要重新调用 Setup 方法。

六、常见问题

六、常见问题

6.1 配置异常 Crash

未正常配置 App ID 和 Server Client Key 的时候,会出现以下 Crash

  Caused by: java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
    at com.google.android.gms.common.internal.zzf$zza.zzb(Unknown Source)
    at com.google.android.gms.common.internal.zzf$zza.zzu(Unknown Source)
    at com.google.android.gms.common.internal.zzf$zze.zzxH(Unknown Source)
    at com.google.android.gms.common.internal.zzf$zzd.handleMessage(Unknown Source)
    ...

6.2 GMS 升级与版本兼容性说明

Google Play Services 早期不同版本不能混用,会存在版本兼容性问题。目前 MSDK 使用的 GMS 版本为 16.0.0 ,Firebase版本为16.0.5

[danger]注意 升级前请联系 MSDK助手 进行确认

6.3 DEVELOPER_ERROR 错误

GOOGLE_CLIENT_KEY 为 MSDK 需要的 Web 客户端 Key 注意这里不要使用 Android 客户端 Key,否则会出现 DEVELOPER_ERROR 错误,同时也要确认调试时使用的 签名与上传到Google管理端的应用签名操持一致。



Copyright © 2024 MSDK.
All rights reserved.

results matching ""

    No results matching ""