奇怪的 Xamarin.iOS 错误仅在启用调试时出现(adhoc/release 构建)

Weird Xamarin.iOS bug only with Enable debug on (adhoc/release builds)

Xamarin.iOS 我有两个奇怪的问题:

1) NavigationController.PushViewController 在启用调试的情况下可以正常工作,但在禁用调试的情况下不能正常工作。

2) 禁用调试后,应用程序会在大约 60 秒后崩溃,但设备上不会出现崩溃日志。

首先我注意到 Debug 和 AdHoc 构建之间的区别。但是现在,当我使用 AdHoc 构建并打开 'Enabling debug' 时,它神奇地起作用了,无需进一步调整设置。删除调试符号并将调试信息设置为 None.

我在这个论坛上看到了另外两个类似的问题,forums.xamarin 几年前的问题没有答案。我在项目上尝试了不同的链接器和编译器以及 GC 设置,但它们没有帮助。

希望有人能帮帮我。

您可以使用一种技巧从设备中获取有关崩溃的更多信息。由于您的所有代码都可以通过单声道运行时执行,因此您可以通过将 UIAplication.Main 函数包装到 try-catch 块中轻松捕获大量崩溃,并将异常字符串保存在设备上的某个位置。

在Main.cs

public class Application {
    static void Main(string[] args) {
        try {
            UIApplication.Main(args: args, principalClassName: null, delegateClassName: typeof(AppDelegate).Name);
        } catch (Exception e) {
            // save e.ToString() somewhere
        }
    }
}