Es gibt buchstäblich Hunderte von Threads in Dutzenden verschiedener Internetforen über iOS-Geräte, die beim Synchronisieren nicht mehr mit "Warten auf Änderungen" und / oder "Warten auf Elemente zum Kopieren" zu tun haben. Ich habe dieses Problem zwei Jahre lang mit Unterbrechungen gehabt, auf iOS 6, 7 und jetzt 8, und ehrlich gesagt, nachdem ich alle Korrekturen ausprobiert habe, über die ich gelesen habe, habe ich es aufgegeben, zu versuchen, es zu lösen. Darum geht es in dieser Frage nicht. Was ich wissen möchte ist:
Was soll in diesen Phasen der Synchronisierung passieren ?
Bedeuten diese beiden Nachrichten dasselbe oder etwas anderes? Was versucht iTunes zu tun? Liest es aus einer internen Datenbank auf dem Gerät und vergleicht es mit der iTunes-Mediathek auf dem Computer? Ist es das Schreiben zu einer Gerätebibliothek? Was schreibt es? An welcher Datei arbeitet es? Gibt es eine Möglichkeit, die laufenden Aktivitäten entweder in Echtzeit oder nachträglich zu verfolgen?
quelle
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
11/15/14 11:40:50.527 AM iTunes[48673]: Entered:_AMMuxedDeviceDisconnected, mux-device:1815 11/15/14 11:40:50.527 AM iTunes[48673]: Entered:__thr_AMMuxedDeviceDisconnected, mux-device:1815 11/15/14 11:40:50.527 AM iTunes[48673]: tid:144f - Mux ID not found in mapping dictionary 11/15/14 11:40:50.527 AM iTunes[48673]: tid:144f - Can't handle disconnect with invalid ecid
Antworten:
Obwohl es keine offizielle Dokumentation von Apple gibt, können Sie dennoch einige Informationen erhalten, indem Sie iTunes und iOS dabei beobachten, wie sie ihre Aufgaben erledigen. Dies kann durch Überwachen der Protokolldateien von beiden erfolgen. Auf dem iPhone kann dies über eine USB-Verbindung erfolgen. Hier sind ein paar Beispiele, die ich bereits auf dem iPhone in den Synchronisationsphasen "Warten auf xy" gesehen habe:
Nach dem Kopieren neuer Medien auf das iPhone müssen die Medien indexiert werden, z. B. müssen Metadaten verarbeitet, Miniaturansichten erstellt werden usw. Bis dahin können die Medien in den entsprechenden iPhone-Apps nicht korrekt angezeigt werden, also in iTunes Wartet, bis der iPhone Media Indexer-Dienst seine Arbeit abgeschlossen hat.
Wenn Sie neue Apps auf ein iPhone kopieren, müssen die gepackten
.ipa
Dateien entpackt und installiert werden. Registrieren Sie sich beispielsweise auf dem Startbildschirm des iPhones, in den App-Listen, in den Dateierweiterungsdatenbanken usw. Dies erfolgt während dieser Synchronisierungsphasen.Die Spotlight-Suche benötigt möglicherweise Zeit, um neue Dateien zu indizieren. ITunes wartet auch darauf (nicht immer, aber manchmal!)
Wenn iTunes Dateien auf ein iPhone überträgt, wird der Inhalt der Datei immer auf verschiedene Weise überprüft. Dabei handelt es sich um Archivintegrität oder Hashes, die verglichen werden. Diese Vorgänge benötigen abhängig von der Größe der übertragenen Daten viel Zeit, und iTunes wartet auf die erfolgreiche Überprüfung, um die Synchronisierung abzuschließen.
Wenn bei einer der Überprüfungsmethoden Kopierfehler festgestellt werden, kopiert iTunes die Dateien erneut. Oft werden diese Prozesse von iTunes nicht angezeigt, sondern während der "Warten auf den Kopiervorgang".
iTunes wartet auch darauf, dass der Kopiervorgang erfolgreich beendet wird. Es müssen Streams und Sockets geschlossen werden, wenn Daten zwischen Computern übertragen werden. Obwohl dies sofort geschehen sollte, treten manchmal Fehler auf und das iPhone benötigt einige Zeit.
Im Allgemeinen kann man sagen, dass iTunes diese Phasen zur Überprüfung und Fehlerkorrektur sowie für "vollständige" Arbeiten verwendet. Sie sind besonders nützlich, wenn Sie WiFi Sync verwenden, das viel fehleranfälliger als USB ist.
Bearbeiten : Zum Anzeigen der Protokolldateien eines iPhone / iPad ist kein Jailbreak erforderlich. Das beste Tool ist wahrscheinlich
libimobiledevice
ein Paket kostenloser Open-Source-Software, die unter der LGPL 2.1 lizenziert ist . Es ist in der Lage, ein iOS-Gerät ohne iTunes zu bedienen, also auch auf Linux-Computern. Obwohl es für Linux-Computer entwickelt wurde, kann es auch auf einem Mac ausgeführt werden, z. B. durch Kompilieren des Quellcodes oder noch einfacher durch Installieren über Homebrew . Obwohl ich es immer auf Linux-Computern verwende, sollte dies unter Mac OS X genauso funktionieren.Sie müssen wahrscheinlich zuerst Ihr iPhone
idevicepair
koppeln , verwenden Sie dazu die -binary. Es sollte Ihr über USB verbundenes iPhone selbst finden. Wenn dies nicht der Fall ist, können Sie versuchen, die UUID Ihres Geräts weiterzugeben. Nachdem das Pairing erfolgreich war (es wird eine Erfolgsmeldung auf Ihrer Terminal-Oberfläche angezeigt), können Sie mit deridevicesyslog
-Anwendung die Protokolldateien Ihres iPhones anzeigen. Es stelltsyslog
automatisch eine Verbindung zum -socket Ihres Geräts her. Wenn dies nicht der Fall ist, können Sie die UUID erneut übergeben. Anschließend werden alle Protokollnachrichtenstdout
auf Ihrem Computer abgelegt, z. B. auf Ihrem Terminalausgang.Es gibt auch proprietäre Software, mit der Sie die Protokolle auf Ihrem iOS-Gerät lesen können.
libimobiledevice
Als Befehlszeilen- und Open-Source-Tool sollten Sie jedoch vorziehen.quelle
Ich denke, in "Warten auf zu kopierende Objekte" scannt iTunes die zu kopierenden Objekte, zählt Objekte und berechnet die geschätzte Zeit der Kopie. So viele Dateien wie kopiert werden sollen, erhöht sich die Wartezeit.
quelle