アプリの次のバージョンをストアへの提出に近づけるため、Instruments を使用してリーク チェックを実行します。すべてのテスト デバイス (iPod touch、iPhone、iPad、さまざまな OS レベルなど) では、アプリが 75% の確率でクラッシュする iOS 6.1.3 を実行している iPhone 4S を除いて、すべて問題ありません。
デバイスのログは共通性を示しています...私には意味がありません。
クラッシュはすべて「インスタンスに送信された認識されないセレクター」の種類であるため、スクロールの必要性を制限するために、メッセージの前の部分を削除して、共通点をより簡単に確認できるようにします。
最初の実行はこれでクラッシュしました:
reason: '-[UIDeviceWhiteColor clean]: unrecognized selector sent to instance 0x1f84db50'
2 回目の実行は問題なく実行されました。
3回目の実行はこれでクラッシュしました:
reason: '-[CALayer clean]: unrecognized selector sent to instance 0x1f87fab0'
4 回目の実行は、次のバリエーションでクラッシュしました。
reason: '-[UIImage clean]: unrecognized selector sent to instance 0x1e56b9d0'
UIDeviceWhiteColor オブジェクトのようなプライベートな Apple API を呼び出していると思われるかもしれませんが、そうではありません。それがどこから来ているのか、私にはわかりません。クラッシュの時点で、このアプリと、このアプリがサービス検出を使用して検出したネットワーク上の別のアプリとの間にネットワーク接続が作成されていると想定されます。実際、Connection クラスには -clean メソッドがありますが、そのメソッドへの唯一の呼び出しは Connection クラス内にあり、それらはすべて [self clean] の種類です。自分に送った。
stackoverflow は、Instruments がアプリをプロファイリングしているときにのみ何かが発生した場合に競合状態が発生している可能性があることを示唆していますが、それがここでどのように適用されるかは不明です。
私が実際に見ているものと赤いニシンとは何かを説明できる人はいますか?
PS Instruments がメモリを破損している可能性があるかどうかを尋ねる理由は、Objective C のメソッド ディスパッチ テーブルに関するクモの巣の記憶が原因であり、ディスパッチ テーブルが破損しているかのように、奇妙で奇妙に異なるオブジェクトを参照して 3 つすべてがクラッシュします。
PSS I は、3 回目と 4 回目の実行の間に iPhone 4S をコールド ブートしました。また、Instruments と Xcode の両方を終了して、それらがねじれていないことを確認しました。