使用Visual Studio分发功能注册Xamarin.Forms应用出现redirect_uri_mismatch错误
解决方案
方案1:更换为桌面应用类型Client ID(推荐)
redirect_uri_mismatch错误本质是你选择了Web应用类型的Client ID,这类凭证会严格校验重定向URI的端口,而你当前的场景属于桌面客户端OAuth授权,适配「桌面应用」类型的凭证即可跳过端口校验:
- 打开Google Cloud Platform控制台,进入「API和服务」-「凭据」页面
- 删除之前创建的Web应用类型Client ID,重新创建凭据,类型选择「桌面应用」(部分界面显示为「已安装的应用」)
- 将新生成的Client ID、Client Secret填入Visual Studio分发窗口即可,无需配置任何重定向URI,天然支持本地回环地址的随机端口回调。
方案2:固定Visual Studio回调端口
如果你坚持使用Web应用类型的Client ID,可以通过修改VS配置固定回调端口:
- 关闭所有正在运行的Visual Studio窗口
- 根据你安装的VS版本,打开对应的Xamarin插件配置目录,VS 2022社区版默认路径为
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Xamarin\Xamarin.GooglePlayServices,企业版将路径中的Community替换为Enterprise即可 - 找到目录下的
GoogleServiceAuth.dll.config文件,右键选择「用管理员身份打开」进行编辑 - 找到配置项
<add key="RedirectUri" value="http://127.0.0.1:{0}/oauth2callback"/>,将占位符{0}替换为你指定的固定端口,例如修改为<add key="RedirectUri" value="http://127.0.0.1:55321/oauth2callback"/> - 保存修改后重新启动Visual Studio
- 回到Google Cloud的Web应用Client ID配置页,将你设置的固定端口对应的完整URI
http://127.0.0.1:55321/oauth2callback添加到允许的重定向URI列表,保存后等待3-5分钟生效,再重试认证流程即可
注意:该方案修改的配置文件会在Visual Studio版本更新后被重置,需要重新修改配置。
内容的提问来源于stack exchange,提问作者Mercyfon
相关产品推荐
相关产品推荐

