您可以在本地的 Unity 游戏上测试 GPS!
我看到你对这个问题的评论已解决,说必须上传并发布 apk 才能使其正常工作。在某种程度上是正确的。但是,如果您每次想要测试 GPS 代码时都想上传 apk,那将是一件痛苦的事情。
这是对我有用的东西,可以在本地测试它,而无需上传到 Google Play Console。
GPS插件版本0.9.50
- 请务必按照以下说明进行操作GPS插件的github https://github.com/playgameservices/play-games-plugin-for-unity
- 安装插件之前在系统上正确设置JAVA路径
- 确保您遵循 Unity 的应用程序签名流程(密钥库、密钥)
- 为您的游戏和链接的应用程序等设置 Google Play 控制台
- 上传您的 apk 进行内部测试或 alpha/beta 测试
现在,在您的应用程序 --> 发布管理 --> 应用程序签名下,Google 会用自己的应用程序签名证书替换您的上传证书(您使用 Unity 设置的密钥)。这就是我们直接在设备上运行 apk 时遇到问题的地方。
当在 Unity 上点击“构建并运行”并在发布设置中启用密钥库和密钥选项时,您的 apk 将由 Unity 直接构建并复制到您的手机。现在,在运行游戏时,GPS 插件将尝试访问 Google Play 服务,但由于 SHA1 不匹配而失败。您的本地 apk 具有上传证书的 SHA1,并且 GPS 正在等待更新的 SHA1 证书(Google 的证书)。
出于测试目的,请复制上传证书的 SHA-1 证书指纹谷歌游戏控制台 https://play.google.com/apps/publish给你的谷歌开发者控制台 https://console.developers.google.com(找到您的应用程序并单击右侧的编辑按钮)
Google Play Console
Google Developer Console
在统一构建设置中,确保使用正确的密码选择密钥库和密钥,然后点击“构建并运行”。请注意,如果您的手机上已经安装了Play商店版本或未烧录版本,请先将其卸载。
现在,每次更新代码时,您无需在 Google Play Console 上上传和发布来测试 GPS 插件。使用本地上传证书,您可以直接在手机上进行测试,效果与正常测试一样。
重要的:测试后,您需要将 SHA1 恢复为 Google 的 SHA1,以使您的 GPS 在发布版本(Playstore 版本)上正常工作。除非您将上传密钥 SHA1 保留在 Google 开发者控制台下,否则游戏的 Playstore 版本将无法访问 GPS。
GPS服务代码(我也启用了云服务),
void InitGooglePlatform()
{
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();
if(!bGoogleCheck) // internal flag to do this only once if user is offline
GoogleSignin();
bGoogleCheck = true; // Mark it done until the game is restarted again
}
public void GoogleSignin()
{
if (!Social.localUser.authenticated)
{
Social.localUser.Authenticate(success => {
if(success)
{
OpenSave(false);
}
});
}
}