나는 문제를 TLS 핸드 셰이크 (아이디어가 아래의 jonnydigitol 덕분에!)와 호스트와 23.211.148.217 사이의 총 63 개의 패킷으로 init.iTunes.apple.com으로 추적했습니다. 이는 iTunes가 시작될 때 실행됩니다. . 이 핸드 셰이크가 완료되면 모든 것이 정상이며 iTunes를 사용할 수 있습니다. 그러나 시동시이 호스트로 트래픽을 터널링해야합니다. 그렇지 않으면 iTunes가 init.iTunes에 연결하려고 시도 할 때마다 노래가 변경 될 때마다 오류가 발생하고 오류 팝업이 표시됩니다.
jonnydigitol의 아래 답변을 고려하십시오. 휴대 전화 인터넷 또는 터널을 통해 init.iTunes.apple.com에 연결하고 iTunes를 시작한 후 절대로 끄지 마십시오. 인터넷 연결없이 "무한"하게 작동합니다.
ping에 응답하는 로컬 호스트에 자체 웹 서버를 설치하여 문제를 실제로 해결하는 방법 :
(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
응답을 기록하고 핑을 수행하는 자체 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를 사용하여 Apple에서 다운로드 한 이전 iTunes pkg의 포장을 풀고 앱을 추출한 다음 전체 iTunes 보관함 (거대한)을 다시 작성하는 것입니다. 이것은 때때로 Windows 시스템에서 필요했던 일종의 해킹이지만 OSX에서 그런 일을해야한다는 것을 기억할 수 없습니다. 지금까지. 다음은 무엇입니까?
Apple, 소프트웨어 품질 문제가 있습니다. 그냥 내 2 센트.
뉴스-Apple에서 내 버그 보고서를 처리하고 "OPEN (duplicate of 29741441)"상태를 지정했습니다.