Bien qu'il n'y ait pas de documentation officielle d'Apple, vous pouvez toujours obtenir des informations en regardant iTunes et iOS faire leur travail. Cela peut être fait en surveillant les fichiers journaux des deux, sur l'iPhone, cela peut être fait via une connexion USB. Voici quelques-unes de ce que j'ai déjà vu l'iPhone faire dans les étapes de synchronisation "en attente de xy":
Après avoir copié de nouveaux médias sur l'iPhone, les médias doivent être indexés, par exemple il y a des métadonnées à traiter, des vignettes doivent être créées, etc. Jusqu'à ce que cela soit fait, les médias ne peuvent pas être affichés correctement dans les applications iPhone correspondantes, donc iTunes attend que le service iPhone Media Indexer termine son travail.
Lors de la copie de nouvelles applications sur un iPhone, les .ipa
fichiers emballés doivent être décompressés et installés, par exemple, vous inscrire dans l'écran d'accueil de l'iPhone, les listes d'applications, les bases de données d'extension de fichier, etc., cela se fait pendant ces étapes de synchronisation.
La recherche Spotlight peut avoir besoin de temps pour indexer de nouveaux fichiers, iTunes attend également cela (pas toujours, mais parfois!)
Lorsque iTunes transfère des fichiers vers un iPhone, il vérifie toujours le contenu du fichier de plusieurs manières, que ce soit l'intégrité des archives ou les hachages qui sont comparés. Ces processus ont besoin de beaucoup de temps, selon la taille des données transférées, et iTunes attend une vérification réussie pour terminer la synchronisation.
En cas d'échecs de copie détectés par l'une des méthodes de vérification, iTunes copiera à nouveau les fichiers. Souvent, ces processus ne sont pas affichés par iTunes, cela se fait pendant le traitement "En attente de copie des éléments".
iTunes attendra également que les processus de copie se terminent correctement, il y a des flux et des sockets à fermer lorsque les données sont transférées entre ordinateurs. Bien que cela devrait se produire instantanément, il y a parfois des échecs et l'iPhone a besoin de temps.
En général, vous pouvez dire qu'iTunes utilise ces étapes pour la vérification et la correction d'erreurs ainsi que pour effectuer un travail «complet». Ils deviennent extrêmement utiles, en particulier lors de l'utilisation de la synchronisation WiFi, qui est beaucoup plus sujette aux erreurs que l'USB.
Modifier : pour afficher les fichiers journaux d'un iPhone / iPad, aucun jailbreak n'est requis. Le meilleur outil est probablement libimobiledevice
un ensemble de logiciels libres et gratuits sous licence LGPL 2.1 . Il est capable de gérer un appareil iOS sans avoir besoin d'iTunes, donc même sur des machines Linux. Bien qu'il soit conçu pour les machines Linux, il peut également être exécuté sur Mac, par exemple en compilant le code source , ou, encore plus facilement, en l'installant via homebrew . Bien que je l'utilise toujours sur des machines Linux, cela devrait fonctionner de la même manière sur Mac OS X.
Vous devez probablement coupler votre iPhone en premier, utilisez le idevicepair
-binaire pour cela. Il devrait trouver votre iPhone connecté par USB, sinon, vous pouvez essayer de passer l'UUID de votre appareil. Une fois l'appairage réussi (il affichera un message de succès sur votre interface de terminal), utilisez l'application idevicesyslog
-pour afficher les fichiers journaux de votre iPhone. Il se connectera syslog
automatiquement à la prise de votre appareil, sinon, vous pouvez transmettre à nouveau l'UUID. Ensuite, tous les messages du journal seront publiés stdout
sur votre ordinateur, par exemple sur la sortie de votre terminal.
Il existe également un logiciel propriétaire qui vous permet de lire les journaux sur votre appareil iOS, mais en libimobiledevice
tant qu'outil de ligne de commande et open source devrait être préféré.
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