【问题标题】:Xamarin Won't Build on Physical DevicesXamarin 不会在物理设备上构建
【发布时间】:2019-10-16 03:54:44
【问题描述】:

我正在构建一个 Xamarin 应用程序,到目前为止,我已经能够在 iPhone 模拟器上毫无问题地构建,但我无法让该应用程序在物理 iPhone 设备上成功启动。在过去(大约一个月前),该应用程序在同一台设备上运行良好。以下是一些具体的背景:

  • 我在我的 Windows 计算机上开发我的 Xamarin 代码,该计算机链接到远程 Mac(由第三方托管服务 MacStadium 托管)。
  • 我的测试手机是运行 iOS 10.3.3 的 iPhone 5c
  • 要部署到我的 iPhone,我在 Visual Studio 中以发布模式构建我的应用程序,将代码上传到第三方应用程序安装服务 Installr,该服务托管 IPA 文件并协助在物理上安装我的应用程序设备。我从来没有遇到过 Installr 问题,也没有理由相信这是我的问题的根源。
  • 自从应用程序上次在物理设备上运行以来,我将 Visual Studio 更新到版本 16.3.2 并更新了 Xamarin。这是 Xamarin 规格:

通常情况下,我在 iPhone 上下载并安装我的应用程序没有任何问题。但是,当我点击应用程序时,启动画面加载大约 5 秒,然后短暂出现如下白屏,然后应用程序崩溃。

我在互联网上看到了有关 StackOverflow 和其他来源的几篇相关文章,但没有一个建议的解决方案对我有用。例如,我尝试将[assembly: XamlCompilation(XamlCompilationOptions.Compile)] 添加到 App.xaml.cs,但没有成功。

我还尝试更改 CSProj 文件设置以针对 ARM64 和 ARMv7 的各种组合进行编译。改变这一点也没有帮助。我尝试将链接器行为从“仅链接框架 SDK”更改为“不链接”,但我收到一条错误消息,指出本机代码对于 32 位架构来说太大。我只会编译 64 位架构来解决这个错误,但我相信 iPhone 5c 使用 32 位架构。

这是我的 iOS 项目的 CSProj 文件目前的样子。我试过检查几乎所有这些复选框,但没有运气:

我不知道这可能是什么。任何建议将不胜感激。更复杂的是,我无法从 iPhone 获得好的日志文件。由于 Mac 是远程托管的,因此我无法将手机插入 XCode 以通过这种方式提取日志。有没有人有可靠的解决方案来以另一种方式获取日志文件?

【问题讨论】:

  • 是否有任何调试输出(堆栈跟踪或核心转储)?
  • 您好,程序在物理设备上调试时是否有效,您可以先检查一下。
  • 感谢两位的回复。我无法让调试器连接到物理电话。我认为这可能是因为我没有对 Mac 的物理访问权限?无论如何,我将 Visual Studio 从 16.3.2 更新到 16.3.5,并将 Mac 上的 XCode 更新到版本 11.1。之后,Visual Studio 在远程连接到 Mac 时自动升级了一些东西。不确定这些更新中到底包含了什么,但它现在似乎正在我的 iPhone 上构建!

标签: c# xamarin xamarin.ios csproj


【解决方案1】:

看来升级解决了这个问题。 Visual Studio 已从 16.3.2 更新到 Visual Studio 到 16.3.5。我 Mac 上的 XCode 已更新到 11.1 版。在这些更新之后,Visual Studio 在远程连接到 Mac 时执行了更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多