Motivo: no se ha encontrado ninguna imagen adecuada [cerrada]

129
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

Recibo este error al construir en mi iPhone. Puedo construir sobre el simulador. He rehecho todos mis archivos de aprovisionamiento, pero todavía no puedo construir en mi iPhone. Mi Xcode es así

ingrese la descripción de la imagen aquí

¿Es este un problema de marco o un problema de firma? Esto no sucedió en Xcode 6. Gracias.

Satsuki
fuente
Resolví este problema (después de encontrar un montón de callejones sin salida en SO) cambiando los permisos en el certificado de desarrollador mundial: vea mi respuesta aquí: stackoverflow.com/a/41401399/559760 (¡espero que esto ayude!)
UKDataGeek
Actualización para iOS 13.3.1: si tiene este iOS desafortunado e intenta instalar la aplicación con marcos anidados, solo sepa que es un error: actualice a 13.4.1 o posterior, ya está resuelto
iago849

Respuestas:

389

Tengo este problema antes por revocar accidentalmente mi certificado. Entonces todos mis proyectos rápidos tienen este problema. Hay dos formas de resolver esto:

Haga clic en Producto → Limpiar (o CMD+ Shift+ K)

O limpiando manualmente los archivos de configuración de Xcode:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode
Jieyi Hu
fuente
1
úselos
No hay problema. Elige mi respuesta si quieres :)
Jieyi Hu
10
Creo que Alt + Clean lo hará también
jjxtra
9
La limpieza del proyecto funcionó para mí: SHIFT + CMD + K
B-Rad
9
¿Está utilizando una ID de Apple que no es desarrollador para instalar la aplicación en su teléfono? Parece que iOS 13.3.1 tiene aplicaciones rotas instaladas con ID de Apple gratuitas, pero solo si contienen marcos incrustados. Si es posible vincular todas sus dependencias como bibliotecas estáticas en lugar de marcos (por ejemplo, si está utilizando Cocoapods, puede eliminar use_frameworks! De su Podfile), eso debería solucionar el problema por ahora.
Kashif Rabbani
30

Busqué mucho sobre este tema. Hay varias razones que causan este problema.

Si está enfrentando cuando usted y el código / biblioteca Swift en un proyecto Objectice C debe probar la Solución 1-2-3

Si se enfrenta a este problema con un nuevo proyecto de Swift, la Solución 4 le quedará mejor.

Solución 1 :

Reinicie Xcode, luego computadora y iPhone

Solución 2 :

Vaya a la configuración de compilación del proyecto y establezca el Embedded Content Contains Swiftindicador de Código en SÍ

Solución 3:

Vaya a la configuración de compilación del proyecto y agregue @executable_path/Frameworksa la opción Rutas de búsqueda de Runpath

Solución 4:

Si ninguno de los anteriores funciona, esto debería. Apple parece ser un parche certificado ninja como se menciona en la publicación de AirSign

En los certificados de InHouse

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

agregaron un nuevo campo llamado OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

así que solo debes recrear el certificado y la provisión

Murrekatt
fuente
Gracias, he hecho la Solución 1 ~ 3 y no funciona. He recreado un certificado y una provisión y no funciona tan bien
Satsuki
1
Estaba enfrentando el mismo mensaje de error que me pidió originalmente Satsuki. La solución 4 hizo el truco para mí. Tuve problemas con Realm Framework pero solo si intenté crear un archivo de mi aplicación y luego instalarlo a través de iTunes (de lo contrario, la implementación directa en el dispositivo era fluida).
Peter Ivanics
¡4 lo hizo por mí también! Aquí hay un enlace a la publicación de AirSign
pshah
2
¿Cómo edito el certificado de InHouse?
Al Wang
1
1 y 2 no funcionaron para mí. Ventana -> proyecto, eliminar datos derivados arreglados. Inferior, buggy xcode>. <
Cymric
27
Xcode->Product->Clean + Xcode Restart

Después de intentar muchas de las otras soluciones mencionadas, para mi vergüenza eterna, hacer un Xcode-> Producto-> Limpiar y reiniciar Xcode, funcionó.

Sean Vikoren
fuente
2
Yo también hice muchos de los pasos mencionados anteriormente, como obtener el WWRD, Verificar el Runpath, etc. Nada funcionó hasta que hice esto "Limpio". Así que muchas gracias!
Joe Famme
Tuve que reiniciar Xcode, después de varias fallas de limpieza. Esto parecería demasiado obvio para una solución considerando lo difícil que parece Apple hacer todo lo demás
Jeffrey Kern el
19

Para mí, este problema aparecía debido al certificado WWRD: la mina estaba actualizada pero, por alguna razón, estaba configurada para 'confiar siempre' en lugar de 'usar el sistema predeterminado', lo que aparentemente hace la diferencia.

Warblr
fuente
44
+1 para el problema del certificado. Intenté absolutamente TODO, pero luego noté que mi certificado de desarrollador estaba configurado para "Confiar siempre" en el llavero. Cambiar a "Usar sistema predeterminado" como usted dice funcionó perfectamente. ¡Gracias!
tylermilner
1
Intenté todo y esto lo hizo. En serio, ¿por qué Apple no puede arreglar esto como parte de Xcode ...?
UKDataGeek
1
extremadamente IMPORTANTE: después de cambiar el acceso al certificado para "usar los valores predeterminados del sistema", LIMPIE a fondo el proyecto (cmd + Alt + shift + K)
Roman Slyepko
2
Me salvó el día hermano! gracias
andrea.rinaldi
Creo que esta es la ÚLTIMA solución a este problema. También probé casi todas las soluciones disponibles en Internet, pero ninguna de ellas funciona para mí, excepto esto. Gran solución ...
Er. Vihar
17

Si restablece accidentalmente su llavero, esto puede ocurrir debido a la falta de certificados de Apple en el llavero. Seguí la respuesta sobre esto para resolver mi problema.

Tuve el mismo problema y pude solucionarlo volviendo a descargar WWDR (Autoridad de Certificación de Relaciones con Desarrolladores de Apple en todo el mundo). Descargue desde aquí: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

usuario1742302
fuente
1
Me lo arregló después de transferir Xcode y mi perfil de usuario de una Mac a otra.
RTasche
1
Funciona para mi caso, gracias!
Alice Chan
1
Gracias señor, usted es un salvavidas
Josh O'Connor
Gracias, me tomó tanto tiempo encontrar esto.
loudmouth
14

Eliminar el DerivedData hizo el truco para mí.

Lo hice a través de Xcode -> Preferencias -> Ubicaciones -> hizo clic en la flecha detrás de la ruta DerivedData y eliminó toda la carpeta DerivedData en el Finder.

NBoymanns
fuente
gracias, funcionó para mí, cordova + xcode 7.2
jujule
1
Window > Projects > My Project > Derived Data > Deletehizo el trabajo por mí
Michael Waterfall
Trabajó para mí en Xcode 10.1. Todo funcionó bien, pero en un día feliz, Xcode comenzó a mostrar esos errores. Gracias.
Zhebzhik Babich
5

Ocurrió de mi lado al crear una aplicación en la línea de comando a través de xcodebuild y xcrun PackageApplication, firmando la aplicación con un perfil empresarial. En nuestros servidores de compilación de CI, el certificado se configuró en "Confiar siempre" en el llavero (seleccione certificado -> Obtener información -> Confiar -> "Usar valores predeterminados del sistema" se puede cambiar a "Confiar siempre"). Tuve que volver a configurarlo en "Usar valores predeterminados del sistema" para que esto funcione. Inicialmente configuramos esto en "Confiar siempre" para solucionar los diálogos de llavero que aparecen después de las actualizaciones de software y actualizaciones de certificados.

Jagveer Singh
fuente
3

A riesgo de sembrar más confusión, tuve este problema al actualizar a XC8.

Ninguna de estas sugerencias, ni de ningún otro hilo, lo resolvió. Lo que sí funcionó fue eliminar TODO de la fase de compilación "Enlace binario con bibliotecas", la fase de compilación "Dependencias de destino" y la configuración general "Bibliotecas y marcos vinculados".

Para su información, estoy usando Cartago y había agregado $(PROJECT_DIR)/Carthage/Build/tvOSa la FRAMEWORK_SEARCH_PATHSconfiguración de compilación, para que se puedan encontrar mis marcos.

FYI 2, estos proyectos y los marcos, son 100% rápidos y los marcos se están construyendo DEFINES_MODULE = YES.

daimler250v8
fuente
DEFINES_MODULE = YES funcionó para mí. Mi proyecto contenía objetivo-C y Swift.
Jason Huh el
3
  1. Eliminar la aplicación del dispositivo
  2. Limpiar el proyecto ( CMD+ SHift+ K)
  3. Construir / Ejecutar en dispositivo
Maxim Firsoff
fuente
2

Citado de Technical Q&A QA1886 :

La aplicación Swift se bloquea al intentar hacer referencia a la biblioteca de Swift libswiftCore.dylib.

P: ¿Qué puedo hacer sobre el error de carga de libswiftCore.dylib en la consola de mi dispositivo que ocurre cuando intento ejecutar mi aplicación de idioma Swift?

R: Para corregir este problema, deberá firmar su aplicación utilizando certificados de firma de código con la Unidad organizativa (OU) del sujeto configurada en su ID de equipo. Todos los certificados de desarrollador de iOS estándar y Enterprise que se crean después del lanzamiento de iOS 8 tienen el nuevo campo ID de equipo en el lugar adecuado para permitir que se ejecuten las aplicaciones de idioma Swift.

Por lo general, este error aparece en el registro de la consola del dispositivo con un mensaje similar a uno de los siguientes: [....] [negar-mmap] el archivo asignado no tiene un identificador de equipo y no es un binario de plataforma: / private / var / mobile / Contenedores / Paquete / Aplicación / 5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1 / YourAppNameHere.app / Frameworks / libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

Los nuevos certificados son necesarios al crear un archivo y empaquetar su aplicación. Incluso si tiene uno de los nuevos certificados, simplemente renunciar a un archivo existente de aplicaciones rápidas no funcionará. Si se creó con un certificado anterior a iOS 8, deberá crear otro archivo.

Importante: Tenga cuidado si necesita revocar y configurar un nuevo certificado de Distribución de empresa. Si usted es un desarrollador de Enterprise interno, deberá tener cuidado de no revocar un certificado de distribución que se utilizó para firmar una aplicación que cualquiera de sus empleados de Enterprise todavía está utilizando, ya que cualquier aplicación firmada con ese certificado de distribución empresarial dejará de funcionar de inmediato. Lo anterior solo se aplica a los certificados de distribución empresarial. Los certificados de desarrollo se pueden revocar de manera segura para desarrolladores de iOS empresariales / estándar.

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.

AG
fuente
¿Alguien puede explicar esto en inglés?
UKDataGeek
1

probablemente no tienes el arco correcto en esa biblioteca, puedes hacer un

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

y debería mostrarle los arcos que están en esa biblioteca ... No estoy seguro de cómo está vinculando, pero probablemente no sea la forma correcta (si libswiftcore es una biblioteca de fábrica, si es algún complemento en la biblioteca, entonces probablemente no está compilado correctamente)

Grady Player
fuente
Hola, gracias por tu respuesta, tengo una pregunta. En la respuesta que dijiste y debería mostrarte los arcos que están en esa biblioteca. como lo muestras
Satsuki el
el comando se llama archivo ... pero creo que necesitas encontrar la versión local en tu mac, en lugar de la ruta en el teléfono ...
Grady Player
1

Yo también tuve este problema, sin embargo, nada de lo que intenté anteriormente y en varias otras publicaciones funcionó ... excepto por esto.

Para mí, cambié el identificador de paquete ya que tenemos una ID de paquete diferente para distribución frente a desarrollo.

Mi hardware está permitido en esta disposición y la cuenta de mi equipo es válida, pero arrojó el error anterior en algún otro marco.

Resulta que necesitaba eliminar por completo la versión anterior de la aplicación de mi teléfono. Y no solo eliminándolo de la manera estándar.

Solución:

  1. Asegúrese de que el teléfono objetivo esté conectado
  2. desde el menú de xcode, haga clic en [Ventana> Dispositivos]
  3. seleccione el dispositivo de destino en el menú del lado izquierdo.
  4. A la derecha habrá una lista de aplicaciones dentro de su dispositivo. Encuentre la aplicación que está intentando probar y elimínela.

Evidentemente, al instalar la misma aplicación bajo el mismo equipo con una ID de paquete diferente, si no está comenzando completamente desde cero, hay algunas referencias a marcos que se enturbian.

Espero que esto ayude a alguien.

Christopher Wade Cantley
fuente
Mi ID de paquete no ha cambiado. Y cualquiera de las sugerencias anteriores no solucionó las cosas (-> Limpiar; eliminación manual; reiniciar todo; y eliminar manualmente la aplicación del iPhone cada vez; y más). Solo siguiendo las sugerencias de Christopher se solucionan los pensamientos instantáneamente sin limpiar nada otra vez. [iphone 5; iOS 9.3.5; Xcode 7.3]
marco
1

Acabo de limpiar el proyecto y Clean Build Folderpor alt Menú del producto

Edward Ashak
fuente
Atajo para limpiar la carpeta de compilación: alt + cmd + shift + k
Ori
1

Los siguientes pasos funcionaron con éxito.

1) En la biblioteca dinámica, el nombre de instalación tenía que ser "@loader_path"

2) En el proyecto principal, la ruta de búsqueda de Runpath debe ser "@loader_path" y "@ loader_path / Frameworks"

3) Desde el llavero utilizado ver -> mostrar certificados caducados y eliminar todo.

4) Eliminó el certificado de distribución y lo reinstaló.

5) Descargado developer.apple.com/certificationauthority/AppleWWDRCA.cer e instalado.

lanza negra
fuente
1

Recientemente me enfrenté a este problema. Intenté todas las soluciones posibles pero nada funcionó. Al final, simplemente salí de Xcode, eliminé los certificados en llavero e instalé todo nuevo y reinicié mac. Afortunadamente funcionó a las mil maravillas :)

DETENER
fuente
1

Tuve el mismo problema y pude solucionarlo volviendo a descargar el WWDR (Apple Worldwide Developer Relations Certification Authority). Descargar desde aquí :

y establecer siempre confiar en el llavero. Cambiando aUse System Default

funciona para mí, espero que esto te ayude

voidxin
fuente
1

En mi caso, el llavero muestra el certificado como no confiable, para resolver este problema, configuré las opciones de confianza del certificado como "Confiar siempre". Establecer el certificado en "Confiar siempre" fue la causa principal del bloqueo. No pude instalar la aplicación en el dispositivo. Lo resolví estableciendo la opción de confianza en "Valores predeterminados del sistema" en lugar de "Confiar siempre". Funcionó para mí.

Roshni
fuente
1

Verá los mismos síntomas si está trabajando en Xamarin Studio y hace referencia a una biblioteca portátil para la que necesita hacer el cebo PCL y cambiar el truco. Esto ocurre si el proyecto de referencia no está actualizado con respecto a la biblioteca referenciada. Descubrí que había actualizado mi biblioteca común a un marco más nuevo, había actualizado mis paquetes pero no había actualizado mis paquetes de iOS para que coincidieran. Actualizar los paquetes resolvió este error para mí.

El senador
fuente
1

Todavía puede obtener este problema después de probar @Jieyi Hu Answer. parece que está arreglado, pero si vuelve a aparecer (posiblemente en xCode 9).

Sin embargo, esta solución parece funcionar (se aplica a Cocoapods 1.5.x):

  1. limpia tu proyecto
  2. cerrar Xcode y eliminar DerivedData
  3. abra Podfile en su proyecto y agregue esto:

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. actualización de pod

Fuentes:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

Gracias @ Cédric

Pranavan Sp
fuente
0

Puede regenerar su certificado y reiniciar su iPhone.

Esto funciona para mí, espero que esto te ayude.

Joffrey Outtier
fuente
Por favor explique cómo lo hizo.
TDM
0

Resuelvo el problema comprobando mis llaveros locales. Mantenga login.keychain tiene el certificado correcto

Bill Xie
fuente
¡Bienvenido a Stack Overflow! Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones y, una vez que gane suficiente reputación , podrá comentar cualquier publicación. Si tiene una pregunta relacionada pero diferente, haga una nueva pregunta que haga referencia a esta si le ayudará a proporcionar contexto.
ddb
0

Debe establecer el certificado (solo perfil de certificado y no de aprovisionamiento) para cada marco dinámico que esté vinculando (directa o indirectamente) en su proyectoingrese la descripción de la imagen aquí

Mayur Kothawade
fuente
0

En mi caso, después de eliminar toda la certificación creada por Xcode y descargada. Deje que xcode 8.1 gestione la certificación de la aplicación. ¡Funciona bien! Espero que esto pueda ayudar a alguién.

shujucn
fuente
0

He encontrado este problema SOLO en el simulador. Parece estar relacionado con algunos derechos no válidos en nuestra aplicación, pero el problema no aparece cuando lo ejecutamos en un dispositivo.

bkbeachlabs
fuente
0

Resolví usando estos trucos.

Paso 1:

Vaya a la configuración de compilación del proyecto y agregue @ ejecutable_path / Frameworks a la opción Runpath Search Paths

Paso 2:

Vaya a la configuración de compilación de destino y agregue @ executetable_path / Frameworks a la opción Runpath Search Paths y Framework Search Paths.

ingrese la descripción de la imagen aquí

Paso 3:

Vuelva a descargar WWDR (Autoridad de Certificación de Relaciones con Desarrolladores de Apple en todo el mundo), configurada como Usar opción predeterminada del sistema.

Paso 4:

Eliminar todos los datos derivados utilizando Terminal

rm -rf ~ / Library / Developer / Xcode / DerivedData / *

Paso 5 :

Elimine todos los certificados y vuelva a instalarlo en Keychain. He habilitado la opción Usar valores predeterminados del sistema.

Paso 6:

Reiniciar Xcode.

AG
fuente
0

enfrentado el mismo problema

  1. mi certificado de desarrollador expiró, así que creé un nuevo certificado de desarrollador y lo descargué
  2. limpiar y reiniciar xcode esto funciona para mí
Midhun Narayan
fuente
0

Me encontré con este problema con XCode 9. Nada de lo anterior funcionó. Esto hizo el truco para mí:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"a $(PROJECT_DIR)(recursivo)

ggs
fuente
0

Esto resolvió mi error.

Vuelva a descargar WWDR (Autoridad de Certificación de Relaciones con Desarrolladores de Apple en todo el mundo), configurada como Usar opción predeterminada del sistema.

DRP
fuente
0

En mi caso, fue un problema con una de las cápsulas que estaba usando. Terminé eliminando ese pod y colocando el código de él en mi proyecto manualmente.

radthemad4
fuente