Recibo este error al compilar mi aplicación para iPhone:
ld: advertencia: en /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit, falta la arquitectura necesaria i386 en el archivo
Es igual para todos los marcos de mi aplicación. Es muy extraño ya que esto no sucedía antes.
iphone
cocoa-touch
Gabe Shahbazian
fuente
fuente
Respuestas:
Esto sucede cuando agrega un marco a su proyecto y sin quererlo copia el marco en el directorio de su proyecto.
La solución es verificar el directorio de su proyecto (donde almacena su proyecto en el disco) para ver si hay archivos iPhone SDK * .Framework y eliminarlos.
El proyecto se construirá bien después.
fuente
Tuve el mismo problema y la solución resultó ser fácil. Haga una copia de seguridad y luego abra project.pbxproj (ubicado dentro del paquete de archivos de su 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 su contenido (una vez por configuración de compilación, así que la eliminé en dos lugares). Aquí hay un ejemplo de lo que eliminé:
Mi proyecto ahora se compila tanto para el dispositivo iPhone como para iPhoneSimulator.
fuente
Lo que ha sucedido aquí es que Xcode ha agregado misteriosamente una entrada "Rutas de búsqueda de marco" que apunta a un SDK de dispositivo iPhone en particular. Por ejemplo, el mío se configuró recientemente en:
Esto lleva al compilador a encontrar marcos de arquitectura incorrecta. La eliminación de cualquier valor en la clave "Rutas de búsqueda de marco" en la configuración de compilación de su objetivo resolverá el problema.
fuente
Solo quería mencionar que en XCode si vas a "Editar configuración del proyecto" y buscas "Rutas de búsqueda", hay un campo para "Rutas de búsqueda de marco". Actualizar esto debería solucionar el problema, ¡sin tener que piratear el archivo del proyecto!
¡Salud!
Jesse
fuente
Compruebe que no haya copiado el marco en su proyecto cuando lo agregó. Si lo copió, no puede encontrar las rutas originales. Para solucionar este problema. Elimine el marco AVFoundation de su carpeta de marcos en su proyecto, luego agréguelo nuevamente, pero esta vez, asegúrese de no tener marcada la verificación de copia.
¡Esto me lo arregló!
fuente
fuente
Si su aplicación está diseñada para ejecutarse en el dispositivo, asegúrese de que no está intentando ejecutarla en el simulador. Puede parecer obvio, pero compruébalo de todos modos.
fuente
Aunque es posible que algo se haya eliminado, según mi experiencia, algo se estropea en el archivo del proyecto. Todavía tengo que precisar qué es ese "algo". He tenido problemas similares cuando la instalación del SDK está bien. Hay un par de opciones.
Primero, agregue todos sus archivos a un nuevo proyecto. Esto parece funcionar normalmente. Sin embargo, es una especie de dolor.
En segundo lugar, puede hacer clic con el botón derecho en el 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). Realice una acción similar para las rutas de búsqueda de marcos si los marcos son su problema.
En tercer lugar, 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 me ha pasado esto un par de veces. El proyecto se construye bien, luego acaba y se niega a hacerlo con lo que parece ser una pequeña razón.
fuente
"Editar la configuración del proyecto" y buscar "Rutas de búsqueda" Hay un campo para "Rutas de búsqueda del marco". ¡¡eliminar todos!!
fuente
A mí también me pasó aquí. Gracias a un gran socio, encontramos la respuesta. Su Xcode puede estar apuntando al simulador ... cámbielo a un dispositivo IOS en su lugar ... construido sin problemas después ...
fuente
Ejecute el comando de archivo en el marco desde la Terminal:
Debería recibir un mensaje que le indique con qué arquitecturas es compatible el binario UIKit. Si no ve "i386" en la lista, entonces 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, es de esperar que le ayude a descubrir cuál es el problema real.
fuente
Solo quiero hacerles saber 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. Simplemente le cambié el nombre porque era una versión anterior y eso hizo la magia por mí.
fuente
Compruebe las rutas de búsqueda de su biblioteca en la configuración de destino. A veces, se ingresan bibliotecas tontas allí y esto le dará un error similar.
Puede eliminar todas las entradas en esta sección.
fuente
Acababa de experimentar algo ligeramente diferente, porque trabajo en mi propia biblioteca (WM_GSRecognizerLib), pero el error es el mismo.
Qué pasaría: debido a algunas actualizaciones, la ruta que apuntaba a la biblioteca a 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 falta de arquitectura i386.
Lo que hice para este problema fue incluir también los 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.
fuente
Mi solución fue establecer la depuración del objetivo del simulador SÍ, solo mire el estado de git para ver la nueva línea agregada como arquitectura solo en .project. si no configura esto, la compilación se ejecutará en todas las arquitecturas y mostrará alguna arquitectura faltante como i386 u otra. TENGA EN CUENTA QUE, obviamente, el problema principal es utilizar algún marco que implemente algún tipo de arquitectura específica.
fuente
Yo también obtuve el mismo error, estoy usando la versión 4.0.2 de xcode, así que lo que hice fue seleccionar el archivo del proyecto xcode y de allí seleccioné 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 configuración.
Su en la opción de búsqueda escribí la ruta de búsqueda de Framework , eliminé todas las configuraciones y luego hice clic en el botón de compilación y eso funcionó para mí muy bien,
Gracias y saludos
fuente