You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发Xamarin Forms应用时在Android模拟器运行遇签名错误(NO_CERTIFICATES)

嘿,我之前在调试Xamarin Forms Android应用时也碰到过这个「应用包未正确签名(NO_CERTIFICATES)」的报错,折腾了好一会儿才搞定,给你整理几个最有效的解决办法,按顺序试试应该能解决问题:

解决Xamarin Forms Android模拟器「应用包未正确签名(NO_CERTIFICATES)」的方案

1. 检查调试签名配置

首先先确认调试签名的配置是否正常——毕竟调试模式下默认用的是自动生成的调试密钥,要是这个密钥出问题就会报签名错误:

  • 打开你的Xamarin Android项目属性,找到「Android签名」选项卡
  • 确保勾选了「使用调试密钥库」,默认的调试密钥库路径:
    • Windows系统:C:\Users\<你的用户名>\AppData\Local\Xamarin\Mono for Android\debug.keystore
    • Mac系统:~/.local/share/Xamarin/Mono for Android/debug.keystore
  • 如果密钥库不存在,直接点击「创建」按钮生成新的调试密钥,密码和别名默认都是android,不用额外修改

2. 清理并重建项目

有时候旧的构建缓存会残留异常数据,导致签名验证失败:

  • 在Visual Studio里,点击「生成」菜单,选择「清理解决方案」
  • 右键Android项目,先选「卸载项目」,再右键点击「重新加载项目」
  • 最后点击「重新生成解决方案」,彻底重新构建所有文件

3. 匹配Android SDK构建工具版本

如果你的项目目标SDK版本和已安装的构建工具版本不兼容,也可能触发签名错误:

  • 打开Android SDK管理器,确保安装了与项目目标SDK版本匹配的构建工具(比如目标是Android 13 (API 33),就需要安装33.0.0及以上版本的构建工具)
  • 安装完成后重启Visual Studio,再重新运行项目

4. 重置模拟器的应用数据

要是上面的方法都没用,可能是模拟器里残留的旧应用缓存干扰了新包的安装:

  • 打开Android模拟器,进入「设置」→「应用」,找到你的应用
  • 点击「存储」,分别选择「清除数据」和「清除缓存」
  • 要是还是不行,可以直接在模拟器的「设置」→「系统」→「重置」里选择「恢复出厂设置」(注意提前备份模拟器里的重要数据)

5. 手动指定签名配置(进阶方案)

如果默认的调试签名还是有问题,可以手动在项目的.csproj文件里添加签名配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <AndroidKeyStore>True</AndroidKeyStore>
  <AndroidSigningKeyStore>debug.keystore</AndroidSigningKeyStore>
  <AndroidSigningStorePass>android</AndroidSigningStorePass>
  <AndroidSigningKeyAlias>androiddebugkey</AndroidSigningKeyAlias>
  <AndroidSigningKeyPass>android</AndroidSigningKeyPass>
</PropertyGroup>

记得把debug.keystore改成你实际的密钥库路径。

内容的提问来源于stack exchange,提问作者Mahmoud Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:06:17