dyld`__abort_with_payload: sin mensaje de error

85

Cuando inicio mi aplicación con XCode, tengo un bloqueo pero no hay error

La aplicación acaba de detenerse en este hilo

ingrese la descripción de la imagen aquí

¿Qué puedo hacer para tener más información sobre el problema?

Kevin ABRIOUX
fuente

Respuestas:

107

Si está utilizando marcos personalizados, debe colocarlo dentro de la sección "Binarios integrados" ubicada en el proyecto Xcode en la pestaña Destino / General.

mkonovalov
fuente
1
Tengo un marco personalizado y aparece en "Binarios integrados" en el proyecto Xcode en Destino> General. Sigo teniendo este problema cuando intento ejecutar mis pruebas unitarias. Recientemente actualicé las partes de Swift de mi código a Swift 3 (de 2). Si eso ayuda ...
Mario A Guzman
@MarioAGuzman ¿Cómo lo arreglaste? También me enfrento al problema después de la migración de Swift 3
iOS
@iOS Desafortunadamente, no tuve una solución real. El problema se resolvió con Xcode 8.3 que se acaba de lanzar.
Mario A Guzman
¿Por qué es necesario que esté en la sección Binarios integrados? Estoy tratando de usar ObjectiveDropboxOfficial.framework. Recibí este error, lo puse en Embedded y lo 'solucionó'. Sin embargo, lo saqué de nuevo y sigue 'arreglado'. Sin embargo, otros objetivos que están configurados con el mismo AFAICT fallan. Los documentos de instalación de Dropbox no dicen que se coloquen en Embedded Frameworks.
Jim Leask
Eso ayudó. También asegúrese de no tener duplicados en las "Bibliotecas y marcos vinculados". Cuando lo agrega a la sección Incrustado, lo agrega automáticamente a la sección Vinculado.
milesmeow
59

Para mí un simple Cleany Rebuildresuelto. Espero eso ayude.

FlixMa
fuente
81
Limpiar, limpiar la carpeta de compilación, eliminar el contenido de la carpeta de datos derivados, instalar Pod (donde corresponda), reiniciar Xcode, reiniciar la máquina; luego unte un poco de sangre de cordero en la puerta por si
acaso
1
¡¡También me ayudó !!
Dmitriy Greh
Eliminar el directorio y obtener la última confirmación de git no ayudó, pero limpiar y reconstruir ayudó lol
え る ま る
8
En mi caso, tuve que atar ají y limón en el marco de mi puerta.
Naresh
1
Tuve que sacrificar a mi primogénito también, ¡pero funcionó!
Andor Németh
25

ingrese la descripción de la imagen aquíEste problema apareció después de la actualización del sistema hasta macOS 10.15.2 beta. La desactivación de "Thread Sanitizer" resolvió el problema (Xcode 11.2). Ahora no puedo usar Thread Sanitizer y tengo que esperar a la próxima actualización del sistema operativo.

Дмитрий Акимов
fuente
6
Esta publicación responde a las preguntas originales cuando surge el problema en los simuladores de Xcode 11.3 después de actualizar a Mac 10.15.2. Parece el error de Apple, consulte forums.developer.apple.com/thread/126891
Vadim Motorine
19

Agregar el marco a la lista de activos binarios incorporados solucionó esto. Así es como se ve la configuración de un marco externo en su forma final en la GUI de Xcode como un marco incrustado (Xcode 9.2, personalmente me gusta más un rastro de miga de pan visual ;-)): ingrese la descripción de la imagen aquí

¿Apple bloqueó intencionalmente el tiempo de ejecución para informar de alguna manera al desarrollador sobre el problema de que no puede usar marcos que no sean de Apple como marcos simplemente vinculados en el desarrollo de iOS? Creo que sería mejor que apareciera como un error de compilación ... con un botón que dijera "¡mover!"

El uso de Embedded Binaries evita que el usuario final tenga que agregar el Framework independientemente de su aplicación (o tener que hacerlo con un instalador). En el caso del iPhone (iOS), eso es imposible, pero en macOS es posible, pero puede complicarse rápidamente.

Para el usuario final, es mucho mejor simplemente arrastrar y soltar una aplicación para instalarla en macOS, que es donde la integración se convierte en un beneficio. La incrustación también evita los clásicos "conflictos de DLL" de tener que administrar versiones externas de su marco. (el espacio en disco es barato, el tiempo de mi cliente es precioso).

William Cerniuk
fuente
Pequeña actualización. Xcode 10.1 ahora le permite arrastrar el marco personalizado desde la sección "Vincular binarios con bibliotecas", donde va de forma predeterminada, a la sección "Copiar recursos del paquete" donde debe estar ... Ya no solo copia la referencia pero lo mueve también.
Captura de
13

¡Arreglé el error en mi proyecto ahora mismo!
Si está utilizando un marco rápido en el proyecto Object-C, le aconsejo que cambie la configuración de compilación.
La opción Incrustar siempre las bibliotecas estándar de Swift en SÍ. Me gusta esto:ingrese la descripción de la imagen aquí

Espero que esto te haya sido útil.

Hongbo Liu
fuente
Esto funcionó para mí incluso si (aparentemente) no hay un código rápido en mi proyecto.
Jim75
XCode cambió a valor de nuevo a No y lo había olvidado. Gracias :)
SeikoTheWiz
13

¡Finalmente resuelto!

Lo que funcionó para mí fue hacer que el marco sea "opcional" en lugar de "obligatorio".

¡Espero que ayude!

Eran Talmor
fuente
super hombre, luché con este problema 1,5 días. incluso encontré esta bonita matriz twitter.com/isupportmatrix cambiándola a requerida resuelta a mi lado también
swift2geek
y también funcionó solo con la configuración en Archivo -> Configuración del proyecto-> Sistema de compilación heredado
swift2geek
10

Xcode 11.1, apagar Do not Embed, Embed & Signes una buena opción.

0

222

Gracias @mkonovalov, @William Cerniuk

Perla Negra
fuente
1
Trabajó para mi. +1
abhimuralidharan
1
Este paso es obligatorio para intentar incrustar su marco personalizado en su aplicación.
Akash Bhardwaj
6

1) Continúe la ejecución para ver si aparece algún mensaje en el depurador como "MyFramework.framework" no encontrado. Si ese es el caso, siga esta discusión: OS X Framework Library no cargada: 'Imagen no encontrada' Para mí, esta respuesta funcionó: https://stackoverflow.com/a/44796734/4060763

2) Asegúrese de haber agregado sus binarios a través de la sección "Insertar binarios".

3) Asegúrese de haber habilitado la firma de marcos en la sección de fase de compilación.

4) Asegúrese de que los marcos incrustados no sean enlaces simbólicos.

5) Puede hacer que los marcos vinculados sean opcionales en lugar de obligatorios en la fase "Vincular binarios con bibliotecas". Esto le dirá a iOS que no busque estos marcos durante el lanzamiento. ¡Pero de todos modos necesitas corregir los errores para usar esos marcos!

6) Compruebe si todas las entradas de info.plist son correctas. En mi caso, estaba usando un archivo info.plist de Mac para iOS. Estaba buscando algún archivo xib que no estaba presente en el proyecto iOS.

7) Haga una limpieza y construya después de cualquier cambio. Esto es necesario porque xcode no copia / cambia estos archivos si ya existen.

8) Elimine la aplicación del iPad y luego instálela. La misma razón que 7.

coolVick
fuente
6

Desmarcar "Guard Malloc" en el diagnóstico funcionó para mí. Ver imagen para configuraciones

Bucle infinito
fuente
2
Guard Malloc, ser correcto. ¿Alguien sabe por qué soluciona el bloqueo?
Mojo66
1
También puede intentar limpiar el proyecto y luego ejecutarlo nuevamente o simplemente reiniciar Xcode. Este tipo de errores son simplemente molestos y son como errores en Xcode
Karanveer Singh
5

Para responder a la pregunta original "¿Qué puedo hacer para tener más información sobre el problema?", Este hilo del foro de Apple proporciona un consejo muy simple: simplemente ejecute su aplicación que falla fuera de XCode (es decir, deténgala de XCode, luego ejecútela manualmente en su dispositivo). Esto producirá un registro de fallos que contiene más detalles sobre lo sucedido. Luego, puede revisar este registro desde el menú de la ventana XCode / Dispositivos y simuladores -> Ver registros de dispositivos.

Fred
fuente
4

No había aplicado la "Privacidad - Descripción de uso de la cámara" en info.plist.

Sin embargo, no sé si esta información ayuda a alguien más ...

Linus
fuente
4

Enfrenté el mismo problema con Xcode 11.3 y macOS Catalina 10.15.2. La aplicación funcionaba bien en el dispositivo, pero no en el simulador. Parece que hay un problema con Simulator y la solución es desactivar Thread Sanitizer.

Consulte: https://forums.developer.apple.com/message/397978#397978

Espero que esto ayude.

Pankaj Kulkarni
fuente
3

Encontré un error con la misma firma (mi proyecto estaba en Obj-C) y descubrí que había olvidado vincularme con el marco apropiado. El mensaje de error en el registro de depuración que llevó a encontrar el error fue:

dyld: Símbolo no encontrado: _OBJC_CLASS _ $ _ SFSafariViewController

Para mi error específico, agregar SafariServices.framework en los Objetivos -> Fases de compilación -> "Vincular binarios con bibliotecas" resolvió el problema. Si bien es probable que no tenga el mismo error y resolución específicos, es útil verificar el registro de depuración en busca de pistas.

usuario1825506
fuente
2

Tuve esta situación después de actualizar Xcode a v10.2.1 y rápido a v5.0 Si estás usando carthage + RxSwift, el nuevo RxSwift usa RxRelay.framework. Debe ir a su directorio / Carthage / Build, encontrar ese marco y arrastrarlo a su proyecto. No olvides agregarlo también a tu carthage copy-frameworksscript: $(SRCROOT)/Carthage/Build/iOS/RxRelay.framework

Resuelto gracias a: https://stackoverflow.com/a/52550148/2493555

milczi
fuente
1

Si está utilizando un marco escrito en Swift en una aplicación Objective-C, debe incluir la cadena de herramientas Swift en la aplicación que consume el marco.

La forma en que encontré para hacer esto es crear un archivo rápido ficticio en la aplicación para que XCode reconozca rápido y lo agregue apropiadamente al proyecto. A continuación, puede eliminar el archivo ficticio.

Me encantaría que alguien supiera una manera mejor de agregar explícitamente swift a un proyecto de objetivo-c sin agregar un archivo swift.

Markw
fuente
1

Si usa el marco de construcción Carthage, después de arrastrar el marco a su proyecto, debe agregarlo a Binarios generales / incrustados.

respondedor
fuente
1

Encuentro la forma correcta de resolverlo.

Asegúrese de AppleWWDRCA.cerestablecer el modo predeterminado del sistema, luego funcionará:

ingrese la descripción de la imagen aquí

León
fuente
Me funcionó a mi también.
dev_shanghai
1

Estaba enfrentando el mismo problema. Establecer 'Siempre incrustar bibliotecas estándar Swift' en Sí en la configuración de compilación de mi objetivo funcionó para mí.

Panda de Arpit
fuente
1

Tuve un problema similar que se resolvió al faltar la especificación de permiso en plist (por extraño que sea ..)

Intenté usar AVCaptureDevice y simplemente se bloqueó al iniciar (mi aplicación era mínima)

Añadiendo - Privacy - Camera Usage Description para info.plistresolverlo por mí.

Rock_Artist
fuente
1

Para agregar a la larga lista de encuentros con este error, ocurre cuando estoy en XCode12.2 Beta 2 implementando en mi Mac con MacOS 10.15.5 con el objetivo de implementación configurado en MacOS 11.0. Esta situación sucedió porque estaba probando la aplicación Tutorial de Mac Catalyst sobre cómo agregar una barra lateral. Cambiar el objetivo a MacOS 10.15.5 eliminó el error e inició la aplicación correctamente.

Steve Harris
fuente
0

He arreglado mi error en mi proyecto.
1. Verifique otros hilos cuando ocurrió el error. Descubrí que mi error es sobre la cámara.

ingrese la descripción de la imagen aquí

  1. Agregue la privacidad de la cámara en el archivo Info.plist.
    1) Abra el archivo info.plist.
    2) Agregue una nueva clave llamada "Privacidad - Descripción de uso de la cámara" e ingrese una cadena que describa por qué la aplicación necesita cámara. Las descripciones se mostrarán cuando su aplicación necesite usar la privacidad.

ingrese la descripción de la imagen aquí

WangYang
fuente
0

Acabo de tener el mismo problema y la razón se debió al hecho de que revoqué mis Certificados de desarrollador y creé otros nuevos con Xcode 10, después de una nueva actualización de macOS Mojave (para algunos, eliminó todas las credenciales de inicio de sesión y algunas obsoletas certificados de llavero).

Entonces, todo lo que tuve que hacer fue eliminar las aplicaciones instaladas de mi dispositivo y ejecutarlas a través de Xcode nuevamente, para que se instale el nuevo perfil de aprovisionamiento correcto en mi dispositivo :)

Frank Eno
fuente
0

A veces sucede cuando usa marcos del sistema a los que solo se puede acceder desde una versión de iOS posterior a la versión de destino. Puede solucionarse marcando este marco vinculado como opcional.

Por ejemplo, un proyecto dirigido a iOS 11 y que esté utilizando AuthenticationServices para la función Autocompletar de iOS 12 se bloqueará en iOS 11 de la manera descrita.

lazarevzubov
fuente
0

En realidad, tuve el problema con 11.3.1 y Thread Sanitizer ya estaba desactivado como se mencionó anteriormente. En mi caso, el problema era que solía tener diferentes versiones de xCode en mi carpeta de aplicaciones como esa

/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app

y

/Applications/Xcode.app - was 11.2

Me lleva 2 días comprender que el sistema de compilación se ve en /Applications/Xcode.app de forma predeterminada. Entonces, llevar 11.3.1 a /Applications/Xcode.app finalmente resuelve el problema

d.rozumeenko
fuente
0

Además, si está utilizando marcos personalizados, asegúrese de configurar el tipo Mach-O en biblioteca estática. Leí en alguna parte que IOS no permite dylib. De todos modos esto funcionó para mí.

Michael Cintas
fuente
0

El mismo problema pasó conmigo. Tenía iOS 14 Beta y el problema se solucionó cuando lo actualicé a la versión oficial.

Dakata
fuente
-1

Experimenté ese problema solo cuando lo ejecuté en un dispositivo real (iPhone SE). En el proyecto de simulador funcionó como se esperaba.

Probé todas las correcciones desde este mismo hilo y desde aquí: OS X Framework Library no cargada: 'Imagen no encontrada' Ninguno de ellos funcionó para mí.

Para mí, el problema se resolvió después de reiniciar el iPhone (¡sic!).

Yo hice:

  • carpeta de construcción limpia,
  • datos derivados limpios,
  • eliminar la aplicación del dispositivo,
  • Reiniciar dispositivo

Y finalmente funciona. :)

Si cualquier otra solución falla, no olvide probarla.

vandermesis
fuente
-3

Lo tengo ordenado por el comando "pod install".

Amandeep Singh
fuente