Ho rintracciato il problema fino a una stretta di mano TLS (grazie a jonnydigitol qui 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 all'avvio di iTunes . Una volta completata questa stretta di mano, tutto va bene e puoi usare iTunes. Ma devi tunnelizzare il traffico verso questo host all'avvio, altrimenti ricevi l'errore con ogni cambio di canzone mentre iTunes prova e prova a connettersi a init.iTunes e genera un popup di errore.
Considera la risposta di seguito di jonnydigitol: puoi connetterti tramite Internet cellulare o un tunnel a init.iTunes.apple.com, avviare iTunes e non spegnerlo mai e poi continua a funzionare senza una connessione Internet "all'infinito".
Come 'risolvere' davvero il problema installando il proprio server Web su localhost che risponde al ping:
(Verifica che iTunes sia aggiornato, potrebbe esserci già una soluzione)
Apri Applicazioni-> Utilità-> Terminale 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 a local
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 root.
openssl genrsa -out rootCA.key 2048
openssl genrsa -des3 -out rootCA.key 2048
Inserisci la frase che preferisci
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
Inserisci la tua passphrase. Lascia tutte le righe vuote tranne
Nome comune (ad es. FQDN del server o nome TUO) []: init.itunes.apple.com
E la stessa cosa ancora una volta (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
Nota la risposta e avvia il tuo 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 minimizzalo, apri Safari
Vai su https://init.itunes.apple.com
Se ricevi un avviso relativo al certificato di attendibilità, modifica la politica in "fidati sempre". Se la pagina si carica in modo non corretto, tutto va 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, inviato una segnalazione di bug ad Apple e, dopo aver sentito nulla da loro, sono tornato al precedente iTunes e ricostruito con la libreria completa in un'ora di sforzo. Ora tutto funziona di nuovo, ma sono davvero deluso da Apple qui. Non sono (ancora) abituato a rilasciare un codice così cattivo.
L'unica via d'uscita per me era usare Pacifist per decomprimere un vecchio pacchetto iTunes che ho scaricato da Apple ed estrarre l'app, quindi ricostruire la libreria iTunes completa (che è ENORME). Questo è un tipo di hacking a cui mi sono abituato a essere necessario sui sistemi Windows a volte, ma non ricordo di dover mai fare una cosa del genere su OSX. Fino ad ora. Qual è il prossimo, smonta?
Apple, hai un problema di qualità del software. Solo i miei 2 centesimi.
Notizie - Apple ha elaborato la mia segnalazione di bug e gli ha assegnato lo stato "duplicato di 29741441 (OPEN)".