2011-03-30 18 views
6

Actualicé a XCode 4.XCode 4 ¿Necesita i386 para iPhone Sim?

Si hago un nuevo proyecto de iPad en XCode 4, todo funciona. Si hago un proyecto en XCode 3 y luego lo traigo a XCode 4, eso también funciona.

Uno de mis proyectos, sin embargo, no compilaría. error fue:

No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7). 

conseguirlo para compilar y ejecutar en el simulador, que terminé usando estos ajustes:

freaky but working settings in XCode 4

i386 Poner tiene el proyecto para compilar y ejecutar (thanks to this forum thread) , pero mis otros proyectos hacen no tienen i386 en las arquitecturas válidas y todavía funcionan.

¿Cómo puedo hacer que mi proyecto se parezca a los demás?

Nota: Sí, he realizado el proyecto con mucho cuidado (en XCode, no en XML, sin embargo) y la versión no compilada se parecía exactamente a la compilación de amigos.

+0

también me gusta http://stackoverflow.com/questions/4915953/upgrading-to-xcode-4-error-no-architectures-to-compile-for –

Respuesta

1

En los foros de desarrolladores, me encontré con personas que editaban el archivo .pbxproj con un editor de texto y acababan de agregar las entradas a VALID_ARCHS de esa manera. Parece ser un problema cuando XCode4 está manejando algunos proyectos anteriores de XCode3 (aunque todavía no lo he visto).

Revisé un proyecto actual y esta línea no existe, así que si ve este problema intente eliminarlo de su archivo project.pbxproj y luego reinicie XCode.

+0

En un proyecto donde tuve ese problema, descubrí que era es más fácil ** eliminar ** la línea VALID_ARCHS en el archivo del proyecto, en lugar de tratar de editarla. Haciendo eso, Xcode volverá a las opciones predeterminadas (es decir, i386 en Sim, armv6/7 en el Dispositivo). – robc

+0

Eso es lo que estaba diciendo al final, creo que esa es probablemente la mejor opción. Edité la última parte de mi pregunta para aclarar esto. –

+0

Genial, lo intentaré. ¿Quieres decir "respuesta" por cierto :) Gracias! –

1

Tuve exactamente el mismo problema y escribí un pequeño script de shell para editar programáticamente las líneas donde necesito agregar i386 (hago esto en mi arnés de prueba después de cada extracción de git y extracción de etiquetas).

Coloque el siguiente código en un script de shell y ejecute siempre que necesite añadir i386 a todos los VALID_ARCHS = entradas:

sed -i -e 's/.*VALID_ARCHS = armv7;.*/VALID_ARCHS = "armv7 i386";/g' project.pbxproj

Oh, dada la simplicidad directa de este script, es necesario estar en el mismo directorio donde se encuentra el archivo project.pbxproj cuando lo ejecuta.

Y, como implica, hace una sustitución de línea global. Reemplaza todas las instancias de VALID_ARCHS = armv7; con VALID_ARCHS = "armv7 i386"; y las comillas son necesarias o Xcode generará un error que le indicará que el archivo project.pbxproj no se puede analizar.

+0

suena bien. han pasado años, así que no tengo idea de cómo evaluar esto, pero +1 de todos modos. –