我正在尝试找到 Xamarin.android 应用程序的 SHA-1,以便在 Windows 7 上使用 Visual Studio 和 Firebase 开发应用程序,我遵循了 Microsoft 文档 https://learn.microsoft.com/en-us/xamarin/android /deploy-test/signing/keystore-signature?tabs=windows 但它给了我一个错误: “密钥库文件不存在” 请问我该如何解决这个问题。
刚刚遇到这个问题。就我而言,它是在新机器上使用现有的 Xamarin Android 项目,安装新的 VS2019。
解决方案:
创建一个new Android 项目,并将其部署到模拟器。 这个过程似乎创建了密钥库。
我刚刚使用了模板 Single View App。创建新项目,选择模拟器,部署。它启动了并且......什么也没做。
然后我就能够返回到我的真实应用程序,并根据需要进行部署。
也许你/它在安装过程中发生了变化,所以路径不同了?
尝试浏览您的 appdata/local 文件夹,看看是否可以找到 xamarin mono 地图,然后直接使用整个路径而不是 %LocalAppData%
如果找不到它,或者仍然不起作用,请尝试在调试中构建时检查构建日志,密钥库的路径将在构建过程中记录在控制台中。
这就是我在“部署到设备控制台”中构建示例项目时的样子
Target _Sign:
/Users/theusername/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25/bin/keytool -list -alias androiddebugkey -storepass android -keypass android -keystore "/Users/theusername/.local/share/Xamarin/Mono for Android/debug.keystore"
/Users/theusername/Desktop/AndroidSdk/build-tools/27.0.3/zipalign -p 4 "/Users/theusername/theProjectName/theProjectName/Droid/obj/Debug/android/bin/com.project.theProjectName.apk" "bin/Debug//com.project.theProjectName-Signed.apk"
/Users/theusername/Desktop/AndroidSdk/build-tools/27.0.3/zipalign -p 4 "/Users/theusername/theProjectName/theProjectName/Droid/obj/Debug/android/bin/com.project.theProjectName.apk" "bin/Debug//com.project.theProjectName-Signed.apk"
/Users/theusername/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25/bin/java -jar /Users/theusername/Desktop/AndroidSdk/build-tools/27.0.3/lib/apksigner.jar sign --ks "/Users/theusername/.local/share/Xamarin/Mono for Android/debug.keystore" --ks-pass pass:android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 18 --max-sdk-version 26 /Users/theusername/theProjectName/theProjectName/Droid/bin/Debug/com.project.theProjectName-Signed.apk
/Users/theusername/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25/bin/java -jar /Users/theusername/Desktop/AndroidSdk/build-tools/27.0.3/lib/apksigner.jar sign --ks "/Users/theusername/.local/share/Xamarin/Mono for Android/debug.keystore" --ks-pass pass:android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 18 --max-sdk-version 26 /Users/theusername/theProjectName/theProjectName/Droid/bin/Debug/com.project.theProjectName-Signed.apk
Signed android package 'bin/Debug/com.project.theProjectName-Signed.apk'
如您所见,在代码片段的最后两行,它显示我的 debug.keystore 的路径是“/Users/theusername/.local/share/Xamarin/Mono for Android/debug.keystore”
我遇到了类似的问题。请验证以下路径是否存在 debug.keystore 文件:
/Users/theusername/.local/share/Xamarin/Mono for Android/debug.keystore
如果不存在,请在 Visual Studio 中创建一个新解决方案并运行它。这将创建密钥库,然后您可以返回到原始项目。
我们现在正在使用Rider,似乎还有另一个位置:
~/Library/Application Support/Xamarin/Mono for Android/debug.keystore
在我的机器(有 Android Studio、Visual Studio for Mac 和 Rider)上,我有三个不同的 Android 调试密钥库:
~/Library/Application Support/Xamarin/Mono for Android/debug.keystore
~/.local/share/Xamarin/Mono for Android/debug.keystore
~/.android/debug.keystore
祝你好运!