Estoy tratando de ejecutar una aplicación Swift en mi iPhone 4s. Funciona bien en el simulador, y mi amigo puede ejecutarlo con éxito en su iPhone 4s. Tengo iOS 8 y el lanzamiento oficial de Xcode 6.
Yo he tratado
- Reinicio de Xcode, iPhone, computadora
- Limpieza y reconstrucción
- Revocación y creación de un nuevo perfil de certificado / provisión
- Runpath Search Paths es
$(inherited) @executable_path/Frameworks
- El contenido incrustado contiene el código Swift es 'Sí'
- Code Signing Identity es desarrollador
A continuación se muestra el error en su totalidad.
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
Respuestas:
Para mí ninguna de las soluciones anteriores funcionó. Descubrimos que hay un indicador de "Incrustar bibliotecas estándar rápidas siempre" en la configuración de compilación que debe establecerse en SÍ. ¡Era NO por defecto!
Build Settings > Always Embed Swift Standard Libraries
Después de configurar esto, limpie el proyecto antes de volver a construir.
Para lectores entusiastas alguna explicación La parte más importante es:
La bandera se llamaba anteriormente
Embedded Content Contains Swift Code
fuente
Sorprendentemente, todo lo que hice fue "Limpiar" mi proyecto (shift + cmd + K) y funcionó. Sin embargo, parecía estar relacionado con el certificado.
fuente
Comencé a recibir este error cuando eliminé:
desde
Runpath Search Paths
en mi configuración de compilación. Reemplazarlo solucionó todo nuevamente (¡gracias a Dios por el control de la fuente!)No sé cómo llegó allí, pero parece ser necesario para que un binario encuentre su tiempo de ejecución Swift incrustado.
fuente
@loader_path/../Frameworks
para las pruebas unitarias de macOS y@loader_path/Frameworks
para las pruebas unitarias de iOS que debían agregarse.Para el dispositivo, también debe agregar el marco dinámico a la
Embedded binaries
sección en laGeneral
pestaña del proyecto.fuente
En Xcode 8, la opción para la
Embedded Content Contains Swift Code
opción ya no está disponible.Se ha renombrado a
"Always Embed Swift Standard Libraries = YES"
fuente
Creo que es un error cuando los certificados se generan directamente desde Xcode. Para resolver (al menos en Xcode 6.1 / 6A1052d):
fuente
OK, compartiendo aquí otra causa de este error. Me tomó algunas horas resolver esto.
En mi caso, la política de confianza de mi certificado en Keychain Access fue Always Trust , cambiarlo a los valores predeterminados resolvió el problema.
Para abrir la ventana de configuración del certificado, haga doble clic en el certificado en la lista de certificados de Acceso al llavero.
fuente
Estaba teniendo este problema al ejecutar mis pruebas de Swift (pero no mi aplicación). Resulta que la prueba necesitaba tener más que
@executable_path/Frameworks
en suRunpath Search Paths
configuración de compilación para el objetivo de prueba. Establecer las rutas de búsqueda de Runpath en lo siguiente funcionó para mí:fuente
carthage copy-frameworks
ya que era una dependencia secundaria (una que el marco que estaba usando había agregado )Este problema ocurre nuevamente en Xcode 10.2 . Debe descargar e instalar el siguiente paquete de Apple. Proporciona soporte de tiempo de ejecución Swift 5 para herramientas de línea de comandos .
https://support.apple.com/kb/DL1998?locale=en_US
fuente
msvcrt.dll
Usted tiene que fijar el
Runpath Search Paths
a@executable_path/Frameworks
como se muestra en la siguiente captura de pantalla de configuración de generación:Si tiene marcos incrustados en Swift, puede configurar
YES
las Opciones de compilaciónEmbedded Content Contains Swift Code
.fuente
otool -L
porque estos dylibs me dijeron que ya estaban usando@rpath/...
su propio camino. Ahora, al configurar la ruta de búsqueda Runpath en la ruta de esa carpeta, puedo ejecutar mi herramienta y encontrará los dylibs que están almacenados en una carpeta al lado.@rpath/libswiftAppKit.dylib
. Un problema me llevó a saber que tenía que agregar la ruta de búsqueda:@executable_path/../Frameworks/
según estas instrucciones . Si esto se aplica solo a la estructura de mi proyecto, no puedo decirlo. Es de destacar que no tuve que limpiar DerivedData para que esta configuración surta efecto.Creo que Apple ya lo ha resumido en los bloqueos de la aplicación Swift al intentar hacer referencia a la biblioteca de Swift libswiftCore.dylib
Citado de Technical Q&A QA1886 :
A medida que los muchachos de AirSign afirman que el problema se origina en el atributo de OU que falta en el campo de asunto del certificado interno .
Asunto: UID = 269J2W3P2L, CN = Distribución del iPhone: Nombre de la empresa, OU = 269J2W3P2L , O = Nombre de la empresa, C = FR
Tengo un certificado de desarrollo empresarial, la creación de uno nuevo resolvió el problema.
fuente
El proyecto P está importando la biblioteca personalizada L, luego debe agregar L en
P -> Build Phases -> Embed Frameworks -> +
. Funciona para mi.fuente
La forma más fácil y fácil de ignorar: limpiar y reconstruir.
Esto resolvió el problema después de probar las respuestas anteriores y no funcionó.
fuente
Estaba teniendo el mismo problema después de pasar a una nueva Mac, y después de horas, probando todas las respuestas sugeridas en las preguntas, nada de esto funcionó para mí.
La solución para mí fue instalar este certificado faltante. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Encontré la respuesta aquí. https://stackoverflow.com/a/14495100/976628
fuente
Cambie los recursos de pods de copia para el objetivo de:
a:
fuente
Lo resolví eliminando los datos derivados y esta vez funcionó correctamente. Probado con Xcode 7.3.1GM
fuente
Este mensaje de error también puede producirse al actualizar Xcode (y posteriormente a una nueva versión de Swift) y su proyecto utiliza un marco creado / compilado con una versión anterior / anterior de Swift.
En este caso, reconstruir el marco y volver a agregarlo solucionará el problema.
fuente
Después de haber probado todo, finalmente descubrí que la construcción no siempre incluye todos los detalles una y otra vez. Tal vez para acelerar el proceso ... Para asegurar TODO el empaque antes de ejecutarlo en un dispositivo, primero haga una Limpieza: Shift-Cmd-K. Luego construya con: Cmd-B. Después de eso, ejecútelo en su dispositivo. Fácil. Un saludo a todos ustedes, buenos chicos en ese lugar!
fuente
En mi caso, era solo el nombre de mi objetivo:
Lo renombré así : MyApp.algo y apareció el mismo problema. Pero vi en la ventana de configuración de compilación, el nombre del módulo de mi producto se ha cambiado como MyApp-something . Entonces, eliminé el punto en mi nombre de destino ( MyAppSomething ) y el problema desapareció.
fuente
Para mí, después de haber intentado todo sin éxito, lo que funcionó fue eliminar
@executable_path/Frameworks
de laPackaging section
(no sé cómo llegó a estar allí en el primer lugar)fuente
Ninguna de las soluciones funcionó para mí. Reiniciar el teléfono lo arregló. Extraño pero funcionó.
fuente
ninguna de estas soluciones parecía funcionar, pero cuando cambié el permiso del World Wide Developer cert a
Use System defaults
que funcionara. He incluido los pasos y las capturas de pantalla en el siguiente enlace.Le animo a que registre el ticket en el informe de errores de Apple como se menciona aquí, ya que Apple realmente debería resolver este error masivo: https://stackoverflow.com/a/41401354/559760
fuente
Xcode 7.2, iOS 9.2 en un dispositivo, 9.0 en otro. Ambos tuvieron el error. No tengo idea de qué cambio lo causó, pero las soluciones anteriores para el WWDR fueron correctas para mí. Instale ese certificado y el problema resuelto.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
fuente
Hay muchas respuestas allí, pero tal vez mi respuesta ayude a alguien.
Tengo el mismo problema, mi aplicación funciona bien en el simulador, pero en el dispositivo se bloqueó cuando la aplicación I Lunches y da un error como el anterior. He intentado todas las respuestas y soluciones. En Mi caso, Mi proyecto, tengo múltiples objetivos. He creado un objetivo B duplicado a partir del objetivo A. El objetivo B funciona bien mientras que el objetivo A se ha estrellado. Estoy usando diferentes recursos de imagen para cada objetivo. Después de buscar y hacer google, he encontrado algo que podría ayudar a alguien.
La aplicación deja de fallar cuando cambio el nombre de los activos de Iniciar imágenes para ambas aplicaciones. por ejemplo, Target A Launch Image nombre del activo LaunchImage A. Nombre de activo de imagen de almuerzo de Target B LaunchImage B y asignado correctamente en la pestaña General de cada objetivo. Mis aplicaciones funcionan bien.
fuente
Para mí, crear una aplicación Swift de línea de comandos de MacOS que dependía de bibliotecas Swift de terceros (por ejemplo, SQLite) ninguna de las soluciones anteriores parecía funcionar. Lo que funcionó fue agregar directamente la siguiente ruta a mis rutas de búsqueda de Runpath en la configuración de compilación:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/
Hacer eso dio una advertencia en tiempo de ejecución diciendo que Xcode había encontrado 2 versiones de libswiftCore, lo cual tiene sentido. Excepto que al no incluir esa línea, Xcode no encontró ninguna versión de libswiftCore.
De todos modos, eso funcionará para mí, incluso si no parece correcto: mi aplicación es solo una utilidad que no tengo la intención de distribuir y al menos se ejecuta ahora.
fuente
Tengo varias versiones de Xcode instaladas al mismo tiempo. El framework fue construido con una versión más nueva de Xcode La aplicación que intenté compilar fue con una versión anterior de Xcode. Cuando limpié y compilé tanto el framework como la aplicación con la misma versión de Xcode, todo funcionó.
fuente
Comencé a recibir este error similar para probar agregar archivos S3 usando los servicios de AWS. Debajo estaba el error. dyld: Biblioteca no cargada: @ rpath / AWSAutoScaling.framework / AWSAutoScaling
Busqué mucho y las soluciones anteriores tampoco son útiles para mí. El siguiente enlace me ayudó a resolver este problema.
https://forums.developer.apple.com/thread/21292
Lo que dice solucionar este problema volviendo a descargar WWDR (Autoridad de Certificación de Relaciones con Desarrolladores de Apple en todo el mundo) .
fuente
Estoy en Xcode 8.3.2. Para mí, el problema era que el certificado AppleWWDRCA estaba en el sistema y en el llavero de inicio de sesión. Se eliminaron ambos y luego se agregaron solo al llavero de inicio de sesión, ahora vuelve a funcionar bien. 2 días perdidos 😭
fuente
Estoy usando Xcode 8.3.3 y Xcode 9.2. La solución para mí fue cambiar mi Xcode predeterminado de 8 a 9 usando Xcode Select:
$ xcode-select --print-path
$ sudo xcode-select -switch /Applications/Xcode-9.2.app
Editar: En realidad, lo que pareció ayudar aquí fue que Xcode 9.2 utilizó los datos derivados de Xcode 8.3.3. No es una solución, pero al menos me permite seguir adelante con mi trabajo.
fuente
Si obtiene un error como este:
y use CocoaPods en su marco, luego intente editar
Podfile
y eliminarinherit! :search_paths
delTest
objetivo, ypod install
vuelva a ejecutar .Para obtener más detalles, consulte https://github.com/CocoaPods/CocoaPods/issues/8868 .
fuente