xamarin.forms Android 发布版本仅适用于启用快速部署

xamarin.forms Android release build only works with fast deployment enabled

在过去的几天里,我在部署 android 版本的应用程序时遇到了重大问题。我发现我只有在选中“快速部署”时才能让应用程序运行。但是,这意味着我永远无法归档我的应用程序。如果启用了快速部署,该应用程序即使处于发布模式,也会被视为 DEBUG 版本,因此不会被 Playstore 接受。 如果我取消选中快速部署以构建应用程序,则该应用程序将启动然后空闲,而不是执行它应该执行的第一个 rest 调用。如果我留下其余的电话,该应用程序将再次运行。

这怎么相关?

在此视频中,他解释了如何在 debug/release 模式下进行配置。

https://www.youtube.com/watch?v=7kVeC1_14Ag

设置“快速部署”时出现的症状表明这种情况:

如果您在之前有调试版本的设备上测试发布版本,则调试版本可能没有完全卸载。具体来说,“快速部署”将 xamarin 库存储为一个单独的 DLL。因为您的发布版本与调试版本具有相同的“bundle id”,Android 可能会混淆。

修复。

模拟器的最佳修复:

  1. 工具/Android设备管理器/Select虚拟设备/编辑/清除出厂默认设置

phone 的最快修复(但不确定是否有帮助):

  1. 将应用程序拖到垃圾桶。
  2. 关闭 phone。 重新打开电源。
  3. 将发布版本部署到设备。通过安装 apk,或通过“开始而不调试”菜单项。

快速修复:

  1. 运行 再次在设备上调试版本。这确保 Android“知道”应用程序的调试版本在那里。
  2. 停止应用程序。
  3. 在设备上,“卸载”该应用程序。 (拖到垃圾桶)。
  4. 将发布版本部署到设备。通过安装 apk,或通过“开始而不调试”菜单项。

如果还是不行,那就用“adb uninstall”:

  1. 运行 再次在设备上调试版本。这确保 Android“知道”应用程序的调试版本在那里。
  2. 停止应用程序。
  3. 菜单工具/Android/Android Adb 命令提示符。
  4. adb uninstall com.companyname.appname <-- 替换你的应用的 bundle id
  5. 将发布版本部署到设备。

感谢大家的回答:事实证明,打开我的 linker to link 程序集实际上只会减小应用程序的大小并使一切恢复正常。之前,linker被设置为LINK NONE(这应该是更安全的选择,但结果是一个错误......)无论如何:三天后,这终于解决! :-)