iOS11 / Xcode 9中的TIC读取状态为1:57是什么?


158

使用Swift 3和iPhone X模拟器更新到Xcode 9之后,我的控制台充满了:

TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...

那是什么,我该如何解决?非常感谢您的帮助。

PS:我不希望只是Environment Variable在构建方案中使它“静音” 。



5
好。我也找到了这个线程。但这是osx,古老而未得到真正的回答……
David Seek

您找到解决方案了吗?
Khodour.F

2
烦人的事情不是该登录到控制台,而是似乎也挂起了主线程
Hogdotmac

1
是的,它确实。但据我所知仅在调试模式下。
David Seek

Answers:


182

苹果员工给出了以下答案:

TIC 扩展为“ TCP I / O连接”,它是CFNetwork中运行TCP连接的子系统

157分别是CFStreamError域和代码;域1为kCFStreamErrorDomainPOSIX,在该域内57为ENOTCONN

简而言之,ENOTCONN导致TCP读取失败。

由于TCP I / O连接子系统没有公共API,因此您必须通过一些高级包装程序(例如NSURLSession)来使用它。

来源:https : //forums.developer.apple.com/thread/66058

编辑/更新:

由于我们所有人仍然有这些烦人的日志,因此我从上面的链接向同一位苹果专家询问了我们的情况,该情况现在专门针对Xcode 9和Swift4。这里是:

自从我升级到Xcode 9 / iOS 11以来,我在所有应用程序中都拥有这些日志,很多人抱怨这些日志。

2017-10-24 15:26:49.120556-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.120668-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.626199-0300 MyApp[1092:314617] TIC Read Status [56:0x0]: 1:57

他的回答:

重要的是要意识到此ENOTCONN并不一定意味着有任何问题。在所有版本的HTTP中,都希望关闭TCP连接。因此,除非有与此错误相关的其他症状,否则我建议您忽略它。

来源:https : //forums.developer.apple.com/message/272678#272678

解决方案:只需等待Xcode 9的较新版本/更新。


30
这不是特定于Swift的。我也通过Objectiv-C获得它。
维克多·恩格尔

8
您确实超越了此答案
G. LC LC

7
您的解决方案似乎没有用,因为它仍在XCode10中。
根纳季

2
我们必须找到一种方法来消除这种情况,因为日志打印会影响运行时的应用程序性能,现在我们可以希望,对于非#DEBUG构建,此方法不会被打印
Stoyan

6
进行一些设置会很不错,所以我们实际上可以“忽略它”
Zaporozhchenko Oleksandr

40

这里是如何TIC Read Status [11:0x0]: 1:57发生故障:

TIC 扩展为“ TCP I / O连接”,它是CFNetwork中运行TCP连接的子系统

11 是TIC中的连接ID号

0x0 是指向TIC对象本身的指针

157分别是CFStreamError域和代码;域1为kCFStreamErrorDomainPOSIX,在该域中57为ENOTCONN

资料来源:https : //forums.developer.apple.com/thread/66058


好的。到目前为止,一切都很好。这是不好的还是仅仅是信息?我需要修理什么东西吗?
David Seek

我相信它与iOS11.0有关,并且可能会在以后的版本中得到修复
0rt

8
但是为什么它实际上发生了呢?为什么突然从iOS 11开始呢?
莱蒂格巷

我在日志中也收到了它们的提示音,但是我所有的网络通话都工作正常:L

同样的问题我该怎么办?
Genevios

35

注意:就像@David在评论中提到的一样,这是一种隐藏警告的方法,因此请使用此启动参数来避免收到许多重复的消息并拥有一个干净的控制台。完成调试后,请将其禁用,因为启用后控制台不会提供有用的信息。例如libc++abi.dylib: terminating with uncaught exception of type NSException

对于想知道如何使警告静音的人,直到可以使用更好的解决方案之前,您可以随时随地跟随变量并根据需要进行切换。

OS_ACTIVITY_MODE = disable在产品方案的“参数”下使用环境变量,以避免控制台被此类警告淹没。

注意B:启用它即可看到效果。

来源:https//medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532

在此处输入图片说明


13
我也从字面上说过,我不希望他的选择^^仅使它静音并不能解决问题。
David Seek

23
人们需要停止建议禁用所有日志语句。这样的答案应该删除。
克劳斯·约根森

6

关于此日志消息和其他一些消息(例如NSURLSession错误,不一定是error),我发现的最好方法是拥有自己的日志功能。

class Logger {
    static var project: String = "MyProject"

    static func log(_ string: String, label: String = "") {
        DispatchQueue.main.async {
            print("[\(Logger.project)] \(label) : \(string)")
        }
    }

    static func info(_ string: String) {
        Logger.log(string)
    }

    static func warning(_ string: String) {
        Logger.log(string, label: "WARNING")
    }

    static func error(_ string: String) {
        Logger.log(string, label: "ERROR")
    }
}

然后,我只需要在控制台窗格的右下角过滤器中键入[MyProject],就是这样。

请注意,通过在主队列上调用print,它可以从线程使用记录器,而不会混淆控制台。

准备好进行改进并根据您的需求进行调整:)


检查“ os_log”。这是苹果建议与高级日志记录一起使用的方式
user1105951 '19

0

我在响应REST(GET)服务时遇到“}”时遇到了同样的问题。

使用:

URLCache.shared.removeCachedResponse(for: request as URLRequest)

发出我的URL请求后,并在得到响应后重置我的URLSession对象为:

session.reset(completionHandler: {
  // print(\(data))                          
})

解决了我的问题。


1
即使我的应用程序仅执行对Firebase的调用,也无法解决我的问题。而且我无法操纵框架。但我会将其转发给Firebase开发团队。也许他们可以做些什么。
David Seek

0

我们设法通过在Web服务器上禁用HTTP / 2来解决此日志记录问题,在这种情况下,我们已从传统的ELB迁移到为AWS上的HTTP / 2添加了支持的应用程序ELB,我们开始获得“ TIC读取状态[11:0x0 ]:在XCode 10.1 / iOS 12控制台上为1:57“。直到苹果公司修复HTTP / 2问题(如果有)之前,这似乎是一个临时解决方案。此解决方案可能不适用于所有人,特别是在使用第三方API的情况下,但它可以使您对问题有所了解。


4
自苹果推出此功能以来已经有1.5年了……我们称它为……功能……我认为这不会很快得到修复。
David Seek

0

这是一条日志,指示TCP连接丢失/关闭/ not_valid或其他原因。如果您的应用程序具有正在运行的tcp连接并且该应用程序在后台放置了一段时间,或者您关闭了手机的屏幕,则可能会发生这种情况。操作系统决定停止尽可能多的资源以减少电池消耗。如果将应用程序置于前台,以前的tcp连接将不再起作用。您需要重新创建一个新的tcp连接。

如果它不打扰您,请忽略它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.