ฉันติดตามปัญหาไปที่การจับมือ TLS (ขอบคุณ jonnydigitol ด้านล่างสำหรับแนวคิด!) และทั้งหมด 63 แพ็กเก็ตระหว่างโฮสต์และ 23.211.148.217 ซึ่งเป็น init.iTunes.apple.com - ซึ่งถูกดำเนินการเมื่อ iTunes เริ่มทำงาน . เมื่อการจับมือนี้เสร็จสมบูรณ์ทุกอย่างเรียบร้อยและคุณสามารถใช้ iTunes แต่คุณต้องขุดทราฟฟิกไปที่โฮสต์นี้เมื่อเริ่มต้นมิฉะนั้นคุณจะได้รับข้อผิดพลาดกับการเปลี่ยนแปลงแต่ละเพลงทุกครั้งที่ iTunes พยายามและพยายามเชื่อมต่อกับ init.iTunes และพ่นป๊อปอัปข้อผิดพลาด
พิจารณาคำตอบด้านล่างโดย jonnydigitol - คุณสามารถเชื่อมต่อผ่านอินเทอร์เน็ตโทรศัพท์มือถือหรืออุโมงค์เพื่อเริ่มต้นที่ iTunes.apple.com เริ่ม iTunes และไม่เคยปิด - แล้วมันจะทำงานโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต "อนันต์"
วิธีการ 'แก้ไขปัญหา' โดยติดตั้งเว็บเซิร์ฟเวอร์ของคุณเองบน localhost ที่ตอบ ping:
(ตรวจสอบว่า iTunes ของคุณเป็นรุ่นล่าสุดอาจมีการแก้ไขแล้ว)
เปิด Applications-> Utilities-> Terminal และป้อนบรรทัดต่อไปนี้
หากคุณไม่ได้ติดตั้งโฮมบรูว์ให้ทำสิ่งนี้ก่อน:
/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 ของคุณเองที่จัดการ 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
เปิดเทอร์มินัลทิ้งไว้หรือย่อให้เล็กสุดเปิด Safari
ไปที่https://init.itunes.apple.com
หากคุณได้รับคำเตือนเกี่ยวกับใบรับรองความน่าเชื่อถือให้เปลี่ยนนโยบายเป็น "เชื่อถือเสมอ" หากหน้าโหลดไม่สิ้นสุดทุกอย่างก็ดี
เปิด iTunes ข้อผิดพลาดควรหายไป
สำหรับอนาคตหากคุณต้องการใช้ iTunes ให้เปิด Terminal และเรียกใช้
sudo node ims.js
จากนั้นเริ่ม iTunes
หรือเปลี่ยนกลับเป็นเวอร์ชันเก่ากว่า
ฉันเลิกใช้งานไปแล้วส่งรายงานข้อผิดพลาดไปยัง Apple และหลังจากได้ยินอะไรจากพวกเขาก็ย้อนกลับไปที่ iTunes ก่อนหน้าและสร้างใหม่โดยใช้ห้องสมุดที่สมบูรณ์ภายในเวลาหนึ่งชั่วโมง ตอนนี้ทุกอย่างทำงานได้อีก แต่ฉันผิดหวังจริง ๆ กับ Apple ที่นี่ ฉันยังไม่คุ้นเคยกับพวกเขาที่ปล่อยโค้ดที่ไม่ดีออกมา
ทางออกเดียวสำหรับฉันคือใช้ Pacifist เพื่อแยก iTunes pkg ที่เก่ากว่าซึ่งฉันดาวน์โหลดจาก Apple และแตกแอพแล้วสร้างคลัง iTunes ที่สมบูรณ์ (ซึ่งมีขนาดใหญ่มาก) นี่คือการแฮ็คที่ฉันคุ้นเคยกับความจำเป็นในระบบ Windows บางครั้ง แต่ฉันจำไม่ได้ว่าฉันต้องทำสิ่งนี้ใน OSX จนถึงตอนนี้. อะไรต่อไปถอดแยกชิ้นส่วน?
Apple คุณมีปัญหาคุณภาพซอฟต์แวร์ แค่ 2 เซ็นต์ของฉัน
ข่าว - Apple ได้ประมวลผลรายงานข้อผิดพลาดของฉันและกำหนดสถานะเป็น "ซ้ำจาก 29741441 (OPEN)"