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
...

그것은 무엇이며 어떻게 수정합니까? 도움을 주셔서 감사합니다.

추신 : 나는 단지 Environment Variable빌드 방식으로 그것을 "묵음"하는 것을 선호하지 않습니다 .



5
잘. 이 스레드도 찾았습니다. 그러나 그것은 osx, 오래되고 실제로 대답하지 않았습니다 ...
David Seek

아직 해결책을 찾았습니까?
Khodour.F

2
성가신 것은 콘솔에 로그인하는 것이 아니라 메인 스레드를 정지시키는 것 같습니다
Hogdotmac

1
그렇습니다. 그러나 내가 알기로는 디버깅 모드에서만.
David Seek

답변:


182

Apple 직원은 다음과 같은 대답을했습니다.

TIC TCP 연결을 실행하는 CFNetwork 내의 서브 시스템 인 "TCP I / O 연결"로 확장

157CFStreamError 도메인 코드 각각이고; 1의 도메인은 kCFStreamErrorDomainPOSIX이고 해당 도메인 내에서 57ENOTCONN

즉, ENOTCONN으로 TCP 읽기에 실패했습니다.

TCP I / O 연결 하위 시스템에는 공용 API가 없으므로 NSURLSession과 같은 일부 고급 래퍼를 통해이를 사용해야합니다.

출처 : https://forums.developer.apple.com/thread/66058

편집 / 업데이트 :

우리 모두가 여전히 성가신 로그를 가지고 있기 때문에 위의 링크에서 동일한 Apple 전문가 에게 Xcode 9 및 Swift 4 에 대한 상황에 대해 문의 했습니다.

많은 사람들이 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에서도 가져옵니다.
Victor Engel

8
당신은이 답을 얻기 위해 정말로 넘어 섰습니다
G. LC

7
귀하의 솔루션은 여전히 ​​XCode10에 있기 때문에 작동하지 않는 것 같습니다.
Gennadii Tsypenko

2
로그 인쇄가 런타임 동안 앱 성능에 영향을 미치기 때문에이를 제거 할 수있는 방법을 찾아야합니다. 지금은 #DEBUG 빌드가 아닌 경우 인쇄되지 않을 것으로 기대할 수 있습니다.
Stoyan

6
우리가 실제로 "무시"수 있도록 좋은이, 몇 가지 설정이 될 것이다
Zaporozhchenko 올렉산드르에게

40

TIC Read Status [11:0x0]: 1:57분류 방법 은 다음과 같습니다 .

TIC TCP 연결을 실행하는 CFNetwork 내의 서브 시스템 인 "TCP I / O 연결"로 확장

11 TIC 내의 연결 ID 번호입니다.

0x0 TIC 객체 자체에 대한 포인터입니다.

157CFStreamError 도메인 코드 각각이고; 1의 도메인은 kCFStreamErrorDomainPOSIX이고 해당 도메인 내에서 57은 ENOTCONN입니다.

출처 : https://forums.developer.apple.com/thread/66058


괜찮아. 여태까지는 그런대로 잘됐다. 그게 나쁘거나 정보입니까? 아무것도 고쳐야합니까?
David Seek

나는 그것이 iOS11.0과 관련이 있다고 생각하고 다음 릴리스에서 수정 될 수 있습니다.
0rt

8
그러나 왜 실제로 일어나고 있습니까? 그리고 왜 iOS 11에서 갑자기 시작 되었습니까?
Lane Rettig 18

나는 내 로그에 그들 톤을 받고 있지만 내 모든 네트워크 호출이 제대로 작동합니다 : 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
사람들은 모든 로그 문 비활성화를 제안 중지해야합니다. 이와 같은 답변은 삭제해야합니다.
Claus Jørgensen

6

이 로그 메시지와 다른 일부 (NSURLSession 오류와 같이 반드시 오류는 아님)에서 내가 찾은 가장 좋은 방법은 내 자신의 로그 기능을 갖는 것입니다.

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

0

REST (GET) 서비스에 대한 응답으로 '}'을 얻는 것과 동일한 문제가 발생했습니다.

사용 :

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

URL 요청을 한 후 다음과 같이 응답을 얻은 후 URLSession 객체를 재설정합니다.

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

내 문제를 해결했다.


1
내 앱이 Firebase를 호출하는 경우에도 문제가 해결되지 않습니다. 그리고 나는 프레임 워크를 조작 할 수 없습니다. 하지만 이것을 Firebase 개발자 팀에 전달하겠습니다. 어쩌면 그들은 그것에 대해 뭔가를 할 수 있습니다.
David See

0

웹 서버에서 HTTP / 2를 비활성화하여이 로깅 문제를 해결했습니다.이 경우 클래식 ELB에서 AWS의 HTTP / 2에 대한 지원을 추가 한 애플리케이션 ELB로 마이그레이션했으며 "TIC 읽기 상태 [11 : 0x0 ] : XCode 10.1 / iOS 12 콘솔에서 1:57 " Apple이 HTTP / 2 관련 문제를 해결하기 전까지는 임시 해결책처럼 보입니다. 이 솔루션은 특히 타사 API를 사용하는 경우 모든 사람에게 적합하지는 않지만 문제에 대한 통찰력을 제공합니다.


4
애플이 이것을 소개 한 이래로 1.5 년이 지났다 ... 전화하자 ... 기능 ... 나는 이것이 곧 "고정"되는 것을 보지 못한다.
David Seek

0

TCP 연결이 끊어 지거나 닫히거나 not_valid 또는 무엇이든 나타내는 로깅입니다. 앱에 tcp 연결이 실행 중이고 앱이 일정 시간 동안 백그라운드에 놓이거나 전화기 화면을 끈 경우에 발생할 수 있습니다. OS는 배터리 소모를 줄이기 위해 가능한 한 많은 리소스를 중지하기로 결정합니다. 앱을 포 그라운드로 가져 오면 이전에 있던 tcp 연결이 더 이상 작동하지 않습니다. 새로운 tcp 연결을 다시 만들어야합니다.

귀찮게하지 않으면 무시하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.