Я простежив проблему аж до рукостискання TLS (спасибі jonnydigitol нижче за ідею!) Та загальної кількості 63 пакетів між хостом та 23.211.148.217, що є init.iTunes.apple.com - що виконується під час запуску iTunes . Як тільки це рукостискання завершиться, все добре, і ви можете використовувати iTunes. Але при запуску потрібно тунельний трафік до цього хоста, інакше ви отримуєте помилку з кожною зміною пісні під час iTunes і намагається підключитися до init.iTunes та видаляє спливаюче повідомлення про помилку.
Розгляньте нижченаведену відповідь jonnydigitol - ви можете підключитись через Інтернет мобільного телефону або тунель до init.iTunes.apple.com, запустити iTunes і ніколи не вимикати його - тоді він продовжує працювати без підключення до Інтернету "нескінченно".
Як реально "виправити" проблему, встановивши власний веб-сервер на localhost, який відповідає ping:
(Переконайтесь, що ваш iTunes оновлений, можливо, вже є виправлення)
Відкрийте Програми-> Утиліти-> Термінал та введіть наступні рядки
Якщо у вас немає встановленого домашнього перекладу, спочатку зробіть це:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Переконайтесь, що openssl і node.js встановлені
brew install openssl node wget
Щоб перенаправити init.apple.itunes.com на локальний
echo '127.0.0.1 init.iTunes.apple.com' | sudo tee -a /etc/hosts
Вам потрібно буде вказати свій пароль. Далі створіть та зареєструйте власний кореневий сертифікат.
openssl genrsa -out rootCA.key 2048
openssl genrsa -des3 -out rootCA.key 2048
Введіть будь-яку фразу, яка вам подобається
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
Введіть свою пропускну фразу. Залишайте всі рядки порожніми, крім
Загальна назва (наприклад, FQDN сервера або ВАШЕ ім'я) []: init.itunes.apple.com
І ще одне і те ж саме (та ж парольна фраза, однакова загальна назва)
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
Зауважте відповідь та запустіть свій власний https-сервер, який бере пінг
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
Залиште термінал відкритим або мінімізуйте його, відкрийте Safari
Перейдіть на сторінку https://init.itunes.apple.com
Якщо ви отримаєте попередження про довірений сертифікат, змініть політику на "завжди довіряти". Якщо сторінка завантажується нескінченно, все добре.
Відкрийте iTunes. Помилки не повинно бути.
Надалі, якщо ви хочете використовувати iTunes, відкрийте термінал і запустіть
sudo node ims.js
Потім запустіть iTunes.
Крім того, поверніться до старішої версії.
Я відмовився від цього питання, подав звіт про помилку в Apple, і, не почувши від них нічого, відкотився до попереднього iTunes і відновив повну бібліотеку за години тривалих зусиль. Зараз все знову працює, але тут я дуже розчарований Apple. Я не (ще) звик до них, випускаючи такий поганий код.
Єдиним виходом для мене було використання Pacifist для розпакування старого iTunes pkg, який я завантажив з Apple, і витягнути додаток, а потім відновити повну бібліотеку iTunes (яка ВЕЛИЧЕЗНА). Це такий вид злому, який я звик вимагати іноді в системах Windows, але я не можу згадати, що мені довелося робити таке на OSX ніколи. До цих пір. Що далі, розібрати?
Apple, у вас є проблема якості програмного забезпечення. Всього мої 2 копійки.
Новини - Apple обробила мій звіт про помилку та призначила йому статус "дублікат 29741441 (OPEN)".