Hay literalmente cientos de hilos en docenas de diferentes foros de Internet sobre dispositivos iOS que se atascan en "Esperando a que se apliquen los cambios" y / o "Esperando a que se copien los elementos" mientras se sincroniza. He tenido ese problema de forma intermitente durante dos años, en iOS 6, 7 y ahora 8, y francamente, después de probar todas las soluciones que he leído, he renunciado a tratar de resolverlo. De eso no se trata esta pregunta. Lo que quiero saber es:
¿Qué se supone que sucederá durante esas etapas de la sincronización?
¿Esos dos mensajes significan lo mismo o algo diferente? ¿Qué intenta hacer iTunes ? ¿Está leyendo desde una base de datos interna en el dispositivo y comparándola con la biblioteca de iTunes en la computadora? ¿Está escribiendo en una biblioteca de dispositivos? ¿Qué está escribiendo? ¿En qué archivo está trabajando? ¿Hay alguna manera de ver la actividad que está en progreso, ya sea en tiempo real o después de los hechos?
fuente
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
Respuestas:
Aunque no hay documentación oficial de Apple, aún puede obtener información viendo iTunes e iOS haciendo sus cosas. Esto se puede hacer monitoreando los archivos de registro de ambos, en el iPhone esto se puede hacer a través de una conexión USB. Aquí hay un par de lo que ya he visto hacer en el iPhone en las etapas de sincronización "esperando xy":
Después de copiar nuevos medios al iPhone, los medios deben indexarse, por ejemplo, hay metadatos para procesar, se deben crear miniaturas, etc. Hasta que se haga eso, los medios no se pueden mostrar correctamente en las aplicaciones de iPhone correspondientes, por lo que iTunes espera a que el servicio iPhone Media Indexer complete su trabajo.
Al copiar nuevas aplicaciones a un iPhone, los
.ipa
archivos empaquetados deben descomprimirse e instalarse, por ejemplo, registrarse en la pantalla de inicio del iPhone, listas de aplicaciones, bases de datos de extensión de archivo, etc., esto se hace durante esas etapas de sincronización.La búsqueda destacada puede necesitar tiempo para indexar nuevos archivos, iTunes también espera esto (¡no siempre, pero a veces!)
Cuando iTunes transfiere archivos a un iPhone, siempre verifica el contenido del archivo de varias maneras, ya sea la integridad del archivo o los hash que se comparan. Estos procesos necesitan mucho tiempo, dependiendo del tamaño de los datos transferidos, e iTunes espera una verificación exitosa para completar la sincronización.
Cuando se detectan fallas de copia por cualquiera de los métodos de verificación, iTunes copiará los archivos nuevamente. A menudo, iTunes no muestra estos procesos, sino que se realiza durante el proceso "Esperando a que se copien los elementos".
iTunes también esperará a que los procesos de copia finalicen con éxito, hay flujos y sockets que se cerrarán cuando se transfieran datos entre computadoras. Aunque esto debería suceder instantáneamente, a veces hay fallas y el iPhone necesita algo de tiempo.
En general, puede decir que iTunes utiliza estas etapas para la verificación y corrección de errores, así como para hacer un trabajo "complementario". Se vuelven extremadamente útiles, especialmente cuando se usa la sincronización WiFi, que es mucho más propensa a errores que el USB.
Editar : para ver los archivos de registro de un iPhone / iPad, no se requiere jailbreak. Probablemente
libimobiledevice
, la mejor herramienta es un paquete de software gratuito de código abierto con licencia LGPL 2.1 . Es capaz de manejar un dispositivo iOS sin la necesidad de iTunes, incluso en máquinas Linux. Aunque está diseñado para máquinas Linux, también se puede ejecutar en Mac, por ejemplo, compilando el código fuente o, aún más fácil, instalando a través de homebrew . Aunque siempre lo estoy usando en máquinas Linux, esto debería funcionar de la misma manera en Mac OS X.Probablemente necesite emparejar su iPhone primero, use el
idevicepair
binario para esto. Debería encontrar su iPhone conectado por USB solo, si no lo hace, puede intentar pasar el UUID de su dispositivo. Después de que el emparejamiento se haya realizado correctamente (mostrará un mensaje de éxito en la interfaz de su terminal), use la aplicaciónidevicesyslog
para ver los archivos de registro de su iPhone. Se conectará alsyslog
enchufe de su dispositivo automáticamente, si no lo hace, puede pasar el UUID nuevamente. Luego, todos los mensajes de registro se publicaránstdout
en su computadora, por ejemplo, en la salida de su terminal.También hay un software patentado que le permite leer los registros en su dispositivo iOS, pero
libimobiledevice
como una línea de comando y una herramienta de código abierto debería preferirse.fuente
Creo que en el proceso "Esperando el elemento para copiar" iTunes escanea los elementos que se van a copiar, cuenta los elementos y calcula el tiempo estimado de la copia. Tanto como los archivos que se copiarán, el tiempo de espera aumenta.
fuente