尝试从 Visual Studio 中分发 Xamarin APK

Trying to distribute Xamarin APK from within Visual Studio

我正在尝试使用 VS 中的存档和分发屏幕从 Visual Studio 2019 年分发我的 Xamarine APK。这个过程在我上次尝试时有效,但那是大约一年前的事了。

我可以在模拟器中构建和 运行 我的应用程序,我也可以存档包。

当我尝试分发 APK 时出现问题。我正在使用 Adhoc Distribution 方法。此时我收到错误消息:

    [I:]:                     Converting signing algorithm from  SHA256withRSA
[E:]:                     SignPackageAsync faulted
Xamarin.AndroidTools.AndroidSdkToolException: Missing input APK

   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Xamarin.VisualStudio.Android.Services.Publishing.AndroidToolsPublishService.<SignPackageAsync>d__4.MoveNext() in E:\A\_work7\s\src\Core\VisualStudio.Android\Services\Publishing\AndroidToolsPublishService.cs:line 41

我认为问题不是证书的密码问题,因为我通过输入错误的密码进行了测试,这给了我不同的错误消息。

我还增加了对诊断的日志记录,但日志中没有显示更有用的内容。

关于问题是什么或如何更好地诊断问题有什么建议吗?

事实证明,密钥库密码存在链接中提到的具有特殊字符的问题。我不得不使用 Keystore 工具来更改密码:

"%JAVA_HOME%\bin\keytool.exe" -storepasswd -keystore "<FilePath>.keystore" -storepass "<store password>" -new "<new password>"

"%JAVA_HOME%\bin\keytool.exe" -keypasswd -keystore "<FilePath>.keystore" 
-storepass "<new password>" -alias "<alias>" -keypass "<key password>" -new "<new password>"

如果您生成的密钥库是通过 Visual Studio 生成的,那么存储密码和密钥密码是相同的。您还需要确保它们之后是相同的,否则在 VS 中使用 Distribute 将不起作用。