分发Xamarin Forms App时出现错误400:redirect_uri_mismatch

问题描述

我正在尝试通过Visual Studio 2019中的Google Play商店分发我的Xamarin Forms Android应用。

我遵循Microsoft的本教程: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/publishing/publishing-to-google-play/?tabs=windows

我经历了设置Google开发者帐户以及在google开发人员控制台和OAuth2客户端中创建应用程序的步骤。

然后,我在表单中输入了客户ID和客户机密,并尝试进行注册。我没有看到此错误,而是转发到授权页面Error 400: redirect_uri_mismatch

不幸的是,我不能仅将uri添加到OAuth2客户端,因为每次我尝试注册按钮时端口都会更改。

那么,我该如何解决这个问题? 我可以以某种方式修复Visual Studio / Xamarin Forms使用的端口吗? 有一种完全不同的方法吗?

非常感谢您的帮助。

解决方法

您需要创建桌面应用程序凭据而不是Web应用程序才能从Visual Studio注册

,

这里的问题是,当您尝试注册时,Visual Studio会随机更改IIS Express端口号。要解决此问题,请打开文件:

[项目名称] .vs \ config \ applicationhost.config

[projectname]是项目的名称,不带方括号,并滚动到以下节点:

<binding protocol="http" bindingInformation="*:12345:localhost" />

其中“ 12345”是IIS分配给该站点的随机端口。删除星号*,这样您只有:

<binding protocol="http" bindingInformation=":12345:localhost" />

对上述所有节点执行此操作。保存文件,然后重新打开VS。分发到Google Play,重新输入您的客户端ID和客户端密钥,然后单击注册,现在应该会显示允许访问屏幕弹出窗口。