คำตอบอย่างรวดเร็วคือใช่เราทำได้!
ก่อนที่ฉันจะไปที่ส่วน " วิธีการทำงาน " ต่อไปนี้เป็นบันทึกบางส่วนเกี่ยวกับโปรแกรมแก้ไข / แฮ็ก / แก้ไขของฉัน ตั้งแต่เริ่มต้นเป้าหมายหลักคือ:
ทำการปรับเปลี่ยนทั้งหมดให้น้อยที่สุด
เราต้องการให้การตั้งค่า Xcode เป็นต้นฉบับมากที่สุด
พยายามหลีกเลี่ยงการแพตช์หรือแก้ไขไฟล์ใด ๆ
เราต้องการให้ไฟล์ทั้งหมดไม่ถูกแตะต้องและรักษาเนื้อหาต้นฉบับไว้
พยายามหลีกเลี่ยงการย้ายหรือคัดลอกไฟล์ไปรอบ ๆ เว้นแต่จำเป็นจริงๆ
ฉันสามารถรักษาเป้าหมายทั้งหมดนั้นไว้ได้ เกือบทุกอย่างทำได้โดยการสร้าง symlinks ต้องเปลี่ยน symlink ที่มีอยู่เพียงรายการเดียวและเราจะสำรองข้อมูลก่อนเปลี่ยนในกรณี
หากคุณไม่เชี่ยวชาญในการใช้งานเทอร์มินัลฉันขอแนะนำให้คุณคัดลอก / วางคำสั่งเทอร์มินัลทั้งหมดจากการตอบกลับของฉันไปยังเทอร์มินัลของคุณเพื่อหลีกเลี่ยงการพิมพ์ผิด โปรดทราบว่าแม้แต่การเว้นวรรคการอ้างอิงและโดยเฉพาะการใช้ตัวพิมพ์ใหญ่ก็มีความสำคัญ คัดลอก / วางทีละบรรทัดไม่เกินหนึ่งบรรทัดพร้อมกันและกด return หลังจากแต่ละบรรทัดที่วางเพื่อดำเนินการคำสั่ง หากการดำเนินการใด ๆ แจ้งให้คุณป้อนรหัสผ่านนี่จะเป็นรหัสผ่านของผู้ใช้ผู้ดูแลระบบที่ลงชื่อเข้าใช้ในปัจจุบัน (การกดแป้นพิมพ์ของคุณจะไม่ปรากฏขึ้นในขณะที่พิมพ์นี่เป็นเรื่องปกติไม่ต้องกังวลเพียงแค่พิมพ์รหัสผ่านต่อไปและกด return; - ลองหากคุณพิมพ์ผิดและได้รับแจ้งอีกครั้ง)
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะเริ่มตรวจสอบให้แน่ใจว่าเงื่อนไขต่อไปนี้เป็นจริง:
- คุณเข้าสู่ระบบในฐานะผู้ใช้ผู้ดูแลระบบ
- คุณได้เริ่ม Terminal.app (แอพพลิเคชั่น / ยูทิลิตี้) และหน้าต่างเทอร์มินัลเปิดอยู่
- คุณมีสำเนาของ Xcode3 (เช่น 3.2.5) และ Xcode4 ดิสก์อิมเมจ (DMG) หรือตัวติดตั้งที่พร้อมใช้งาน
- หากคุณติดตั้ง Xcode ไว้แล้วให้ลองถอนการติดตั้งก่อนเพื่อให้คุณสามารถเริ่มต้นด้วยการตั้งค่าใหม่ / ใหม่ทั้งหมด การถอนการติดตั้ง Xcode จะไม่ลบค่ากำหนดโครงร่างสีหรือการปรับแต่งการผูกคีย์ ตามหลักการแล้วคุณจะเริ่มต้นด้วยระบบที่ไม่มีเวอร์ชัน Xcode (ไม่ได้ติดตั้ง 3 หรือ 4)
ขั้นตอนที่ 1: การติดตั้ง Xcode3
สำคัญ : อย่าติดตั้งแพ็คเกจ" System Tools " หรือ " Unix Development " ของ Xcode3
ไม่ว่าคุณจะต้องการติดตั้ง " Mac OS X 10.4 SDK " และ / หรือ " เอกสารประกอบ " ก็แล้วแต่คุณ หากเป็น Xcode3 ที่มี iOS SDK ไม่ว่าคุณจะติดตั้งหรือไม่ก็ตามก็ขึ้นอยู่กับคุณด้วย
คุณมีอิสระที่จะเลือกโฟลเดอร์ปลายทางสำหรับการติดตั้งของคุณ สำหรับคู่มือนี้ฉันได้เลือก " / Xcode3 " แต่อย่าลังเลที่จะเลือกอันอื่น ตรวจสอบให้แน่ใจว่าได้ปรับเปลี่ยนคำสั่งเทอร์มินัลทั้งหมดตามนั้น
ลำดับของขั้นตอนที่ให้ไว้ที่นี่มักจะไม่สำคัญมากนัก แต่ฉันขอแนะนำให้คุณอย่าสลับขั้นตอนที่ 1 และขั้นตอนที่ 2 Xcode จะติดตั้งไฟล์สองสามไฟล์นอกโฟลเดอร์ปลายทางที่เลือกเสมอและเชื่อใจฉันในที่สุดคุณก็ต้องการ Xcode4 เวอร์ชันของไฟล์เหล่านั้นบนดิสก์ของคุณ ด้วยการติดตั้ง Xcode3 ก่อน Xcode4 คุณสามารถมั่นใจได้ว่า Xcode4 จะเขียนทับไฟล์เหล่านั้นหากจำเป็น ฉันเคยสลับขั้นตอนที่ 1 และ 2 และในที่สุดฉันก็มีปัญหาแปลก ๆ ที่อาจเกี่ยวข้องกับลำดับที่ไม่ถูกต้อง (ฉันไม่สามารถพูดได้อย่างแน่นอน แต่หลังจากติดตั้งใหม่ตามลำดับที่ถูกต้องปัญหาก็หายไป)
ขั้นตอนที่ 2: การติดตั้ง Xcode4
เลือกแพ็คเก็ตที่คุณต้องการ แนะนำให้ติดตั้ง " System Tools " แต่ไม่จำเป็นอย่างยิ่ง (แม้ว่าคนส่วนใหญ่จะพลาดฟังก์ชันนั้นไม่ช้าก็เร็ว)
อีกครั้งอย่าลังเลที่จะเลือกโฟลเดอร์เป้าหมายที่คุณต้องการ สำหรับคำแนะนำนี้ฉันเลือกโฟลเดอร์เป้าหมายปกติ " / Developer " หากคุณใช้โฟลเดอร์อื่นให้แก้ไขคำสั่งเทอร์มินัลทั้งหมดตามนั้น
ขั้นตอนที่ 3: กู้คืนการสนับสนุน SDK 10.4 / 10.5
สลับไปที่หน้าต่างเทอร์มินัลของคุณและเรียกใช้คำสั่งต่อไปนี้:
cd / ผู้พัฒนา / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk
แน่นอนรันคำสั่งสำหรับ 10.4u เท่านั้นหากคุณติดตั้ง SDK 10.4 ในขั้นตอนที่ 1
แค่นี้ก็เพียงพอแล้วที่จะนำ SDKs 10.5 (และอาจเป็น 10.4) กลับไปที่รายการการเลือกใน Xcode4 ลองดูสิถ้าคุณชอบ เปิด Xcode4 เปิดโปรเจ็กต์ลองเปลี่ยน SDK ที่เลือก มันง่ายใช่มั้ย? อย่าลืมปิด Xcode4 อีกครั้ง (แอปพลิเคชันไม่ใช่แค่หน้าต่าง) ก่อนดำเนินการขั้นตอนต่อไป
ขั้นตอนที่ 4: การกู้คืนการสนับสนุน GCC 4.0
หากคุณไม่ได้ติดตั้ง MacOS 10.4 SDK หรือหากคุณไม่มีแผนที่จะใช้งานคุณสามารถข้ามขั้นตอนนี้ได้อย่างปลอดภัยและดำเนินการตามขั้นตอนที่ 5
ในการใช้ SDK 10.4 คุณจะต้องใช้ GCC 4.0, GCC 4.2 จะไม่ทำงาน Apple อ้างว่า GCC 4.2 เข้ากันไม่ได้กับ SDK 10.4 ถ้าคุณถามฉันนี่เป็นเรื่องหลอกลวง ฉันได้เขียนทับข้อ จำกัด นี้มากกว่าหนึ่งครั้งแล้วและไม่เคยมีปัญหาเล็กน้อยที่สุดเพราะมัน การแก้ไข SDK 10.4 จะเป็นเรื่องง่ายเพื่อให้ Xcode อนุญาตให้คุณใช้ GCC 4.2 ได้ แต่เป้าหมายของฉันคือหลีกเลี่ยงการแก้ไขไฟล์ทั้งหมดดังนั้นเราจึงเพิ่มการสนับสนุน GCC 4.0 กลับไปที่ Xcode ซึ่งเป็นสิ่งที่ดีเช่นกันเพราะ บางโครงการขึ้นอยู่กับ GCC 4.0 จริงๆ (เช่นมีข้อบกพร่องบางอย่างใน GCC 4.2 ที่ป้องกันไม่ให้รหัสแอสเซมบลีแบบอินไลน์ที่ถูกต้องคอมไพล์โดยไม่มีข้อผิดพลาดในขณะที่โค้ดเดียวกันรวบรวมอย่างไร้ที่ติบน GCC 4.0 และ GCC 4.4)
กลับไปที่เทอร์มินัล:
cd / ผู้พัฒนา / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*
cd / ผู้พัฒนา / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1
ตอนนี้เราได้กู้คืนการสนับสนุน GCC 4.0 เต็มรูปแบบแล้วยกเว้นข้อเท็จจริงที่ว่า GCC 4.0 ยังไม่สามารถเลือกได้ใน Xcode4 นั่นเป็นเพราะ Xcode4 ไม่มีปลั๊กอินคอมไพเลอร์ GCC 4.0 อีกต่อไป โชคดีที่ปลั๊กอิน Xcode3 ทำงานใน Xcode4 ได้เช่นกันมีเพียงตำแหน่งเท่านั้นที่เปลี่ยนไปอย่างสิ้นเชิง ตอนนี้ Apple ซ่อนปลั๊กอินเหล่านั้นไว้ลึก ๆ ภายในชุดรวมและดูเหมือนว่าจะมีเพียงปลั๊กอินที่ใช้งานได้การวางไว้ในตำแหน่งเดิมดูเหมือนจะไม่มีผลใด ๆ
cd / Developer / Library / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-ins
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin"
ตอนนี้เปิด Xcode4 อีกครั้งเปิดโปรเจ็กต์แล้วลองเลือกคอมไพเลอร์ คุณควรมี GCC 4.0 กลับมาในรายการ ตอนนี้คุณสามารถเลือก SDK 10.4 หรือ 10.5, GCC 4.0 ได้แล้วและคุณไม่ควรมีปัญหาในการสร้างไบนารี PPC เพียงเลือก " อื่น ๆ ... " สำหรับการตั้งค่าการสร้าง " สถาปัตยกรรม " และป้อน " ppc " ด้วยตนเองจากนั้นแก้ไข " สถาปัตยกรรมที่ถูกต้อง " เพื่อรวม " ppc " เกือบเสร็จแล้วยกเว้นว่าการพยายามสร้างไบนารี PPC โดยใช้ GCC 4.2 และ SDK 10.5 จะยังคงล้มเหลว
ขั้นตอนที่ 5: การกู้คืนการสนับสนุน PPC สำหรับ GCC 4.2
เนื่องจาก Apple สนับสนุนเฉพาะแพลตฟอร์ม Intel ใน Xcode4 จึงไม่ได้สร้างเครื่องมือ GCC 4.2 ทั้งหมดที่รองรับ PPC มีเครื่องมือสำคัญอย่างหนึ่งที่ไม่มีการสนับสนุน PPC เครื่องมือนี้มีชื่อว่า " as " และเป็น GNU Assembler ในการคอมไพล์ไบนารี ppc / ppc64 ด้วย GCC 4.2 เราจำเป็นต้องใช้เวอร์ชัน " เป็น " ที่รองรับ ppc / ppc64 นี่เป็นไฟล์เดียวเท่านั้น (จริงๆแล้วมันก็เป็น symlink ด้วย) เราต้องย้ายไปก่อน (ทำสำเนาสำรอง) ก่อนที่เราจะสามารถแทนที่ด้วย symlink:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv เป็น as.bak
sudo ln -s / Xcode3 / usr / bin / เป็น.
ขั้นตอนที่ 6: ไม่มีขั้นตอนที่ 6
นั่นคือคนทั้งหมด เมื่อพิจารณาว่ามันง่ายแค่ไหนคุณสามารถจินตนาการได้ว่า Apple ไม่ได้ทิ้งการรองรับ SDK 10.4 / 10.5 หรือ ppc / ppc64 หรือ GCC 4.0 อย่างแน่นอนเพราะนี่เป็นสิ่งจำเป็นพวกเขาจึงทิ้งทั้งหมดนั้นเพราะต้องการทิ้ง
ฉันหวังว่าการตั้งค่านี้จะใช้งานได้ดีสำหรับคุณเช่นเดียวกับฉัน ฉันสามารถรวบรวมโปรเจ็กต์เก่าทั้งหมดของฉันใน Xcode4 โดยไม่มีการเปลี่ยนแปลงใด ๆ ที่สำคัญยกเว้นว่าจะต้องเปลี่ยนเส้นทางการค้นหาที่นี่และที่นั่น
PS:
อาจดูแปลกที่ฉันตอบคำถามของตัวเองที่นี่ แต่เนื่องจากฉันได้ค้นพบวิธีแก้ปัญหานี้ทั้งหมดด้วยตัวเองฉันจึงต้องการแบ่งปันความรู้ของฉันกับชุมชนเพราะฉันเชื่อว่านี่เป็นข้อมูลที่มีค่าสำหรับ นักพัฒนา MacOS ทั้งหมดที่นั่น คำถามนี้ถูกถามหลายครั้งในหลาย ๆ ที่และจนถึงตอนนี้ฉันไม่เคยเห็นใครคิดวิธีแก้ไขแบบเดียวกันนี้ แบ่งปันความมั่งคั่งกระจายความรู้และอื่น ๆ คุณรู้ว่าฉันหมายถึงอะไร
หากคุณยังคงมีปัญหา / คำถาม:
หากคุณมีคำถามเพิ่มเติมเกี่ยวกับหัวข้อนี้หรือหากคุณยังมีปัญหาในการสร้างโครงการเก่าของคุณอย่างถูกต้องโปรดทำตามที่ Stack Overflow ออกแบบมาสำหรับ: คลิกที่ "ถามคำถาม" ที่มุมขวาบนของหน้านี้และสร้างคำถามใหม่ . วิธีนี้ทั้งชุมชนจะช่วยคุณแก้ปัญหาเหล่านั้นได้เนื่องจากปัญหาอาจไม่เกี่ยวข้องโดยตรง (อาจไม่ได้เป็นทางอ้อม) กับการแฮ็กนี้
ฉันอยากจะแนะนำให้คุณพูดถึงข้อเท็จจริงที่ว่าคุณใช้แฮ็คนี้ในตอนต้นของคำถามของคุณ บางทีคุณอาจต้องการเชื่อมโยงโดยตรงกับคำถามนี้เพื่อให้ผู้ที่ไม่เคยได้ยินเกี่ยวกับแฮ็คนี้สามารถค้นหาได้อย่างง่ายดาย มิฉะนั้นคนส่วนใหญ่จะค่อนข้างสับสนเมื่อคุณพูดถึง SDK 10.4 / 10.5, PPC หรือ GCC 4.0 ร่วมกับ Xcode4 ซึ่งไม่สนับสนุนทั้งสองอย่างนี้อย่างเป็นทางการ คุณอาจได้รับความคิดเห็นที่ค่อนข้างโง่แทนการตอบกลับที่ดีหากคุณลืมพูดถึงแฮ็คนี้
โปรดอย่าโพสต์คำถามหรือปัญหาของคุณที่นี่ไม่ว่าจะเป็นการตอบกลับหรือแสดงความคิดเห็น การโพสต์เป็นคำตอบไม่มีเหตุผลเพราะไม่มีการตอบกลับและไม่มีวิธีใดที่ผู้คนจะตอบกลับคุณได้การใช้ความคิดเห็นอื่น ๆ และความคิดเห็นอาจไม่เพียงพอสำหรับการตอบกลับคำถามของคุณหรือวิธีแก้ปัญหาที่เหมาะสมสำหรับคุณ ปัญหา. และการโพสต์เป็นความคิดเห็นหมายความว่าคุณถูก จำกัด ให้มีพื้นที่ว่างน้อยมากและการติดตามความคิดเห็นตอบกลับจะทำได้ยากเนื่องจากความคิดเห็นไม่มีลำดับชั้นที่เหมือนต้นไม้ ขอขอบคุณ.
แน่นอนความคิดเห็นประเภทอื่น ๆ รวมถึงการตอบกลับที่ดีกว่าสำหรับคำถามเดิมยินดีต้อนรับเสมอ ;-)