La risposta rapida è: sì, possiamo!
Prima di arrivare alla parte " come si fa ", ecco alcune note sulla mia patch / hack / fix. Fin dall'inizio gli obiettivi principali sono stati:
Mantenere tutte le modifiche al minimo assoluto.
Vogliamo mantenere le impostazioni di Xcode il più originali possibile.
Con tutti i mezzi, cerca di evitare di applicare patch o modificare qualsiasi file.
Vogliamo che tutti i file rimangano intatti e mantengano il loro contenuto originale.
Cerca di evitare di spostare o copiare file, a meno che non sia assolutamente necessario.
Sono riuscito a mantenere tutti quegli obiettivi. Quasi tutto viene fatto creando collegamenti simbolici. È stato necessario sostituire solo un singolo collegamento simbolico esistente e verrà eseguito il backup prima della sostituzione, per ogni evenienza.
Se non sei esperto di operazioni da terminale, ti consiglio vivamente di copiare / incollare tutti i comandi di terminale dalla mia risposta al tuo terminale, per evitare errori di battitura. Tieni presente che anche la spaziatura, le virgolette e soprattutto le maiuscole possono essere importanti. Copia / incolla riga per riga, mai più di una riga alla volta e premi Invio dopo ogni riga incollata per eseguire il comando. Se per qualsiasi operazione viene richiesta una password, questa sarà la password dell'utente amministratore attualmente connesso (le sequenze di tasti non vengono visualizzate durante la digitazione, questo è normale, non preoccuparti, continua a digitare la password e premi Invio; re - prova se hai avuto un errore di battitura e ti viene chiesto di nuovo).
Prerequisito
Prima di poter iniziare, assicurati che le seguenti condizioni siano vere:
- Hai effettuato l'accesso come utente amministratore.
- Hai avviato Terminal.app (Applicazioni / Utility) e una finestra di terminale è aperta.
- Si dispone di una copia di Xcode3 (es. 3.2.5) e dell'immagine disco Xcode4 (DMG) o del programma di installazione disponibile.
- Se hai già installato una delle versioni di Xcode, considera prima la disinstallazione , in modo da poter iniziare con una configurazione nuova / pulita. La disinstallazione di Xcode non rimuoverà le preferenze, la combinazione di colori o le personalizzazioni dei tasti. Idealmente dovresti iniziare con un sistema che non ha una versione Xcode (né 3 né 4) attualmente installata.
Passaggio 1: installazione di Xcode3
Importante : non installare il pacchetto " Strumenti di sistema " o " Sviluppo Unix " di Xcode3.
Decidi tu se installare " Mac OS X 10.4 SDK " e / o " Documentazione ". Se si tratta di un Xcode3 con SDK iOS, dipende anche da te se installarli o meno.
Sei libero di scegliere qualsiasi cartella di destinazione per la tua installazione. Per questa guida ho scelto " / Xcode3 ", ma sentiti libero di sceglierne uno diverso. Assicurati solo di modificare tutti i comandi del terminale di conseguenza.
L'ordine dei passaggi qui fornito di solito non è molto importante, ma ti consiglio vivamente di non scambiare il passaggio 1 e il passaggio 2. Xcode installa sempre un paio di file al di fuori della cartella di destinazione scelta e credimi, alla fine vuoi il Versioni Xcode4 di questi file sul disco. Installando Xcode3 prima di Xcode4, puoi essere certo che Xcode4 sovrascriverà quei file se necessario. Una volta ho scambiato i passaggi 1 e 2 e alla fine ho avuto alcuni problemi piuttosto strani che potrebbero essere stati correlati all'ordine errato (non posso dirlo con certezza, ma dopo aver reinstallato nell'ordine corretto i problemi erano spariti).
Passaggio 2: installazione di Xcode4
Scegli i pacchetti che ti piacciono. L'installazione di " Strumenti di sistema " è consigliabile, ma non strettamente necessaria (sebbene la maggior parte delle persone prima o poi perderà questa funzionalità).
Ancora una volta, sentiti libero di scegliere qualsiasi cartella di destinazione che ti piace. Per questa guida ho scelto la normale cartella di destinazione " / Developer ", se ne prendi una diversa, modifica tutti i comandi del terminale di conseguenza.
Passaggio 3: ripristino del supporto SDK 10.4 / 10.5
Passa alla finestra del terminale ed esegui i seguenti comandi:
cd / Sviluppatore / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.
Ovviamente esegui il comando per 10.4u solo se hai installato anche SDK 10.4 nel passaggio 1.
Questo è sufficiente per riportare gli SDK 10.5 (e possibilmente 10.4) nell'elenco di selezione in Xcode4. Provalo se vuoi. Avvia Xcode4, apri un progetto, prova a cambiare l'SDK selezionato. È stato facile, eh? Assicurati di chiudere nuovamente Xcode4 (l'applicazione, non solo la finestra) prima di procedere con il passaggio successivo.
Passaggio 4: ripristino del supporto GCC 4.0
Se non hai installato MacOS 10.4 SDK o se non prevedi di utilizzarlo mai, puoi tranquillamente saltare questo passaggio e procedere con il passaggio 5.
Per utilizzare SDK 10.4, dovrai utilizzare GCC 4.0, GCC 4.2 non funzionerà. Apple afferma che GCC 4.2 non è compatibile con SDK 10.4, beh, se me lo chiedi, questa è una bufala. Ho già sovrascritto queste limitazioni più di una volta e non c'è mai stato il più piccolo problema a causa di ciò. Sarebbe facile modificare SDK 10.4 in modo che Xcode ti permetta di usare GCC 4.2 per esso, ma il mio obiettivo era evitare tutte le modifiche ai file, quindi aggiungiamo semplicemente il supporto di GCC 4.0 a Xcode, che è anche una buona cosa, perché alcuni progetti dipendono realmente da GCC 4.0 (ad esempio, ci sono alcuni bug in GCC 4.2 che impediscono la compilazione senza errori di codice assembly inline valido, mentre lo stesso codice si compila perfettamente su GCC 4.0 e GCC 4.4).
Torna al terminale:
cd / Sviluppatore / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.
cd / Sviluppatore / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.
In questo momento abbiamo ripristinato il pieno supporto di GCC 4.0 tranne per il fatto che GCC 4.0 non è ancora selezionabile in Xcode4. Questo perché Xcode4 non ha più il plug-in del compilatore GCC 4.0. Fortunatamente il plug-in Xcode3 funziona anche in Xcode4, solo la posizione è cambiata radicalmente. Apple ora nasconde quei plug-in in profondità all'interno di un bundle e solo i plug-in sembrano funzionare, posizionarli nella loro vecchia posizione sembra non avere alcun effetto.
cd / Sviluppatore / Libreria / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-ins
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin".
Ora avvia nuovamente Xcode4, apri un progetto e prova a selezionare il compilatore. Dovresti avere di nuovo GCC 4.0 nell'elenco. Ora puoi già selezionare SDK 10.4 o 10.5, GCC 4.0 e non dovresti avere problemi a creare un binario PPC. Seleziona " Altro ... " per l' impostazione di creazione " Architettura " e inserisci manualmente " ppc ", quindi modifica " Architetture valide " per includere anche " ppc ". Abbiamo quasi finito, tranne per il fatto che il tentativo di creare un binario PPC utilizzando GCC 4.2 e SDK 10.5 fallirà ancora.
Passaggio 5: ripristino del supporto PPC per GCC 4.2
Poiché Apple supporta solo le piattaforme Intel in Xcode4, non tutti gli strumenti GCC 4.2 sono stati costruiti con il supporto PPC. C'è uno strumento importante che non ha supporto PPC, lo strumento si chiama " as " ed è GNU Assembler. Per compilare i binari ppc / ppc64 con GCC 4.2 dobbiamo usare una versione " as " con supporto ppc / ppc64. Questo è l'unico file (in realtà è anche un collegamento simbolico) che dobbiamo prima spostare da parte (facendo una copia di backup) prima di poterlo sostituire con un collegamento simbolico:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv come as.bak
sudo ln -s / Xcode3 / usr / bin / as.
Passaggio 6: non esiste alcun passaggio 6
È tutto gente. Considerando quanto sia stato facile, puoi immaginare che Apple non abbia certamente abbandonato il supporto SDK 10.4 / 10.5 o ppc / ppc64 o GCC 4.0 perché questa era una necessità, hanno abbandonato tutto perché volevano abbandonarlo.
Spero che questa configurazione funzioni bene sia per te che per me. Sono stato in grado di compilare tutti i miei vecchi progetti in Xcode4 senza grandi modifiche, tranne per dover modificare un percorso di ricerca qua e là.
PS:
Può sembrare strano che io risponda alla mia domanda qui, ma poiché ho scoperto come risolvere questo problema da solo, mi piacerebbe condividere le mie conoscenze con la comunità, perché credo che questo sia un input davvero prezioso per tutti gli sviluppatori MacOS là fuori. Questa domanda è stata posta così tante volte in così tanti posti e finora non ho mai visto nessuno trovare una soluzione simile. Condividi la ricchezza, diffondi la conoscenza e così via, sai cosa intendo.
Se hai ancora problemi / domande:
Se hai ulteriori domande su questo argomento o se hai ancora problemi a costruire correttamente i tuoi vecchi progetti, fai ciò per cui Stack Overflow è stato progettato: Fai clic su "Fai una domanda" nell'angolo in alto a destra di questa pagina e crea una nuova domanda . In questo modo l'intera comunità può aiutarti a risolvere questi problemi, poiché i problemi potrebbero non essere direttamente (forse nemmeno indirettamente) correlati a questo hack.
Ti consiglierei di menzionare il fatto che hai applicato questo trucco all'inizio della tua domanda. Forse vuoi anche collegarti direttamente a questa domanda, in modo che le persone, che non hanno mai sentito parlare di questo hack, possano cercarlo facilmente. Altrimenti la maggior parte delle persone si confonderà quando menzionerai SDK 10.4 / 10.5, PPC o GCC 4.0 in combinazione con Xcode4, che ufficialmente non supporta nessuno di questi. Potresti ricevere commenti piuttosto stupidi invece di risposte decenti se dimentichi di menzionare questo hack.
Si prega di astenersi dal pubblicare qui le vostre domande o problemi come risposte o come commenti. Pubblicarli come risposte non ha senso perché non sono risposte e non c'è modo in cui le persone possano risponderti, a parte i commenti, e i commenti potrebbero non offrire abbastanza spazio per una risposta decente alla tua domanda o una soluzione decente alla tua problema. E pubblicarli come commenti significa che sei limitato a pochissimo spazio e monitorare i commenti di risposta sarà difficile poiché i commenti non hanno una gerarchia ad albero (inoltre offriranno ancora poco spazio per risposte / soluzioni decenti). Grazie.
Ovviamente altri tipi di commenti e risposte migliori alla domanda originale sono sempre ben accetti ;-)