iphone - ultima - Error de compilación: falta la arquitectura requerida i386 en el archivo
iphone 4s ultima actualizacion (15)
Lo solucioné de una manera diferente. La razón por la que recibí este error fue que agregué security.framework dos veces en mi proyecto. No pude ver el marco de seguridad en xcode, abrí el proyecto en el buscador y encontré este marco que eliminé y el problema fue resuelto
Recibo este error al construir mi aplicación de iPhone:
ld: warning: en /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit, falta la arquitectura requerida i386 en el archivo
Pasa lo mismo para todos los marcos en mi aplicación. Es muy extraño ya que esto no estaba sucediendo antes.
"Editar configuraciones del proyecto" y encontrar "Rutas de búsqueda" Hay un campo para "Rutas de búsqueda del marco". ¡¡eliminar todos!!
Acabo de experimentar algo ligeramente diferente, porque trabajo en mi propia biblioteca (WM_GSRecognizerLib), pero el error es el mismo.
Qué pasó: debido a algunas actualizaciones, la ruta dirigida a la lib para incluir (.a) era de la carpeta "Debug-iphoneos" (donde se genera). La compilación para dispositivos iOS genéricos funcionó bien, pero no para el simulador, quejándose de la arquitectura i386 que faltaba.
Lo que hice para este problema es incluir también los archivos binarios de la carpeta "Debug-iphonesimulator".
Puede ser útil para este tema, porque la explicación está aquí: los dispositivos requieren binarios para arm64 / armv7 / armv7s, mientras que el simulador necesita i386.
Aunque es posible que algo haya sido borrado, mi experiencia me dice que algo se arruina en el archivo del proyecto. Todavía tengo que precisar qué es ese "algo". Tuve problemas similares cuando la instalación de SDK está bien. Hay un par de opciones.
Primero, agregue todos sus archivos a un nuevo proyecto. Esto parece funcionar generalmente. Aunque un poco doloroso.
En segundo lugar, puede hacer clic derecho en proyecto en XCode / Get Info / Build / Library Search Paths. Agregue nuevas rutas similares a /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/lib. Agregue versiones apropiadas de esa cadena para cada versión (2.2.1, etc.) y plataforma (simulador o iPhoneOS). Lleve a cabo una acción similar para las Rutas de búsqueda de frameworks si los frameworks son su problema.
Tercero, que es más trabajo pero más confiable, es abrir project.pbxproj desde MyProject.xcodeproj (Textmate es bueno para esto). Busque "/ * Begin XCBuildConfiguration section * /", luego "LIBRARY_SEARCH_PATHS" y "FRAMEWORK_SEARCH_PATHS". Agregue o modifique las rutas según corresponda y guarde el archivo.
En cualquier caso, un dolor en el trasero, y me gustaría señalar la causa porque he tenido que pasar un par de veces. El proyecto se construye bien, luego se acaba y se niega a hacerlo con lo que parece ser una pequeña razón.
Compruebe que no haya copiado el marco en su proyecto cuando lo haya agregado. Si lo copió, no puede encontrar las rutas originales. Para arreglar este problema Elimine el marco de AVFoundation de su carpeta de frameworks en su proyecto, luego agréguelo nuevamente, pero esta vez, asegúrese de que no tenga marcada la copia.
¡Esto me lo arregló!
Ejecute el comando de archivo en el marco desde la Terminal:
file /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit
Debería recibir un mensaje que le diga con qué arquitecturas es compatible el binario de UIKit. Si no ve "i386" en la lista, de alguna manera ha logrado eliminar la versión i386 de UIKit, lo que significa que no puede compilar para el simulador. Para solucionarlo, tendrá que volver a instalar el SDK.
Si obtiene algún otro error, con suerte lo ayudará a descubrir cuál es el problema real.
Esto sucede cuando agrega un marco a su proyecto y copia involuntariamente el marco en su directorio de proyecto.
La solución es verificar el directorio de su proyecto (donde almacena su proyecto en el disco) para cualquier archivo SDK * .Framework de iphone y eliminarlos.
El proyecto se compilará bien después.
Lo que ha sucedido aquí es que Xcode ha añadido misteriosamente una entrada de "Rutas de búsqueda del marco de trabajo" que apunta a un SDK de dispositivo iPhone en particular. Por ejemplo, el mío fue establecido recientemente para:
$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks
Esto lleva al compilador a buscar marcos de la arquitectura incorrecta. La eliminación de cualquier valor en la clave "Rutas de búsqueda del marco" en la configuración de compilación de su destino resolverá el problema.
Si su aplicación está destinada a ejecutarse en el dispositivo, asegúrese de no estar intentando ejecutarla en el simulador. Puede sonar obvio, pero verifique de todos modos.
Solo quería mencionar eso en XCode si va a "Editar configuraciones del proyecto" y busca "Rutas de búsqueda". Hay un campo para "Rutas de búsqueda de marco". Actualizar esto debería solucionar el problema, ¡sin tener que hackear el archivo del proyecto!
¡Aclamaciones!
Jesse
Solo quiero que sepan que en mi caso, estaba teniendo el mismo problema, me di cuenta de que tenía una carpeta Xcode más antigua llamada Xcode3.1.3. Solo le cambio el nombre porque era una versión anterior y eso hizo la magia para mí.
También me pasó aquí a mí. Gracias a un gran compañero encontramos la respuesta. Su Xcode puede estar apuntando al simulador ... cambiarlo a un dispositivo IOS en su lugar ... construido suave después ...
Verifique las rutas de búsqueda de su biblioteca en su configuración de destino. A veces las bibliotecas ridículas se ingresan allí y esto le dará un error similar.
Puede eliminar todas las entradas en esta sección.
Yo también recibí el mismo error al usar xcode versión 4.0.2, entonces lo que hice fue seleccionar el archivo del proyecto xcode y de su selección de la opción Target pude ver la aplicación de mi proyecto, así que hice clic en ella y fui a la compilación. opción de configuraciones.
En la opción de búsqueda escribí la ruta de búsqueda de Framework , borré todas las configuraciones y luego hice clic en el botón de compilación y eso funcionó para mí,
Gracias y saludos
Tuve el mismo problema y la solución resultó ser una solución fácil. Haga una copia de seguridad y luego abra project.pbxproj (ubicado dentro del paquete de archivos del proyecto) en TextMate o TextEdit y busque la sección titulada "/ * Begin XCBuildConfiguration section * /". Busque una clave llamada FRAMEWORK_SEARCH_PATHS y elimínela y sus contenidos (una vez por configuración de compilación, por lo que la eliminé en dos lugares). Aquí hay un ejemplo de lo que eliminé:
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"/"$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library/Frameworks/"",);
Mi proyecto ahora se compila tanto para el dispositivo iPhone como para el iPhoneSimulator.