この問題は、TLSハンドシェイク(アイデアについては以下のjonnydigitolに感謝!)と、ホストと23.211.148.217(init.iTunes.apple.com-iTunesの起動時に実行される)間の合計63パケットにまでさかのぼりました。 。このハンドシェイクが完了すると、すべてが正常になり、iTunesを使用できます。ただし、起動時にこのホストにトラフィックをトンネルする必要があります。そうしないと、iTunesがinit.iTunesへの接続を試行してエラーポップアップをスローするときに、曲が変更されるたびにエラーが発生します。
以下のjonnydigitolの回答を検討してください。携帯電話のインターネットまたはトンネルを使用してinit.iTunes.apple.comに接続し、iTunesを起動して電源をオフにすることはできません。
pingに応答するlocalhostに独自のWebサーバーをインストールして、問題を本当に「修正」する方法:
(iTunesが最新であることを確認してください。すでに修正されている可能性があります)
「アプリケーション」->「ユーティリティ」->「ターミナル」を開き、次の行を入力します
homebrewがインストールされていない場合、最初にこれを行います:
/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
応答を記録し、pingを受け取る独自の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に戻り、1時間の努力で完全なライブラリで再構築しました。すべてが再び動作するようになりましたが、Appleには本当にがっかりしています。私は(まだ)そのような悪いコードをリリースすることに慣れていません。
私にとって唯一の方法は、Pacifistを使用して、Appleからダウンロードした古いiTunes pkgを解凍し、アプリを抽出してから、完全なiTunesライブラリ(巨大)を再構築することでした。これは時々Windowsシステムで必要になることに慣れたハッキングのようなものですが、OSXでそのようなことをしなければならなかったことを思い出せません。今まで。次は何ですか、分解しますか?
Apple、ソフトウェアの品質に問題があります。ちょうど私の2セント。
ニュース-アップルはバグレポートを処理し、ステータスを「duplicate of 29741441(OPEN)」に割り当てました。