【发布时间】: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