Jawaban cepatnya adalah: Ya, kami bisa!
Sebelum saya sampai ke bagian " bagaimana hal itu dilakukan ", berikut adalah beberapa catatan tentang patch / hack / fix saya. Sejak awal, tujuan utamanya adalah:
Jaga semua modifikasi seminimal mungkin.
Kami ingin menjaga pengaturan Xcode seasli mungkin.
Dengan segala cara, cobalah untuk menghindari menambal atau memodifikasi file apa pun.
Kami ingin semua file tetap tidak tersentuh dan menyimpan konten aslinya.
Cobalah untuk menghindari memindahkan atau menyalin file, kecuali benar-benar diperlukan.
Saya bisa menjaga semua tujuan itu. Hampir semuanya dilakukan dengan membuat symlink. Hanya satu symlink yang ada yang harus diganti dan kami akan mencadangkannya sebelum diganti, untuk berjaga-jaga.
Jika Anda bukan ahli dalam pengoperasian terminal, saya sangat menyarankan Anda untuk menyalin / menempel semua perintah terminal dari balasan saya ke terminal Anda, untuk menghindari kesalahan ketik. Ingatlah bahwa bahkan spasi, kutipan, dan terutama penggunaan huruf besar bisa menjadi penting. Salin / tempel baris demi baris, tidak pernah lebih dari satu baris sekaligus dan tekan kembali setelah setiap baris yang ditempelkan untuk menjalankan perintah. Jika ada operasi yang meminta Anda untuk memasukkan kata sandi, ini akan menjadi kata sandi dari pengguna administrator yang saat ini masuk (penekanan tombol Anda tidak ditampilkan saat mengetik, ini normal, jangan khawatir, terus ketik kata sandi dan tekan kembali; kembali -coba jika Anda salah ketik dan diminta lagi).
Prasyarat
Sebelum kita dapat mulai, pastikan kondisi berikut ini benar:
- Anda masuk sebagai pengguna administrator.
- Anda telah memulai Terminal.app (Aplikasi / Utilitas) dan jendela terminal terbuka.
- Anda memiliki salinan Xcode3 (misalnya 3.2.5) dan image disk Xcode4 (DMG) atau penginstal yang tersedia.
- Jika Anda sudah menginstal salah satu versi Xcode, pertimbangkan untuk mencopot pemasangannya terlebih dahulu , sehingga Anda dapat memulai dengan penyiapan baru / bersih. Menghapus instalan Xcode tidak akan menghapus preferensi, skema warna, atau kustomisasi pengikatan kunci Anda. Idealnya Anda akan mulai dengan sistem yang tidak memiliki versi Xcode (baik 3 maupun 4) yang saat ini diinstal.
Langkah 1: Menginstal Xcode3
Penting : Jangan instal paket " System Tools " atau " Unix Development " dari Xcode3.
Apakah Anda ingin menginstal " Mac OS X 10.4 SDK " dan / atau " Dokumentasi " terserah Anda. Jika itu adalah Xcode3 dengan iOS SDK, apakah Anda menginstalnya atau tidak juga terserah Anda.
Anda bebas memilih folder tujuan untuk instalasi Anda. Untuk panduan ini saya telah memilih " / Xcode3 ", tetapi jangan ragu untuk memilih yang lain. Pastikan untuk mengubah semua perintah terminal yang sesuai.
Urutan langkah-langkah yang diberikan di sini biasanya tidak terlalu penting, tetapi saya sangat menyarankan Anda untuk tidak menukar langkah 1 dan 2. Xcode selalu menginstal beberapa file di luar folder tujuan yang dipilih dan percayalah, pada akhirnya Anda menginginkan Versi Xcode4 dari file tersebut di disk Anda. Dengan menginstal Xcode3 sebelum Xcode4, Anda dapat yakin bahwa Xcode4 akan menimpa file-file tersebut jika perlu. Saya pernah menukar langkah 1 dan 2 dan pada akhirnya saya memiliki beberapa masalah yang agak aneh yang mungkin terkait dengan urutan yang salah (saya tidak dapat mengatakan dengan pasti, tetapi setelah menginstal ulang dalam urutan yang benar, masalah tersebut hilang).
Langkah 2: Menginstal Xcode4
Pilih paket apa pun yang Anda suka. Menginstal " Alat Sistem " disarankan, tetapi tidak sepenuhnya diperlukan (meskipun kebanyakan orang cepat atau lambat akan kehilangan fungsionalitas itu).
Sekali lagi, silakan pilih folder target yang Anda suka. Untuk panduan ini saya memilih folder target normal " / Pengembang ", jika Anda mengambil yang berbeda, ubah semua perintah terminal yang sesuai.
Langkah 3: Memulihkan Dukungan 10.4 / 10.5 SDK
Beralih ke jendela terminal Anda dan jalankan perintah berikut:
cd / Pengembang / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.
Tentu saja hanya jalankan perintah untuk 10.4u jika Anda juga menginstal SDK 10.4 pada langkah 1.
Ini cukup untuk mengembalikan SDK 10.5 (dan mungkin 10.4) ke daftar pilihan di Xcode4. Cobalah jika Anda suka. Jalankan Xcode4, buka proyek, coba ubah SDK yang dipilih. Itu mudah, ya? Pastikan untuk menutup Xcode4 lagi (aplikasi, bukan hanya jendela) sebelum melanjutkan ke langkah berikutnya.
Langkah 4: Memulihkan Dukungan GCC 4.0
Jika Anda belum menginstal MacOS 10.4 SDK atau jika Anda tidak berencana untuk menggunakannya, Anda dapat melewati langkah ini dengan aman dan melanjutkan ke langkah 5.
Untuk menggunakan SDK 10.4, Anda harus menggunakan GCC 4.0, GCC 4.2 tidak akan berfungsi. Apple mengklaim bahwa GCC 4.2 tidak kompatibel dengan SDK 10.4, yah, jika Anda bertanya kepada saya, ini adalah tipuan. Saya telah menimpa batasan ini lebih dari sekali dan tidak pernah ada masalah terkecil karenanya. Akan mudah untuk memodifikasi SDK 10.4 sehingga Xcode memungkinkan Anda menggunakan GCC 4.2 untuknya, tetapi tujuan saya adalah untuk menghindari semua modifikasi file, jadi kami hanya menambahkan dukungan GCC 4.0 kembali ke Xcode, yang juga merupakan hal yang baik, karena beberapa project sangat bergantung pada GCC 4.0 (misalnya, ada beberapa bug di GCC 4.2 yang mencegah kode assembly inline yang valid untuk dikompilasi tanpa kesalahan, sementara kode yang sama terkompilasi dengan sempurna di GCC 4.0 dan GCC 4.4).
Kembali ke terminal:
cd / Pengembang / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.
cd / Pengembang / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.
Saat ini kami telah memulihkan dukungan GCC 4.0 sepenuhnya kecuali fakta bahwa GCC 4.0 masih tidak dapat dipilih di Xcode4. Itu karena Xcode4 tidak lagi memiliki plugin compiler GCC 4.0. Untungnya plug-in Xcode3 juga berfungsi di Xcode4, hanya posisinya yang berubah secara radikal. Apple sekarang menyembunyikan plug-in itu jauh di dalam bundel dan hanya plug-in di sana yang tampaknya berfungsi, menempatkannya ke posisi lama tampaknya tidak berpengaruh.
cd / Pengembang / Perpustakaan / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Isi / SharedSupport / Pengembang / Perpustakaan / Xcode / Plug-in
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-in / GCC 4.0.xcplugin".
Sekarang jalankan Xcode4 lagi, buka proyek dan coba pilih kompiler. Anda harus memiliki GCC 4.0 kembali dalam daftar. Sekarang Anda sebenarnya sudah dapat memilih SDK 10.4 atau 10.5, GCC 4.0 dan Anda seharusnya tidak memiliki masalah untuk membangun biner PPC. Cukup pilih " Lainnya ... " untuk pengaturan build " Arsitektur " dan masukkan " ppc " secara manual , lalu ubah " Arsitektur yang Valid " agar juga menyertakan " ppc ". Kita hampir selesai, kecuali bahwa mencoba membangun biner PPC menggunakan GCC 4.2 dan SDK 10.5 akan tetap gagal.
Langkah 5: Memulihkan Dukungan PPC untuk GCC 4.2
Karena Apple hanya mendukung platform Intel di Xcode4, tidak semua alat GCC 4.2 telah dibuat dengan dukungan PPC. Ada satu alat penting yang tidak memiliki dukungan PPC, alat tersebut dinamai " as " dan itu adalah GNU Assembler. Untuk mengkompilasi binari ppc / ppc64 dengan GCC 4.2 kita perlu menggunakan versi " as " dengan dukungan ppc / ppc64. Ini adalah satu-satunya file (sebenarnya ini juga symlink) yang harus kita pindahkan terlebih dahulu (membuat salinan cadangan) sebelum kita dapat menggantinya dengan symlink:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv sebagai as.bak
sudo ln -s / Xcode3 / usr / bin / as.
Langkah 6: Tidak Ada Langkah 6
Itu semua orang. Mempertimbangkan betapa mudahnya hal itu, Anda dapat membayangkan bahwa Apple jelas tidak menjatuhkan dukungan SDK 10.4 / 10.5 atau ppc / ppc64 atau GCC 4.0 karena ini adalah suatu kebutuhan, mereka membatalkan semua itu karena mereka ingin membatalkannya.
Saya harap pengaturan ini bekerja dengan baik untuk Anda seperti halnya untuk saya. Saya telah dapat mengkompilasi semua proyek lama saya di Xcode4 tanpa perubahan besar, kecuali harus mengubah jalur pencarian di sana-sini.
PS:
Mungkin terlihat aneh saya menjawab pertanyaan saya sendiri di sini, tetapi karena saya sudah menemukan sendiri bagaimana menyelesaikan masalah ini, saya ingin berbagi pengetahuan saya dengan komunitas, karena saya yakin ini adalah masukan yang sangat berharga untuk semua pengembang MacOS di luar sana. Pertanyaan ini telah berkali-kali ditanyakan di banyak tempat dan sejauh ini saya belum pernah melihat ada orang yang datang dengan solusi serupa. Bagikan kekayaan, sebarkan ilmu dan sebagainya, Anda tahu apa yang saya maksud.
Jika Anda Masih Memiliki Masalah / Pertanyaan:
Jika Anda memiliki pertanyaan tambahan tentang topik ini atau jika Anda masih memiliki masalah untuk membangun proyek lama Anda dengan benar, lakukan untuk apa Stack Overflow telah dirancang: Klik "Ajukan Pertanyaan" di sudut kanan atas halaman ini dan buat pertanyaan baru . Dengan begitu, seluruh komunitas dapat membantu Anda menyelesaikan masalah tersebut, karena masalah tersebut mungkin tidak secara langsung (mungkin bahkan tidak langsung) terkait dengan peretasan ini.
Saya akan merekomendasikan Anda menyebutkan fakta bahwa Anda menerapkan peretasan ini di awal pertanyaan Anda. Mungkin Anda bahkan ingin langsung menautkan ke pertanyaan ini, sehingga orang yang belum pernah mendengar peretasan ini dapat dengan mudah mencarinya. Jika tidak, kebanyakan orang akan bingung saat Anda menyebutkan SDK 10.4 / 10.5, PPC atau GCC 4.0 yang dikombinasikan dengan Xcode4, yang secara resmi mendukung keduanya. Anda mungkin mendapatkan komentar yang agak bodoh dan bukan balasan yang layak jika Anda lupa menyebutkan peretasan ini.
Harap menahan diri untuk tidak memposting pertanyaan atau masalah Anda di sini baik sebagai balasan atau sebagai komentar. Mempostingnya sebagai balasan tidak masuk akal karena tidak ada balasan dan tidak ada cara bagaimana orang dapat membalas Anda, selain menggunakan komentar, dan komentar mungkin tidak menawarkan cukup ruang untuk jawaban yang layak atas pertanyaan Anda atau solusi yang layak untuk Anda. masalah. Dan mempostingnya sebagai komentar berarti Anda dibatasi ke ruang yang sangat sedikit dan melacak komentar balasan akan sulit karena komentar tidak memiliki hierarki seperti pohon (selanjutnya mereka masih akan menawarkan sedikit ruang untuk jawaban / solusi yang layak). Terima kasih.
Tentu saja jenis komentar lain serta jawaban yang lebih baik untuk pertanyaan asli selalu diterima ;-)
for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; done
dapat disederhanakan menjadisudo ln -s /Xcode3/usr/bin/*4.0* .
Cara mudah lain hanya dengan Xcode4, Xcode3 tidak lagi dibutuhkan.
EDIT:
Untuk Xcode 4.1,
Anda hanya dapat menggunakan gcc-4.2 untuk PowerPC. Dan opsi “-isysroot /Developer/SDKs/MacOSX10.6.sdk” diperlukan, karena 10.7 SDK tidak lagi mendukung PowerPC.
sumber
Saya telah mengumpulkan semua informasi dari halaman ini, Petunjuk Mac OS X, splhack.org, dan sumber lain yang dikutip di sini, dan mengumpulkan satu set skrip BASH yang mengotomatiskan proses pemulihan dukungan PPC dan GCC 4.0 baik menggunakan Instalasi XCode 3 atau hanya file platform iPhone XCode 4 itu sendiri.
Seperti biasa, gunakan dengan hati-hati! dan tolong sumbangkan perbaikan atau peningkatan apa pun. Skrip ini baru diuji di sistem saya sendiri pada posting ini.
Anda dapat mengunduhnya dari GitHub:
sumber
Jika Anda ingin gcc berfungsi dari baris perintah juga, (serta yang di atas) Anda juga perlu:
sumber
Ini masih berfungsi dengan Xcode 4.3.2 dari AppStore - versi di mana semuanya berdiri sendiri dalam App bundle. Seperti petunjuk aslinya, instal Xcode 3.2.6 terlebih dahulu * lalu unduh Xcode 4 dari AppStore. Kemudian lakukan keajaiban symlink berikut:
Dua baris terakhir mengganti nama darwin10 menjadi darwin11 di symlink - Saya menduga versi OS X yang akan datang akan membutuhkan ini untuk diperbarui sebagaimana mestinya.
Untuk menginstal Xcode 3.2.x di Lion, pasang image disk Xcode, buka Terminal, masukkan perintah (menggunakan bash, atau perintah yang setara jika Anda telah mengubah shell default Anda):
ekspor COMMAND_LINE_INSTALL = 1 open "/ Volumes / Xcode dan iOS SDK / Xcode dan iOS SDK.mpkg"
Anda juga harus menyetel jam kembali ke tanggal sebelum 31 Maret 2012 jika tidak, validasi sertifikat keamanan akan gagal selama penginstalan. Anda dapat dengan aman mengubah tanggal kembali setelah instalasi jelas!
sumber
Jika seseorang perlu memulihkan SDK lama dan kompiler PPC di Xcode 4.3 dan 4.5, ini adalah skrip yang saya buat. Perhatikan bahwa Anda perlu menyetel jalur ke paket aplikasi Xcode dan jalur ke pemasangan Xcode 3.2.6 di awal skrip.
Anda tidak perlu symlink 10.6 SDK jika Anda menggunakan Xcode 4.3 karena sudah disertakan.
Juga skrip tidak memulihkan gcc 4.2 karena ada banyak konflik nama file yang melakukan itu. Tujuan saya adalah mengembalikan compiler PPC dan 4.0 sudah cukup baik untuk saya.
sumber
Frédéric Devernay memiliki proyek GitHub bernama xcodelegacy yang bekerja sangat baik untuk saya di Xcode 5.1.1, dan membutuhkan sedikit pekerjaan untuk menjalankannya, hanya beberapa pengunduhan.
Dengan menggunakan proyeknya, saya berhasil membuat binari universal yang berisi arsitektur ppc dan i386 yang dikompilasi dengan 10.4 SDK menggunakan GCC 4.0, semuanya dari dalam Xcode 5.1.1 yang berjalan di Yosemite.
Saya telah memverifikasi sendiri bahwa binari universal yang dibuat berfungsi dengan baik di 10.5 Leopard dan di Yosemite itu sendiri.
Halaman muka di sini: http://devernay.free.fr/hacks/xcodelegacy
Proyek Git hub di sini: https://github.com/devernay/xcodelegacy
sumber
Akan berguna jika memiliki paket untuk menginstal file-file ini ke dalam implementasi XCode 4. (atau tarball).
FYI: 3.2.6 dari Xcode3 tidak menyertakan seperti arsitektur ppc. Tetapi saya memiliki cadangan Leopard di komputer saya. Jadi saya menyalin yang itu, sepertinya berhasil. (Gunakan / usr / libexec / gcc / darwin / ppc / as).
Mempertimbangkan bahwa baik gcc dan sebagai open source, satu-satunya hal yang mungkin tidak dapat didistribusikan ulang adalah plugin xcode dan 10.4 SDK kan?
sumber