Ho rintracciato il problema fino a un handshake TLS (grazie a jonnydigitol sotto per l'idea!) e un totale di 63 pacchetti tra l'host e 23.211.148.217, che è init.iTunes.apple.com - che viene eseguito quando iTunes è avviato. Una volta completata questa stretta di mano, tutto va bene e puoi utilizzare iTunes. Ma devi eseguire il tunneling del traffico verso questo host all'avvio, altrimenti ottieni l'errore con ogni singolo cambio di brano man mano che iTunes tenta di connettersi a init.iTunes e genera un popup di errore.
Considera la risposta in basso di jonnydigitol: puoi connetterti tramite internet mobile o un tunnel a init.iTunes.apple.com, avviare iTunes e non spegnerlo mai, quindi funziona senza una connessione Internet "infinitamente".
Come risolvere veramente il problema installando il proprio server Web su localhost che risponde al ping:
(Controlla che il tuo iTunes sia aggiornato, potrebbe esserci già una correzione)
Apri il terminale Applicazioni- > Utilità- > e inserisci le seguenti righe
Se non hai installato homebrew, prima fai questo:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Assicurati che openssl e node.js siano installati
brew install openssl node wget
Per reindirizzare init.apple.itunes.com in locale
echo '127.0.0.1 init.iTunes.apple.com' | sudo tee -a /etc/hosts
Dovrai fornire la tua password. Quindi, crea e registra il tuo certificato di origine.
openssl genrsa -out rootCA.key 2048
openssl genrsa -des3 -out rootCA.key 2048
Inserisci una frase che ti piace
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
Inserisci la tua passphrase. Lascia tutte le linee vuote tranne
Nome comune (ad esempio nome FQDN del server o TUO nome) []: init.itunes.apple.com
E la stessa cosa una volta di più (stessa passphrase, stesso nome comune)
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 500 -sha256
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" device.crt
Rispondere alle note e avviare il proprio server https che accetta il ping
wget -O response.xml "https://itunes.apple.com/WebObjects/MZStore.woa/wa/initiateSession?ix=1"
echo "var t=require('tls');var f=require('fs');var xmlresp = f.readFileSync('response.xml');var options = {key:f.readFileSync('device.key'),cert:f.readFileSync('device.crt')};var server=t.createServer(options, function (request,response) {request.on('data', function (chunk) {request.write(xmlresp);});});server.listen(443, function() {});" > ims.js
sudo node ims.js
Lascia il terminale aperto o riduci a icona, apri Safari
Vai al link
Se ricevi un avviso sul certificato di fiducia, modifica il criterio in "fidati sempre". Se la pagina viene caricata in modo impeccabile, va tutto bene.
Apri iTunes. L'errore dovrebbe essere sparito.
Per il futuro, se vuoi usare iTunes, apri un Terminale ed esegui
sudo node ims.js
Quindi avvia iTunes.
In alternativa, ripristina una versione precedente.
Avevo rinunciato al problema, ho presentato una segnalazione di bug ad Apple e, dopo aver ascoltato nulla da loro, sono tornato al precedente iTunes e ricostruito dalla libreria completa in un'ora di sforzo. Tutto funziona di nuovo ora, ma sono davvero deluso da Apple qui. Non sono (ancora) abituato a rilasciare un codice così cattivo.
L'unica via d'uscita per me è stato usare Pacifist per decomprimere un vecchio pkg di iTunes che ho scaricato da Apple ed estrarre l'app, e quindi ricostruire la libreria completa di iTunes (che è ENORME). Questo è un tipo di hacking che mi sono abituato a essere necessario su sistemi Windows a volte, ma non riesco a ricordare che ho mai dovuto fare una cosa del genere su OSX. Fino ad ora. Quali sono le prossime, smontare?
Apple, hai un problema di qualità del software. Solo i miei 2 centesimi.
Novità - Apple ha elaborato il mio bug report e gli ha assegnato lo stato "duplicato di 29741441 (OPEN)".