[ios] dyld: Biblioteca no cargada: @ rpath / libswiftCore.dylib



Answers

Sorprendentemente, todo lo que hice fue "Limpiar" mi proyecto (shift + cmd + K) y funcionó. Parecía estar relacionado con el certificado sin embargo.

Question

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

  • Reiniciar Xcode, iPhone, computadora
  • Limpieza y reconstrucción
  • Revocar y crear un nuevo certificado / perfil de provisión
  • Runpath Search Paths es $(inherited) @executable_path/Frameworks
  • Contenido incrustado contiene 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



Estaba teniendo el mismo problema después de pasar a un nuevo 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://.com/a/14495100/976628




Estaba teniendo este problema al ejecutar mis pruebas de Swift (pero no en mi aplicación). Resultó que la prueba necesitaba tener más de @executable_path/Frameworks en su configuración de compilación de Runpath Search Paths para el objetivo de prueba. Configurar las rutas de búsqueda de Runpath a lo siguiente funcionó de maravilla para mí:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks






Tengo varias versiones de Xcode instaladas al mismo tiempo. El marco se construyó con una versión más nueva de Xcode. La aplicación que intenté compilar estaba en 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ó.




Runpath Search Paths establecer las Runpath Search Paths en @executable_path/Frameworks como se muestra en la siguiente captura de pantalla de Configuraciones de compilación:

Si tiene marcos incrustados hechos en Swift, entonces puede configurar YES el Embedded Content Contains Swift Code opciones de compilación Embedded Content Contains Swift Code .




Lo resolví borrando los datos derivados y esta vez funcionó correctamente. Intento con Xcode 7.3.1GM




Ninguna de las soluciones funcionó para mí. Reiniciar el teléfono lo solucionó. Extraño pero funcionó.







Para mí, habiendo intentado todo sin éxito, lo que funcionó fue eliminar @executable_path/Frameworks de la Packaging section (no sé cómo llegó a estar allí en primer lugar)




Creo que es un error cuando los certificados se generan directamente desde Xcode. Para resolver (al menos en Xcode 6.1 / 6A1052d):

  1. vaya al sitio web de desarrolladores de Apple donde se administran los certificados: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. seleccione su certificado (s) (que debe mostrar "Gestionado por Xcode" en "Estado") y "Revocar"
  3. siga las instrucciones aquí para generar manualmente un nuevo certificado: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW32
  4. vaya a Xcode> Preferencias> Cuentas> [su ID de Apple]> haga doble clic en el nombre de su equipo> pulse el botón actualizar para actualizar los certificados y los perfiles de suministro



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 usó los datos derivados de Xcode 8.3.3. No es una solución, pero al menos me permite seguir adelante con mi trabajo.




Para el dispositivo, también necesita agregar el marco dinámico a la sección de Embedded binaries en la pestaña General del proyecto.




En mi caso,

He establecido @executable_path/Frameworks

Pero también tengo que establecer "rutas de búsqueda de Framework"

$(PROJECT_DIR)/Frameworks

cambiar como recursive

Lo cual funciona para mi




Las soluciones anteriores no funcionaron para mí. Soluciono el problema siguiendo estos pasos:

  1. Tuve que ir al teléfono (Configuración> Perfil) y eliminar los perfiles que estaban en el teléfono (incluidas todas las aplicaciones asociadas con ese perfil / provisiones).
  2. Después de eso, asegúrese de descargar las disposiciones de apple en xcode. Vaya a xcode settings> account e inicie sesión en su cuenta de desarrollador de Apple.





Related