有名な「開いているファイルが多すぎる」問題に遭遇し、自分のアプリで開かれているファイルを見つけようとしました。そして、責められるのはMapKitのようです!
iOS 6 シミュレーターでアプリを実行し、"Debug > Location > Freeway Drive" をオンにしました。そしてlsof -i | grep MyAppName
、開かれた TCP 接続を取得するために使用されます。そして、これは私が得たものです:
iWasteBul 36816 ivanzhu 1u IPv4 0xf7ae68a3a8b239af 0t0 TCP localhost:49504->localhost:49503 (ESTABLISHED)
iWasteBul 36816 ivanzhu 2u IPv4 0xf7ae68a3a8b239af 0t0 TCP localhost:49504->localhost:49503 (ESTABLISHED)
iWasteBul 36816 ivanzhu 4u IPv4 0xf7ae68a3a8b239af 0t0 TCP localhost:49504->localhost:49503 (ESTABLISHED)
iWasteBul 36816 ivanzhu 5u IPv4 0xf7ae68a3a849b407 0t0 TCP localhost:49505->localhost:49503 (ESTABLISHED)
iWasteBul 36816 ivanzhu 6u IPv4 0xf7ae68a3a62634ff 0t0 TCP localhost:49506->localhost:49503 (ESTABLISHED)
iWasteBul 36816 ivanzhu 30u IPv4 0xf7ae68a3a84350e7 0t0 TCP 192.168.1.108:50151->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 31u IPv4 0xf7ae68a3a939f407 0t0 TCP 192.168.1.108:50148->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 32u IPv4 0xf7ae68a3a939f407 0t0 TCP 192.168.1.108:50148->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 33u IPv4 0xf7ae68a3a3482f57 0t0 TCP 192.168.1.108:50149->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 34u IPv4 0xf7ae68a3a3482f57 0t0 TCP 192.168.1.108:50149->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 35u IPv4 0xf7ae68a3a8540277 0t0 TCP 192.168.1.108:50150->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 36u IPv4 0xf7ae68a3a8540277 0t0 TCP 192.168.1.108:50150->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 37u IPv4 0xf7ae68a3a84350e7 0t0 TCP 192.168.1.108:50151->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 38u IPv4 0xf7ae68a3a89f468f 0t0 TCP 192.168.1.108:50157->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 39u IPv4 0xf7ae68a3a89f3f57 0t0 TCP 192.168.1.108:50152->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 40u IPv4 0xf7ae68a3a89f3f57 0t0 TCP 192.168.1.108:50152->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 41u IPv4 0xf7ae68a3a75bcdc7 0t0 TCP 192.168.1.108:50153->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 42u IPv4 0xf7ae68a3a75bcdc7 0t0 TCP 192.168.1.108:50153->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 43u IPv4 0xf7ae68a3a90729af 0t0 TCP 192.168.1.108:50154->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 44u IPv4 0xf7ae68a3a90729af 0t0 TCP 192.168.1.108:50154->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 45u IPv4 0xf7ae68a3a94b2ccf 0t0 TCP 192.168.1.108:50155->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 46u IPv4 0xf7ae68a3a94b2ccf 0t0 TCP 192.168.1.108:50155->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 47u IPv4 0xf7ae68a3a4eac0e7 0t0 TCP 192.168.1.108:50156->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 48u IPv4 0xf7ae68a3a4eac0e7 0t0 TCP 192.168.1.108:50156->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 49u IPv4 0xf7ae68a3a89f468f 0t0 TCP 192.168.1.108:50157->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 50u IPv4 0xf7ae68a3a94754ff 0t0 TCP 192.168.1.108:50167->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 51u IPv4 0xf7ae68a3a849accf 0t0 TCP 192.168.1.108:50158->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 52u IPv4 0xf7ae68a3a849accf 0t0 TCP 192.168.1.108:50158->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 53u IPv4 0xf7ae68a3a76c868f 0t0 TCP 192.168.1.108:50159->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 55u IPv4 0xf7ae68a3a76c868f 0t0 TCP 192.168.1.108:50159->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 56u IPv4 0xf7ae68a3a66a1277 0t0 TCP 192.168.1.108:50160->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 57u IPv4 0xf7ae68a3a66a1277 0t0 TCP 192.168.1.108:50160->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 58u IPv4 0xf7ae68a3a93d7f57 0t0 TCP 192.168.1.108:50161->123.103.0.159-bj-cnc:https (ESTABLISHED)
iWasteBul 36816 ivanzhu 59u IPv4 0xf7ae68a3a93d7f57 0t0 TCP 192.168.1.108:50161->123.103.0.159-bj-cnc:https (ESTABLISHED)
そして、ファイルを書き込もうとすると、コードが「開いているファイルが多すぎます」というエラーを受け取り始めるまで、リストはどんどん大きくなり続けました。
そして、iOS 5.1 シミュレーターで同じテストを行ったところ、問題ないように見えました (追加の接続はありません)。
iWasteBul 37547 ivanzhu 1u IPv4 0xf7ae68a3a8a00dc7 0t0 TCP localhost:51490->localhost:51489 (ESTABLISHED)
iWasteBul 37547 ivanzhu 2u IPv4 0xf7ae68a3a8a00dc7 0t0 TCP localhost:51490->localhost:51489 (ESTABLISHED)
iWasteBul 37547 ivanzhu 4u IPv4 0xf7ae68a3a8a00dc7 0t0 TCP localhost:51490->localhost:51489 (ESTABLISHED)
iWasteBul 37547 ivanzhu 5u IPv4 0xf7ae68a3a8a0cdc7 0t0 TCP localhost:51491->localhost:51489 (ESTABLISHED)
iWasteBul 37547 ivanzhu 6u IPv4 0xf7ae68a3a8a014ff 0t0 TCP localhost:51492->localhost:51489 (ESTABLISHED)
それが私のアプリの問題ではないことを確認するために、シミュレーターで実行中のすべてのアプリを強制終了し、組み込みの「マップ」アプリを起動して、同じ結果を得ました。しかし、「マップ」アプリがインストールされていないため、iOS 5.1 シミュレーターで同じテストを行うことができませんでした。
私の質問は次のとおりです。
- TCP 接続を開くために適切なツールを使用していますか?
- これは iOS 6 シミュレータ (および潜在的にデバイス) のバグですか?
- それに対処する方法は?
どんな助けでも大歓迎です!