Appleによる公式のドキュメントはありませんが、iTunesやiOSが自分の仕事をしているのを見ると、まだ情報を得ることができます。これは、両方のログファイルを監視することで実行できます。iPhoneでは、USB接続を介して実行できます。iPhoneが「xyを待っている」同期段階ですでに行っていることをいくつか見てみましょう。
新しいメディアをiPhoneにコピーした後、メディアにインデックスを付ける必要があります。たとえば、処理するメタデータがある、サムネイルを作成するなどです。それが完了するまで、メディアは対応するiPhoneアプリで正しく表示できません。 iPhone Media Indexerサービスが作業を完了するのを待ちます。
新しいアプリをiPhoneにコピーする場合、パッケージ化された.ipa
ファイルを展開してインストールする必要があります。たとえば、iPhoneのホーム画面、アプリリスト、ファイル拡張子データベースなどに登録します。これは同期のその段階で行われます。
スポットライト検索では、新しいファイルのインデックスを作成する時間が必要な場合があります。iTunesも同様に待機します(常にではありませんが、時には!
iTunesがファイルをiPhoneに転送するとき、アーカイブの整合性や比較されるハッシュなど、いくつかの方法でファイルの内容を常に検証します。これらのプロセスは、転送されたデータのサイズに応じて十分な時間を必要とし、iTunesは同期を完了するために検証の成功を待ちます。
検証方法のいずれかによってコピーの失敗が検出されると、iTunesはファイルを再度コピーします。多くの場合、これらのプロセスはiTunesによって表示されず、「コピーするアイテムの待機」処理中に実行されます。
iTunesは、コピープロセスが正常に終了するまで待機します。コンピューター間でデータが転送されると、ストリームとソケットが閉じます。これはすぐに発生するはずですが、時々障害が発生し、iPhoneには時間がかかります。
一般的に、iTunesはこれらのステージを検証およびエラー修正に使用するだけでなく、「完了」作業を行うと言うことができます。USBよりもエラーが発生しやすいWiFi同期を使用する場合は特に便利です。
編集:iPhone / iPadのログファイルを表示するには、ジェイルブレイクは必要ありません。おそらく最良のツールはlibimobiledevice
、LGPL 2.1の下でライセンスされた無料のオープンソースソフトウェアのバンドルでしょう。iTunesを必要とせずにiOSデバイスを処理できるので、Linuxマシンでも使用できます。Linuxマシン用に設計されていますが、ソースコードをコンパイルするか、さらに簡単にhomebrewを介してインストールすることにより、Macでも実行できます。私は常にLinuxマシンで使用していますが、これはMac OS Xでも同じように機能するはずです。
おそらく最初にiPhoneをペアリングする必要がありますidevicepair
。これには-binaryを使用します。USB接続されたiPhoneは自動的に検出されますが、検出されない場合は、デバイスのUUIDを渡すことができます。ペアリングが成功すると(ターミナルインターフェイスに成功メッセージが表示されます)、- idevicesyslog
applicationを使用してiPhoneのログファイルを表示します。syslog
デバイスの-socketに自動的に接続します。接続しない場合は、UUIDを再度渡すことができます。その後、すべてのログメッセージがstdout
コンピューター上、たとえば端末出力に投稿されます。
iOSデバイスのログを読み取ることができる独自のソフトウェアもありますがlibimobiledevice
、コマンドラインおよびオープンソースツールとして推奨されます。
11/15/14 11:30:11.314 AM iTunes[48673]: Failed to create replacement string 11/15/14 11:32:43.222 AM iTunes[48673]: AMDeviceSecureTransferPath (thread 0x115c2b000): disableDelta: FALSE 11/15/14 11:32:43.222 AM iTunes[48673]: AMDeviceSecureTransferPath (thread 0x115c2b000): Trying SZConduit for transfer 11/15/14 11:32:43.507 AM iTunes[48673]: nuke_path (thread 0x115c2b000): AFCRemovePath of 'PublicStaging/DoubleDown 3.5.1.ipa' returned 8