我将问题归结为TLS握手(感谢下面的jonnydigitol!)和主机与23.211.148.217之间的总共63个数据包,它是init.iTunes.apple.com-在启动iTunes时执行。握手完成后,一切正常,您可以使用iTunes。但是您必须在启动时将流量引导到该主机,否则在iTunes尝试连接到init.iTunes并引发错误弹出窗口时,每首歌曲的更改都会出错。
考虑一下jonnydigitol的以下答案-您可以通过手机互联网或通过隧道连接到init.iTunes.apple.com,启动iTunes并永远不会将其关闭-然后它可以在没有“无限”互联网连接的情况下继续工作。
如何通过在可以响应ping的localhost上安装自己的Web服务器来真正“解决”该问题:
(检查您的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
注意响应并启动您自己的执行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,并在一个小时的时间内通过完整的库进行了重建。现在一切恢复正常,但是我对苹果在这里感到非常失望。我还不习惯他们发布如此糟糕的代码。
对我而言,唯一的出路是使用Pacifist解压缩从Apple下载的旧iTunes pkg,然后解压缩该应用程序,然后重建完整的iTunes库(巨大)。我有时习惯于在Windows系统上使用这种黑客手段,但是我不记得曾经在OSX上做过这样的事情。到现在。接下来是什么,拆卸?
苹果,您遇到软件质量问题。只是我的2美分。
新闻-Apple已处理了我的错误报告,并将其状态分配为“重复29741441(OPEN)”。