Ios 调试时查找所有布局约束问题

Ios 调试时查找所有布局约束问题,ios,swift,Ios,Swift,我正在寻找一种方法,可以在调试iOS应用程序时找到所有与UI相关的约束问题。我最近在我的生产应用程序中遇到了一个问题,即UI约束失败,它只在iPhone 8+上引发了一个问题。我在测试时没有意识到这一点,因为即使该约束在所有设备上都失败了,但在我的测试设备上仍然有效 是否有一个严格的模式,我可以为开发启用,如果存在任何约束问题,该模式会使任何设备上的应用程序崩溃?任何不可满足的约束都将在控制台中报告。如果您的控制台太吵,这是另一个问题,但如果您真的想挨耳光,可以设置一个符号断点: 命中断点比崩

我正在寻找一种方法,可以在调试iOS应用程序时找到所有与UI相关的约束问题。我最近在我的生产应用程序中遇到了一个问题,即UI约束失败,它只在iPhone 8+上引发了一个问题。我在测试时没有意识到这一点,因为即使该约束在所有设备上都失败了,但在我的测试设备上仍然有效


是否有一个严格的模式,我可以为开发启用,如果存在任何约束问题,该模式会使任何设备上的应用程序崩溃?

任何不可满足的约束都将在控制台中报告。如果您的控制台太吵,这是另一个问题,但如果您真的想挨耳光,可以设置一个符号断点:


命中断点比崩溃更有帮助,因为它使您有机会检查控制台以获得有关错误约束的详细信息

没有严格的模式可以做到这一点。考虑到现有设备的大小、分辨率等,计算约束是在运行时完成的。但是,在发布到生产环境之前,您可以在每个大小类别中对应用程序进行一次测试。例如:iphone5、iphone6、iphone10、8plus


运行应用程序时,还要检查日志并搜索“NSLayoutConstraint”。如果有任何约束失败,您将在搜索该字符串时在日志中看到这些约束。

我认为这个问题与模式无关。您可以在“发布”模式下调试应用程序,方法是编辑“运行”方案并选择“发布”。如果你可以添加崩溃日志,这将是一个复杂的问题。是的,这会起作用,我将它标记为正确的答案,但还有一种方法可以在调试应用程序上真正崩溃吗?因为我不想在调试器始终处于连接状态时进行测试。谢谢我不知道,对不起。您可以在多个模拟设备中运行UI测试,以帮助覆盖。