La respuesta rápida es: ¡ Sí, podemos!
Antes de pasar a la parte de " cómo se hace ", aquí hay algunas notas sobre mi parche / hack / corrección. Desde el principio, los principales objetivos han sido:
Mantenga todas las modificaciones al mínimo absoluto.
Queremos mantener las configuraciones de Xcode lo más originales posible.
Por supuesto, trate de evitar parchear o modificar cualquier archivo.
Queremos que todos los archivos permanezcan intactos y conserven su contenido original.
Trate de evitar mover o copiar archivos, a menos que sea absolutamente necesario.
Pude mantener todos esos goles. Casi todo se hace mediante la creación de enlaces simbólicos. Solo se tuvo que reemplazar un enlace simbólico existente y lo respaldaremos antes de reemplazarlo, por si acaso.
Si no es un experto en operaciones de terminal, le recomiendo encarecidamente que copie / pegue todos los comandos de terminal de mi respuesta en su terminal, para evitar errores tipográficos. Tenga en cuenta que incluso el espaciado, las comillas y especialmente las mayúsculas pueden ser importantes. Cópielos / péguelos línea por línea, nunca más de una línea a la vez y presione regresar después de cada línea pegada para ejecutar el comando. En caso de que alguna operación le solicite una contraseña, esta será la contraseña del usuario administrador actualmente conectado (sus pulsaciones de teclas no se muestran mientras escribe, esto es normal, no se preocupe, simplemente siga escribiendo la contraseña y presione regresar; volver -intente si tuvo un error tipográfico y se le preguntará nuevamente).
Requisito previo
Antes de que podamos comenzar, asegúrese de que se cumplan las siguientes condiciones:
- Ha iniciado sesión como usuario administrador.
- Ha iniciado Terminal.app (Aplicaciones / Utilidades) y se abre una ventana de terminal.
- Tiene una copia de Xcode3 (por ejemplo, 3.2.5) y la imagen de disco de Xcode4 (DMG) o el instalador disponible.
- Si ya tiene instalada alguna de las versiones de Xcode, considere desinstalarla primero , para que pueda comenzar con una configuración nueva / limpia. La desinstalación de Xcode no eliminará sus preferencias, combinación de colores o personalizaciones de enlace de teclas. Lo ideal sería comenzar con un sistema que no tenga una versión de Xcode (ni 3 ni 4) instalada actualmente.
Paso 1: Instalar Xcode3
Importante : No instale el paquete " Herramientas del sistema " o " Desarrollo de Unix " de Xcode3.
Si desea instalar " Mac OS X 10.4 SDK " y / o " Documentación " depende de usted. Si ese es un Xcode3 con iOS SDK, si los instala o no, también depende de usted.
Puede elegir cualquier carpeta de destino para su instalación. Para esta guía, he elegido " / Xcode3 ", pero siéntase libre de elegir uno diferente. Solo asegúrese de modificar todos los comandos del terminal en consecuencia.
El orden de los pasos que se dan aquí generalmente no es realmente importante, pero le recomiendo encarecidamente que no intercambie el paso 1 y el paso 2. Xcode siempre instala un par de archivos fuera de la carpeta de destino elegida y confíe en mí, al final desea el Versiones Xcode4 de esos archivos en su disco. Al instalar Xcode3 antes que Xcode4, puede estar seguro de que Xcode4 sobrescribirá esos archivos si es necesario. Una vez cambié los pasos 1 y 2 y al final tuve algunos problemas bastante extraños que podrían haber estado relacionados con el orden incorrecto (no puedo decirlo con certeza, pero después de reinstalar en el orden correcto, los problemas desaparecieron).
Paso 2: Instalar Xcode4
Elija los paquetes que desee. Es recomendable instalar " Herramientas del sistema ", pero no es estrictamente necesario (aunque la mayoría de la gente tarde o temprano perderá esa funcionalidad).
Nuevamente, siéntase libre de elegir cualquier carpeta de destino que desee. Para esta guía, elegí la carpeta de destino normal " / Developer ", si toma una diferente, modifique todos los comandos del terminal en consecuencia.
Paso 3: restauración de la compatibilidad con SDK 10.4 / 10.5
Cambie a la ventana de su terminal y ejecute los siguientes comandos:
cd / desarrollador / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.
Por supuesto, solo ejecute el comando para 10.4u si también instaló SDK 10.4 en el paso 1.
Esto es suficiente para que los SDK 10.5 (y posiblemente 10.4) vuelvan a la lista de selección en Xcode4. Pruébalo si quieres. Inicie Xcode4, abra un proyecto, intente cambiar el SDK seleccionado. Eso fue fácil, ¿eh? Asegúrese de cerrar Xcode4 nuevamente (la aplicación, no solo la ventana) antes de continuar con el siguiente paso.
Paso 4: restauración de la compatibilidad con GCC 4.0
Si no ha instalado MacOS 10.4 SDK o si no planea usarlo nunca, puede omitir este paso de manera segura y continuar con el paso 5.
Para usar SDK 10.4, tendrá que usar GCC 4.0, GCC 4.2 no funcionará. Apple afirma que GCC 4.2 no es compatible con SDK 10.4, bueno, si me preguntas, esto es un engaño. Ya sobrescribí estas limitaciones más de una vez y nunca hubo el más mínimo problema debido a ello. Sería fácil modificar el SDK 10.4 para que Xcode te permita usar GCC 4.2 para él, pero mi objetivo era evitar todas las modificaciones de archivos, así que simplemente agregamos el soporte de GCC 4.0 a Xcode, lo cual también es bueno, porque algunos proyectos realmente dependen de GCC 4.0 (por ejemplo, hay algunos errores en GCC 4.2 que impiden que el código ensamblador en línea válido se compile sin errores, mientras que el mismo código se compila sin problemas en GCC 4.0 y GCC 4.4).
Volver a la terminal:
cd / Desarrollador / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.
cd / Desarrollador / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.
En este momento hemos restaurado el soporte completo de GCC 4.0, excepto por el hecho de que GCC 4.0 todavía no se puede seleccionar en Xcode4. Esto se debe a que Xcode4 ya no tiene el complemento del compilador GCC 4.0. Afortunadamente, el complemento Xcode3 también funciona en Xcode4, solo que la posición ha cambiado radicalmente. Apple ahora esconde esos complementos dentro de un paquete y solo los complementos allí parecen funcionar, colocarlos en su posición anterior parece no tener ningún efecto.
cd / Desarrollador / Biblioteca / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-ins
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin".
Ahora inicie Xcode4 nuevamente, abra un proyecto e intente seleccionar el compilador. Debería tener GCC 4.0 nuevamente en la lista. Ahora ya puede seleccionar SDK 10.4 o 10.5, GCC 4.0 y no debería tener problemas para construir un binario PPC. Simplemente seleccione " Otro ... " para la configuración de compilación " Arquitectura " e ingrese manualmente " ppc ", luego modifique " Arquitecturas válidas " para incluir también " ppc ". Casi hemos terminado, excepto que intentar construir un binario PPC usando GCC 4.2 y SDK 10.5 aún fallará.
Paso 5: Restaurar el soporte de PPC para GCC 4.2
Dado que Apple solo admite plataformas Intel en Xcode4, no todas las herramientas GCC 4.2 se han creado con soporte PPC. Hay una herramienta importante que no tiene soporte para PPC, la herramienta se llama " as " y es GNU Assembler. Para compilar binarios ppc / ppc64 con GCC 4.2 necesitamos usar una versión " as " con soporte para ppc / ppc64. Este es el único archivo (en realidad también es un enlace simbólico) que primero debemos apartar (hacer una copia de seguridad) antes de poder reemplazarlo por un enlace simbólico:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv como as.bak
sudo ln -s / Xcode3 / usr / bin / as.
Paso 6: No hay Paso 6
Eso es todo amigos. Teniendo en cuenta lo fácil que fue, puede imaginar que Apple ciertamente no ha eliminado el soporte SDK 10.4 / 10.5 o ppc / ppc64 o GCC 4.0 porque era una necesidad, lo dejaron todo porque querían eliminarlo.
Espero que esta configuración funcione tan bien para ti como para mí. He podido compilar todos mis proyectos antiguos en Xcode4 sin cambios importantes, excepto por tener que modificar una ruta de búsqueda aquí y allá.
PD:
Puede parecer extraño que responda mi propia pregunta aquí, pero como descubrí cómo resolver este problema por mi cuenta, me gustaría compartir mi conocimiento con la comunidad, porque creo que esto es un aporte realmente valioso para todos los desarrolladores de MacOS que existen. Esta pregunta se ha hecho tantas veces en tantos lugares y hasta ahora nunca he visto a nadie que se le ocurra una solución similar. Comparte la riqueza, difunde el conocimiento, etc., ya sabes a qué me refiero.
Si aún tiene problemas / preguntas:
Si tiene más preguntas sobre este tema o si aún tiene problemas para construir sus proyectos antiguos correctamente, haga lo que Stack Overflow se diseñó para lo que se diseñó: haga clic en "Hacer pregunta" en la esquina superior derecha de esta página y cree una nueva pregunta. . De esa manera, toda la comunidad puede ayudarlo a resolver esos problemas, ya que es posible que los problemas no estén relacionados directamente (tal vez ni siquiera indirectamente) con este truco.
Le recomendaría que mencione el hecho de que aplicó este truco al principio de su pregunta. Tal vez incluso desee vincular directamente a esta pregunta, para que las personas que nunca han oído hablar de este truco puedan buscarlo fácilmente. De lo contrario, la mayoría de la gente se confundirá un poco cuando mencione SDK 10.4 / 10.5, PPC o GCC 4.0 en combinación con Xcode4, que oficialmente no admite ninguno de estos. Es posible que obtenga comentarios bastante estúpidos en lugar de respuestas decentes si olvida mencionar este truco.
No publique sus preguntas o problemas aquí, ya sea como respuestas o comentarios. Publicarlos como respuestas no tiene sentido porque no son respuestas y no hay forma de que las personas puedan responderte, aparte de usar comentarios, y los comentarios pueden no ofrecer suficiente espacio para una respuesta decente a tu pregunta o una solución decente para tu problema. Y publicarlos como comentarios significa que está limitado a muy poco espacio y el seguimiento de los comentarios de respuesta será difícil ya que los comentarios no tienen una jerarquía en forma de árbol (además, todavía ofrecerán poco espacio para respuestas / soluciones decentes). Gracias.
Por supuesto, siempre son bienvenidos otros tipos de comentarios, así como mejores respuestas a la pregunta original ;-)
for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; done
se puede simplificar asudo ln -s /Xcode3/usr/bin/*4.0* .
Otra forma fácil con solo Xcode4, Xcode3 ya no es necesario.
EDICIONES:
Para Xcode 4.1,
Puede usar gcc-4.2 solo para PowerPC. Y se requiere la opción “-isysroot /Developer/SDKs/MacOSX10.6.sdk”, porque 10.7 SDK ya no es compatible con PowerPC.
fuente
Reuní toda la información de esta página, Mac OS X Hints, splhack.org y las otras fuentes citadas aquí, y reuní un conjunto de scripts BASH que automatizan el proceso de restauración de la compatibilidad con PPC y GCC 4.0 utilizando un Instalación de XCode 3 o simplemente archivos de plataforma de iPhone propios de XCode 4.
Como siempre, ¡utilícelo con precaución! y contribuya con las correcciones o mejoras. Estos scripts solo se han probado en mi propio sistema a partir de esta publicación.
Puede descargarlos desde GitHub:
fuente
Si desea que gcc también funcione desde la línea de comandos (además de lo anterior), también deberá:
fuente
Esto todavía funciona con Xcode 4.3.2 de la AppStore, la versión donde todo está contenido en un paquete de aplicaciones. Como en la sugerencia original, instale Xcode 3.2.6 primero * y luego descargue Xcode 4 de la AppStore. Luego haz la siguiente magia de enlace simbólico:
Las dos últimas líneas cambian el nombre de darwin10 a darwin11 en el enlace simbólico; supongo que las futuras versiones de OS X requerirán que esto se actualice según corresponda.
Para instalar Xcode 3.2.x en Lion, monte la imagen de disco de Xcode, abra la Terminal, ingrese los comandos (usando bash o los comandos equivalentes si ha cambiado su shell predeterminado):
exportar COMMAND_LINE_INSTALL = 1 abierto "/ Volumes / Xcode y iOS SDK / Xcode y iOS SDK.mpkg"
También deberá volver a poner el reloj en una fecha anterior al 31 de marzo de 2012; de lo contrario, los certificados de seguridad fallarán la validación durante la instalación. ¡Obviamente, puede cambiar la fecha nuevamente después de la instalación!
fuente
En caso de que alguien necesite restaurar SDK antiguos y el compilador PPC en Xcode 4.3 y 4.5, este es un script que se me ocurrió. Tenga en cuenta que debe establecer la ruta al paquete de la aplicación Xcode y la ruta a la instalación de Xcode 3.2.6 al comienzo del script.
No necesita el enlace simbólico 10.6 SDK si está utilizando Xcode 4.3, ya que viene con uno.
Además, el script no restaura gcc 4.2 ya que hay muchos conflictos de nombre de archivo al hacerlo. Mi objetivo es restaurar el compilador PPC y 4.0 es lo suficientemente bueno para mí.
fuente
Frédéric Devernay tiene un proyecto de GitHub llamado xcodelegacy que funciona muy bien para mí en Xcode 5.1.1, y necesita muy poco trabajo para ponerlo en marcha, solo algunas descargas.
Usando su proyecto, me las arreglé para crear binarios universales que contienen arquitecturas ppc e i386 compiladas con el SDK 10.4 usando GCC 4.0, todo desde dentro de Xcode 5.1.1 ejecutándose en Yosemite.
Yo mismo he verificado que los binarios universales creados funcionan bien en 10.5 Leopard y en el propio Yosemite.
Página de inicio aquí: http://devernay.free.fr/hacks/xcodelegacy
Proyecto Git Hub aquí: https://github.com/devernay/xcodelegacy
fuente
Sería útil tener un paquete para instalar estos archivos en una implementación de XCode 4. (o un tarball).
FYI: 3.2.6 de Xcode3 no incluye una arquitectura como con ppc. Pero tenía una copia de seguridad de Leopard en mi computadora. Así que copié ese, parece funcionar. (Utilice / usr / libexec / gcc / darwin / ppc / as).
Teniendo en cuenta que tanto gcc como as son de código abierto, lo único que puede no ser redistribuible es el complemento xcode y el SDK 10.4, ¿verdad?
fuente