web-dev-qa-db-ja.com

IOS11/Xcode 9のTIC Read Status 1:57とは何ですか?

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で「沈黙させる」のではないことを好みます。

142
David Seek

アップルのスタッフは次のように答えました。

TICは、「[TCP I/O connection]」に展開されます。これは、CFNetwork内のTCP接続を実行するサブシステムです。

157は、それぞれCFStreamErrorドメインとコードです。 1のドメインはkCFStreamErrorDomainPOSIXであり、そのドメイン内で57はENOTCONNです。

つまり、TCP読み取りはENOTCONNで失敗しました。

TCP I/O接続サブシステムにはパブリックAPIがないため、(NSURLSessionのような)何らかの高レベルラッパーを介して必ず使用する必要があります。

ソース: https://forums.developer.Apple.com/thread/66058

編集/更新:

私たちの状況についての上記のリンクから同じアップルのスペシャリストに依頼しました 、これは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が必ずしも何かがうまくいっていないという意味ではないことを理解することが重要です。 Closed TCP接続はすべてのバージョンのHTTPで想定されています。そのため、このエラーに関連する他の症状が他にない限り、無視することをお勧めします。

ソース: https://forums.developer.Apple.com/message/272678#272678

解決策:Xcode 9の新しいバージョン/アップデートを待ってください。

166
rgoncalv

これがTIC Read Status [11:0x0]: 1:57の内訳です。

TICは、「[TCP I/O connection]」に展開されます。これは、CFNetwork内のTCP接続を実行するサブシステムです。

11はTIC内の接続ID番号です

0x0はTICオブジェクト自体へのポインタです

157は、それぞれCFStreamErrorドメインとコードです。 1のドメインはkCFStreamErrorDomainPOSIXであり、そのドメイン内では57はENOTCONNです。

ソース: https://forums.developer.Apple.com/thread/66058

38
0rt

注:@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

enter image description here

29
lal

このログメッセージと他のもの(必ずしもエラーではない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を呼び出すことで、コンソールを混乱させることなく、ロガーをスレッドから使​​用できるようになります。

あなたのニーズに合わせて改良し、微調整する準備ができています:)

3
Moose

私はREST(GET)サービスに応答して '}'を受け取っていたのと同じ問題を抱えていました。

使用方法

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

uRLリクエストを行い、応答を取得した後にURLSessionオブジェクトをリセットした後

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

私の問題を解決しました。

0
Anuj Nigam

このロギングの問題は、WebサーバーでHTTP/2を無効にすることで解決できました。この場合は、クラシックELBからAWSのHTTP/2へのサポートを追加したアプリケーションELBに移行し、「TIC Read Status [11:0x0」を取得しました。 ]:1:57 "、XCode 10.1/iOS 12コンソール上。もしあればAppleがHTTP/2の問題を解決するまでこれは一時的な解決策のように見えます。この解決方法は、特にサードパーティのAPIを使用している場合、誰にとってもうまくいかないかもしれませんが、問題についての洞察を得ることができます。

0
Starkode