O que realmente acontece durante "Aguardando a aplicação de alterações" e "Aguardando a cópia de itens"?

17

Existem literalmente centenas de threads em dezenas de fóruns da Internet diferentes sobre dispositivos iOS que ficam bloqueados em "Aguardando a aplicação de alterações" e / ou "Aguardando a cópia de itens" durante a sincronização. Eu tenho esse problema de forma intermitente há dois anos, no iOS 6, 7 e agora 8, e, francamente, depois de tentar todas as correções que li, desisti de tentar resolvê-lo. Não é disso que se trata esta questão. O que eu quero saber é:

O que deveria acontecer durante os estágios da sincronização?

Essas duas mensagens significam a mesma coisa ou algo diferente? O que o iTunes está tentando fazer? Ele está lendo um banco de dados interno no dispositivo e comparando-o com a biblioteca do iTunes no computador? Está gravando em uma biblioteca de dispositivos? O que está escrevendo? Em que arquivo ele está trabalhando? Existe alguma maneira de assistir a atividade que está em andamento, seja em tempo real ou após o fato?

mweiss
fonte
Eu também adoraria saber a resposta, pois tenho esse problema o tempo todo. Aqui estão algumas mensagens de console que recebo, caso ajudem alguém: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
BringMyCakeBack
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
BringMyCakeBack
Artigo potencialmente útil de 29/12/2014 sobre este tópico: macworld.com/article/2861406/… E sim, eu experimentei esses mesmos sintomas, já há anos. Suspiro.
precisa saber é o seguinte
@JohnnyUtahh Eu vi esse artigo - e comentei lá, mais de dois meses atrás (role para baixo nos comentários).
mweiss
Obrigado @mweiss, útil. Separadamente: proponho que coletivamente escrevamos uma carta concisa e "aberta" para a Apple (com a intenção óbvia de corrigir a sincronização do iTunes + iOS). Cada um de nós tenta encontrar um representante significativo da Apple que conhecemos - quanto mais alto no organograma da Apple, melhor - e entregamos pessoalmente a mesma cópia exata da carta. Possivelmente envie via apple.com - sistemas de "feedback on-line" também. (continuação ...)
Johnny Utahh

Respostas:

5

Embora não haja documentação oficial da Apple, você ainda pode obter algumas informações assistindo o iTunes e o iOS fazendo suas coisas. Isso pode ser feito monitorando os arquivos de log de ambos; no iPhone, isso pode ser feito através de uma conexão USB. Aqui está um pouco do que eu já vi o iPhone fazendo nos estágios de sincronização "waiting for xy":

  • Depois de copiar novas mídias para o iPhone, a mídia precisa ser indexada, por exemplo, existem metadados a serem processados, miniaturas precisam ser criadas etc. Até que isso seja feito, a mídia não pode ser exibida corretamente nos aplicativos correspondentes do iPhone, portanto, o iTunes aguarda o serviço do iPhone Media Indexer para concluir seu trabalho.

  • Ao copiar novos aplicativos para um iPhone, os .ipaarquivos compactados precisam descompactar e instalar, por exemplo, registrar-se na tela inicial do iPhone, nas listas de aplicativos, nos bancos de dados de extensão de arquivo etc., isso é feito durante os estágios da sincronização.

  • A pesquisa de destaque pode precisar de tempo para indexar novos arquivos, o iTunes também espera por isso (nem sempre, mas às vezes!)

  • Quando o iTunes transfere arquivos para um iPhone, ele sempre verifica o conteúdo do arquivo de várias maneiras, sendo a integridade do arquivo ou os hashes comparados. Esses processos precisam de bastante tempo, dependendo do tamanho dos dados transferidos, e o iTunes aguarda uma verificação bem-sucedida para concluir a sincronização.

  • Quando há falhas de cópia detectadas por qualquer um dos métodos de verificação, o iTunes copia os arquivos novamente. Geralmente, esses processos não são exibidos pelo iTunes; isso é feito durante o processamento "Aguardando a cópia de itens".

  • O iTunes também aguardará o término dos processos de cópia com êxito; existem fluxos e soquetes para fechar quando os dados forem transferidos entre computadores. Embora isso deva acontecer instantaneamente, às vezes há falhas e o iPhone precisa de algum tempo.

  • Em geral, você pode dizer que o iTunes utiliza esses estágios para verificação e correção de erros, além de realizar trabalhos "complementares". Eles são extremamente úteis, especialmente quando se usa a sincronização WiFi, que é muito mais suscetível a erros do que o USB.

Editar : para visualizar os arquivos de log de um iPhone / iPad, não é necessário fazer o jailbreak. A melhor ferramenta provavelmente é libimobiledeviceum pacote de software livre de código aberto licenciado sob LGPL 2.1 . É capaz de lidar com um dispositivo iOS sem a necessidade do iTunes, mesmo em máquinas Linux. Embora tenha sido projetado para máquinas Linux, ele também pode ser executado no Mac, por exemplo, compilando o código-fonte ou, ainda mais fácil, instalando através do homebrew . Embora eu esteja sempre usando-o em máquinas Linux, isso deve funcionar da mesma maneira no Mac OS X.

Você provavelmente precisa emparelhar o seu iPhone primeiro, use o idevicepairbinário para isso. Ele deve encontrar o iPhone conectado por USB por conta própria; caso contrário, tente passar o UUID do seu dispositivo. Após o emparelhamento ter sido bem-sucedido (ele exibirá uma mensagem de sucesso na interface do terminal), use o idevicesyslogaplicativo -para visualizar os arquivos de log do seu iPhone. Ele se conectará syslogautomaticamente ao soquete do seu dispositivo; caso contrário, você poderá passar o UUID novamente. Todas as mensagens de log serão postadas stdoutno seu computador, por exemplo, na saída do terminal.

Também há software proprietário que permite ler os logs no seu dispositivo iOS, mas libimobiledevicecomo uma ferramenta de linha de comando e de código aberto deve ser preferida.

LukeLR
fonte
Você poderia fornecer mais detalhes sobre como monitorar os arquivos de log?
mweiss
@mweiss Atualizei meu post para incluir informações sobre isso;)
LukeLR
-1

Penso que no processo "Aguardando a cópia do item", o iTunes verifica os itens que devem ser copiados, conta os itens e calcula o tempo estimado da cópia. Até arquivos a serem copiados, o tempo de espera aumenta.

Harshil
fonte
Fiquei com a impressão de que o que você descreve é ​​o que acontece durante o processo "Preparando para copiar itens". Você tem alguma evidência de que isso é o que acontece durante "Aguardando a cópia de itens"?
mweiss