Prześledziłem problem do uzgadniania TLS (dzięki pomysłowi Jonnydigitolu!) I łącznie 63 pakietów między hostem a 23.211.148.217, czyli init.iTunes.apple.com - który jest wykonywany po uruchomieniu iTunes . Po zakończeniu tego uzgadniania wszystko jest w porządku i można korzystać z iTunes. Ale podczas uruchamiania musisz tunelować ruch do tego hosta, w przeciwnym razie pojawia się błąd przy każdej zmianie piosenki, gdy iTunes próbuje nawiązać połączenie z init.iTunes i wyświetla wyskakujące okienko błędu.
Zastanów się nad odpowiedzią jonnydigitol - możesz połączyć się telefonem internetowym lub tunelem z init.iTunes.apple.com, uruchomić iTunes i nigdy go nie wyłączać - wtedy będzie działał bez połączenia z Internetem „nieskończenie”.
Jak naprawdę „naprawić” problem, instalując własny serwer WWW na localhost, który odpowiada na ping:
(Sprawdź, czy Twój iTunes jest aktualny, być może już istnieje poprawka)
Otwórz Aplikacje-> Narzędzia-> Terminal i wprowadź następujące wiersze
Jeśli nie masz zainstalowanego Homebrew, najpierw wykonaj następujące czynności:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Upewnij się, że openssl i node.js są zainstalowane
brew install openssl node wget
Aby przekierować init.apple.itunes.com na lokalny
echo '127.0.0.1 init.iTunes.apple.com' | sudo tee -a /etc/hosts
Musisz podać hasło. Następnie utwórz i zarejestruj swój własny certyfikat główny.
openssl genrsa -out rootCA.key 2048
openssl genrsa -des3 -out rootCA.key 2048
Wprowadź dowolne hasło, które chcesz
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
Wpisz swoje hasło. Pozostaw wszystkie linie puste, z wyjątkiem
Nazwa pospolita (np. Nazwa FQDN serwera lub Twoja nazwa) []: init.itunes.apple.com
I to samo jeszcze raz (to samo hasło, ta sama nazwa zwyczajowa)
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
Zanotuj odpowiedź i uruchom własny serwer https, który pobiera polecenie 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
Pozostaw terminal otwarty lub zminimalizuj go, otwórz Safari
Idź do https://init.itunes.apple.com
Jeśli pojawi się ostrzeżenie o certyfikacie zaufania, zmień zasadę na „zawsze ufaj”. Jeśli strona ładuje się w nieskończoność, wszystko jest w porządku.
Otwórz iTunes. Błąd powinien zniknąć.
W przyszłości, jeśli chcesz korzystać z iTunes, otwórz Terminal i uruchom
sudo node ims.js
Następnie uruchom iTunes.
Możesz też przywrócić starszą wersję.
Zrezygnowałem z tego problemu, przesłałem raport o błędzie do Apple, a po wysłuchaniu niczego od nich wycofałem się do poprzedniego iTunes i przebudowałem całą bibliotekę w ciągu godziny. Wszystko znów działa, ale Apple naprawdę mnie rozczarowuje. Nie jestem (jeszcze) przyzwyczajony do wydawania takiego złego kodu.
Jedynym wyjściem było dla mnie użycie Pacifist do rozpakowania starszego pakietu iTunes, który pobrałem z Apple i rozpakowałem aplikację, a następnie odbudowałem całą bibliotekę iTunes (która jest OGROMNA). Jest to rodzaj hakowania, do którego przyzwyczaiłem się czasami w systemach Windows, ale nie pamiętam, że musiałem robić coś takiego na OSX. Do teraz. Co dalej, zdemontować?
Apple, masz problem z jakością oprogramowania. Tylko moje 2 centy.
Wiadomości - Apple przetworzyło mój raport o błędzie i nadało mu status „duplikat 29741441 (OPEN)”.