如何调试iOS应用程序中的冻结问题

如何调试iOS应用程序中的冻结问题,ios,objective-c,afnetworking,freeze,Ios,Objective C,Afnetworking,Freeze,我有一个用Objective-C制作的应用程序。这个应用程序总是运行正常。昨天,我的Xcode忽略了我创建的任何新代码,所以我将其更新为Xcode 10.1(10B61)。不管怎样,我正在编辑另一个应用程序,而不是下面的那个 在那之后,app Store上更新了一个版本的应用程序(我两天前发送了它),下午18点,我的老板打电话给我,告诉我应用程序正在崩溃 今天,我验证了应用程序没有崩溃,而是冻结了。发生以下任何一种情况时,天气都会结冰: 打开或关闭键盘 打开或关闭任何活动 使用AFNetwork

我有一个用Objective-C制作的应用程序。这个应用程序总是运行正常。昨天,我的Xcode忽略了我创建的任何新代码,所以我将其更新为Xcode 10.1(10B61)。不管怎样,我正在编辑另一个应用程序,而不是下面的那个

在那之后,app Store上更新了一个版本的应用程序(我两天前发送了它),下午18点,我的老板打电话给我,告诉我应用程序正在崩溃

今天,我验证了应用程序没有崩溃,而是冻结了。发生以下任何一种情况时,天气都会结冰:

  • 打开或关闭键盘
  • 打开或关闭任何活动
  • 使用AFNetworking框架执行请求
  • 我试着在月初进行git签出,但仍然不起作用。因此,我在上个月(10月9日)的第一天结账,但天气仍然很冷。但这些版本的应用程序运行正常,没有出现任何错误

    我试着调试它,直到在程序集上,我第一次修改了框架的代码。当应用程序尝试设置请求头时,有一个dispatch\u sync冻结了该应用程序,我可以将其更改为dispatch\u async,它修复了问题的1/3,请求仍在异步工作。行:
    /Pods/AFNetworking/Serialization/AFURLRequestSerialization.m:306

    - (NSDictionary *)HTTPRequestHeaders {
        NSDictionary __block *value;
        dispatch_sync(self.requestHeaderModificationQueue, ^{
            value = [NSDictionary dictionaryWithDictionary:self.mutableHTTPRequestHeaders];
        });
        return value;
    }
    
    现在我的老板告诉我这两个应用程序都冻结了。我没有在第一个应用程序中更新任何内容。这些应用程序来自同一个项目,它们的工作方式就像优步

    有人知道发生了什么吗

    ==EDIT0====

    目前,我们注意到,该应用程序可以在另一台计算机上构建,并且与以前一样。因此,我的Mac电脑中正在构建的应用程序正在冻结,问题不在于代码、某些库、更新或其他什么。可能是我的电脑,我们将尝试使用另一台mac来构建和发送应用程序


    如果问题解决了,我会将解决方案放在这里,并与苹果支持人员进行讨论。

    问题是,在我的Mac电脑中构建的每个iOS应用程序都开始随机冻结dispatch\u sync功能。我会尝试格式化我的电脑或买一台新的


    这毫无意义,但解决了问题。

    我建议您创建一个新的解决方案。创建一个空白项目,添加AFNetworking,然后查看是否可以显示问题。很可能你不会,所以你必须开始添加你在应用程序中使用的代码模式,直到你能证明问题。(另一种方法是复制您的项目,开始删除与问题无关的所有内容,并继续重复此过程,直到您无法再显示问题。)但是这个问题现在太广泛了。如果你从同一个队列调用
    dispatch\u sync
    ,那么你就造成了死锁。听起来你需要一个新的Mac