tutorial for español developer apple ios xcode swift

ios - español - xcode for windows



dyld: Biblioteca no cargada: @ rpath/libswiftCore.dylib (30)

Cambie los recursos de los pods de copia para el objetivo desde:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

a:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"

Estoy intentando 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

  • Reiniciando Xcode, iPhone, computadora
  • Limpieza y reconstrucción
  • Revocar y crear nuevo perfil de certificado / provisión.
  • Runpath Search Paths es $(inherited) @executable_path/Frameworks
  • El contenido incrustado contiene código Swift es ''Sí''
  • Identidad de firma de código 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


Comencé a recibir este error cuando quité:

@executable_path/Frameworks

de Runpath Search Paths en mi configuración de compilación. Reemplazarlo lo arregló todo de nuevo (¡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 incorporado.


Creo que Apple ya lo ha resumido en la aplicación Swift se bloquea al intentar hacer referencia a la biblioteca Swift libswiftCore.dylib

Citado de la sección de preguntas y respuestas técnicas QA1886 :

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

P: ¿Qué puedo hacer con el error de carga de libswiftCore.dylib en la consola de mi dispositivo que ocurre cuando intento ejecutar la 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 del sujeto (OU) establecida en su ID de equipo. Todos los certificados de desarrollador de iOS estándar y de empresa que se crean después de que se lanzó iOS 8 tienen el nuevo campo de ID del equipo en el lugar adecuado para permitir que se ejecuten las aplicaciones de lenguaje Swift.

Por lo general, este error aparece en el registro de la consola del dispositivo con un mensaje similar a uno de los siguientes:

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary: /private/var/mobile/Containers/Bundle/Application/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 de aplicaciones swift existente no funcionará. Si se construyó con un certificado pre-iOS 8, deberá crear otro archivo.

Importante: tenga cuidado si necesita revocar y configurar un nuevo certificado de Distribución Empresarial. Si usted es un desarrollador interno de Enterprise, deberá tener cuidado de no revocar un certificado de distribución que se usó para firmar una aplicación; cualquiera de sus empleados de Enterprise sigue utilizando como cualquier aplicación firmada con ese certificado de distribución de empresa. dejará de funcionar de inmediato. Lo anterior solo se aplica a los certificados de Distribución Empresarial. Los certificados de desarrollo son seguros para revocarlos para desarrolladores de iOS empresariales / estándar.

A medida que los individuos de AirSign state las raíces del problema del atributo OU faltante en el campo de asunto del certificado interno.

Asunto: UID = 269J2W3P2L, CN = Distribución de iPhone: Nombre de la compañía, OU = 269J2W3P2L , O = Nombre de la compañía, C = FR

Tengo un certificado de desarrollo empresarial, creando uno nuevo solucionado el problema.


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 Apple Developer donde se administran los certificados: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. seleccione su (s) certificado (s) (que deberían mostrar "Administrado 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> haga clic en el botón Actualizar para actualizar los certificados y los perfiles de aprovisionamiento

Cuando Xcode le pide que restablezca los certificados, lo restablece . Y la aplicación se puede ejecutar en un dispositivo real sin que se bloqueen los mensajes de error. Una vez resuelto este problema en un proyecto veloz. Otros proyectos rápidos con este problema son arreglados también.

He luchado por estos alrededor de medio día y descubrí que restablecer los certificados una y otra vez en el portal de aprovisionamiento no ayuda.


Después de haber probado todo, finalmente descubrí que la construcción parece no incluir cada detalle una y otra vez. Tal vez para acelerar el proceso ... Para asegurar un embalaje ENTERO antes de ejecutarlo en un dispositivo, primero haga una limpieza: Shift-Cmd-K. Luego construye con: Cmd-B. Después de eso ejecútalo en tu dispositivo. Fácil. Un cordial saludo a todos ustedes, buenos chicos en ese lugar!


En Xcode 8, la opción para Embedded Content Contains Swift Code opción Embedded Content Contains Swift Code ya no está disponible.

Se le cambió el nombre a "Always Embed Swift Standard Libraries = YES"


En mi caso,

He configurado @executable_path/Frameworks

Pero también tengo que establecer "Rutas de búsqueda de marco"

$(PROJECT_DIR)/Frameworks

cambiar como recursive

Lo que funciona para mí.


En mi caso, era solo el nombre de mi objetivo:

Lo renombré así : MyApp.something y apareció el mismo problema. Pero vi en la ventana de Configuración de compilación, el nombre de mi módulo de producto ha sido cambiado como este MyApp-algo . Por lo tanto, eliminé el punto en mi nombre de destino ( MyAppSomething ) y el problema desapareció.


En mi caso, uno de mis objetivos de prueba estaba funcionando pero el otro no. Estaba dando el error anterior con una biblioteca faltante o lo que sea. Comparé las configuraciones para ambos objetivos de prueba y encontré que a uno le faltaba la configuración de "Host de prueba", ¡así que copié eso del objetivo de prueba de trabajo y solucioné mi objetivo de prueba roto!


Estaba teniendo el mismo problema después de cambiarme a un nuevo Mac, y después de las 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


Este mensaje de error también puede deberse al actualizar Xcode (y posteriormente a una nueva versión de Swift) y su proyecto utiliza un marco de trabajo creado / compilado con una versión anterior / anterior de Swift.

En este caso, reconstruir el marco y volver a agregarlo solucionará el problema.


Estoy usando Xcode 7.2. Si ha intentado todo lo anterior y el error persiste, ¡intente eliminar el certificado anterior de Keychain Access! Es un dolor para finalmente arreglar esto.


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

Edición: En realidad, lo que parecía ayudar aquí era que Xcode 9.2 utilizaba los datos derivados de Xcode 8.3.3. No es una solución, pero al menos me permite seguir adelante con mi trabajo.


Hay muchas respuestas allí, pero puede que mi respuesta ayude a alguien.

Estoy teniendo 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 el error anterior. He intentado todas las respuestas y soluciones. En Mi caso, Mi proyecto Tengo varios objetivos. He creado un objetivo duplicado B desde el objetivo A. El objetivo B funciona bien mientras que el objetivo A se estrelló. 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 recursos de Imágenes de lanzamiento para ambas aplicaciones. por ejemplo, Target A Launch Image nombre del activo LaunchImage A. Target B Lunch Image nombre de activo LaunchImage B y asignado correctamente en la pestaña General de cada objetivo. Mis aplicaciones funcionan bien.


Las soluciones anteriores no funcionaron para mí. Arreglo el problema siguiendo los siguientes 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 configuración de xcode> cuenta e inicie sesión en su cuenta de desarrollador de Apple.

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


OK, compartiendo aquí otra causa de este error. Me tomó unas horas resolver esto.

En mi caso, la política de confianza de mi certificado en Keychain Access fue Always Trust , cambiando de nuevo a la configuración predeterminada resolvió el problema.

Para abrir la ventana de configuración del certificado, haga doble clic en el certificado en la lista de certificados de Keychain Access.


Para agregar a la solución de certificado de distribución empresarial: puede abrir Keychain e inspeccionar el certificado. Si hay algún texto en rojo que diga que la cadena de confianza no se puede verificar o que se está revocando, ¡NO FUNCIONARÁ! En mi computadora, nuestro certificado de distribución se mostraba como revocado a pesar de que el portal web lo mostraba como todavía válido. Obtuvimos un nuevo certificado de distribución, que era verde (válido) en Keychain, y esto resolvió el problema.


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


Para mí ninguna de las soluciones anteriores funcionó. Descubrimos que hay un indicador de "Siempre incrustar bibliotecas estándar de Swift" en la Configuración de compilación que se debe establecer en SÍ. ¡Era NO por defecto!

Build Settings > Always Embed Swift Standard Libraries

Después de configurar esto, limpie el proyecto antes de construir nuevamente.

Para los lectores interesados, una explicación. La parte más importante es:

establezca la configuración de compilación del Contenido incrustado que contiene Swift (EMBEDDED_CONTENT_CONTAINS_SWIFT) en SÍ en su aplicación, como se muestra en la Figura 2. Esta configuración de compilación, que especifica si el producto de un objetivo tiene contenido incrustado con el código Swift, le dice a Xcode que incruste bibliotecas estándar de Swift en su aplicación cuando se establece en SÍ.

La bandera que antes se llamaba Embedded Content Contains Swift Code


Para mí, después de haber 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)


Resolví eliminando los datos derivados y esta vez funcionó correctamente. Probado con Xcode 7.3.1GM


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


Tenía este problema con la ejecución de mis pruebas de Swift (pero no mi aplicación). Resulta que la prueba necesitaba tener más de @executable_path/Frameworks en su configuración de compilación Runpath Search Paths para el objetivo de la prueba. La configuración de las Rutas de búsqueda de Runpath a las siguientes me sirvió de encanto:

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


Tengo varias versiones de Xcode instaladas al mismo tiempo. El marco fue construido con una nueva versión de Xcode. La aplicación que intenté compilar fue con una versión anterior de Xcode. Cuando limpié y compilé tanto el marco como la aplicación con la misma versión de Xcode, las cosas funcionaron.


Vamos a proyectar P está importando la biblioteca personalizada L, luego debe agregar L en

P -> Build Phases -> Embed Frameworks -> + . Funciona para mi.



ninguna de estas soluciones pareció funcionar, pero cuando cambié el permiso del certificado World Wide Developer para Use System defaults , funcionó. He incluido los pasos y capturas de pantalla en el siguiente enlace

Le animo a registrar el ticket en el informe de error de Apple como se menciona aquí, ya que Apple realmente debería resolver este error masivo: https://.com/a/41401354/559760


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

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