归档Xamarin.Forms Android应用失败:找不到指定Keystore文件
Xamarin.Forms Android归档至Google Play遇XA4310错误解决方法
问题描述
非移动开发者接手Xamarin.Forms项目,已成功发布iOS至App Store,但Android以AAB格式归档时触发错误:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(2,2): Error XA4310: `$(AndroidSigningKeyStore)` file `C:/Users/tortis1/AppData/Local/Xamarin/Mono for Android/Keystore/prodensity/prodensity.keystore` could not be found. (XA4310) (Density.Mobile.Droid)
本地Mac不存在tortis1用户目录,未在VS for Mac中配置过签名规则,仅Debug目录有调试密钥文件。Google Play控制台已启用「由Google Play签名版本」。
解决步骤
- 清理遗留的Windows签名配置:打开Droid项目的
.csproj文件,搜索AndroidSigningKeyStore、AndroidSigningStorePass、AndroidSigningKeyAlias、AndroidSigningKeyPass这些属性,删除或注释掉硬编码的Windows路径配置行,这大概率是之前Windows开发环境遗留的配置。 - 配置Google Play签名所需的上传密钥:
- 右键Droid项目 → 选项 → Android打包 → 签名
- 切换到Release配置,点击「创建」生成新的上传密钥库(用于Google Play签名的上传密钥),或导入已有的上传密钥文件
- 填写密钥库密码、密钥别名、密钥密码,确保密钥库路径为Mac本地的有效路径(比如
~/Documents/Keystores/prodensity.keystore)
- 验证Google Play签名设置:登录Google Play控制台,进入应用的「发布」→「设置」→「应用签名」页面,确认已启用Google Play签名,且已上传对应的上传密钥(若未上传,需将刚生成的上传密钥提交至控制台)
- 清理重建项目:清理解决方案,手动删除项目的
bin和obj目录,重新构建Release版本后再尝试归档
内容的提问来源于stack exchange,提问作者Cole Perry
相关产品推荐
相关产品推荐

