我正在使用最新版本的GooglePlayGames插件(0.9.50)。我已经从播放控制台添加了Android资源。我还验证了我的SHA-1指纹正确无误。 Google Play控制台中的上传证书的SHA-1指纹与Google开发者控制台中的OAuth 2.0客户端ID相同。 Still Social.localUser.Authenticate每次都返回false。添加测试人员的帐户后,我还尝试过发布Alpha版游戏。 Still.Social.localUser.Authenticate仍返回false。当我通过手机打开游戏时,甚至没有显示Google Play游戏登录中的“绿色”。我没有任何错误或警告。以下是我的代码:
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine;
using UnityEngine.SocialPlatforms;
using GooglePlayGames;
public class Playgames : MonoBehaviour {
public bool IsConnectedToGoogleServices { set; get; }
// Use this for initialization
void Start () {
#if (UNITY_ANDROID || (UNITY_IPHONE && !NO_GPGS))
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();
#endif
SignIn();
}
public bool SignIn()
{
if (!IsConnectedToGoogleServices) {
Social.localUser.Authenticate ((bool success) => {
IsConnectedToGoogleServices = success;
Debug.Log("Sign-in " + success.ToString() );
});
}
return IsConnectedToGoogleServices;
}
}
有人可以帮我解决这个问题吗?预先感谢。
答案 0 :(得分:0)
如果您使用的是Google Play签名,则从Google Play下载的应用中的签名密钥将与上传证书不同。您是否已将Google Play签名中的签名密钥添加到Google Play游戏API配置中? release checklist步骤4“向API提供者注册您的应用签名密钥”中对此进行了说明。
如果您的应用程序使用任何API,则通常需要注册Google用来签署您的应用程序的密钥的证书以进行身份验证。通常,这是通过证书的指纹完成的。
要查找Google用于重新签名APK以便交付的密钥证书:
- 登录到您的Play控制台。
- 选择一个应用。
- 在左侧菜单上,单击发布管理>应用签名。
- 在此页面上,您可以复制应用程序签名证书中最常见的指纹(MD5,SHA-1和SHA-256)。如果API提供程序要求使用其他类型的指纹,则您还可以下载DER格式的原始证书,并通过API提供程序所需的转换工具运行它。
答案 1 :(得分:0)
public bool SignIn()
{
if (!IsConnectedToGoogleServices) {
Social.localUser.Authenticate ((bool success) => {
IsConnectedToGoogleServices = success;
Debug.Log("Sign-in " + success.ToString() );
});
}
return IsConnectedToGoogleServices;
}
为Authenticate方法提供的回调不是瞬时的 -回调是bool success => {...}
lambda表达式。因此,您不能保证在将IsConnectedToGoogleServices
返回给调用方之前已执行了回调,该调用方默认情况下设置为false
。也许这可能是您的问题?