我试图找到Xamarin.android应用程序的SHA-1,以便在Windows 7上使用Visual Studio和Firebase开发应用程序,因此我遵循了Microsoft文档https://docs.microsoft.com/en-us/xamarin/android/deploy-test/signing/keystore-signature?tabs=windows 但这给了我一个错误: “密钥库文件不存在” 请我该如何解决。
答案 0 :(得分:3)
刚遇到此问题。就我而言,这是新机器上的现有Xamarin Android项目,即新安装的VS2019。
解决方案:
创建一个 new Android项目,并将其部署到模拟器。 这个过程似乎创建了密钥库。
我刚刚使用了模板Single View App。创建新项目,选择仿真器,部署。它启动并且...什么都不做。
然后,我能够返回到我的真实应用程序,并根据需要进行部署。
答案 1 :(得分:0)
也许您/它在安装过程中进行了更改,所以路径不同?
尝试浏览您的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”