validation - Encontró un código de encabezado de Mach-O inesperado: 0x72613c21 en Xcode 7
dynamic frameworks (14)
Eche un vistazo a esta documentación de Apple Incrustar marcos en una aplicación, vaya a la sección Bibliotecas estáticas integradas que explican este error de esta manera:
Esto se debe a colocar una biblioteca estática en una estructura de paquete que se parece a un marco; a veces, los desarrolladores de frameworks de terceros hacen referencia a este empaque como un marco estático. Dado que el binario en estas situaciones es una biblioteca estática, las aplicaciones no pueden incrustarlo en el paquete de la aplicación.
También proporcionan una forma de arreglar:
Puede resolver este error identificando el marco estático y eliminándolo de la sección Binarios incrustados.
Para lograr esto, siga las instrucciones en Inspección del enlace de un binario
Tengo un proyecto Swift que utiliza un marco dinámico ObjC, el marco tenía que estar vinculado e integrado en mi proyecto. El proyecto se ejecuta correctamente en dispositivos, cuando se envía a App Store, el error ocurrió durante la validación: Found an unexpected Mach-O header code: 0x72613c21
A continuación se encuentran los registros de validación:
2015-10-12 02:32:33 +0000 [MT] Beginning distribution assistant for archive: MusicFans, task: Validate
2015-10-12 02:32:33 +0000 [MT] Automatically selecting the only availaable distribution method <IDEDistributionMethodiOSAppStoreValidation: 0x7f851c1d96c0>
2015-10-12 02:32:34 +0000 [MT] [OPTIONAL] Didn''t find archived user entitlements for <DVTFilePath:0x7f851b42db10:''/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/Frameworks/libswiftDispatch.dylib''>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/Frameworks/libswiftDispatch.dylib" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/Frameworks/libswiftDispatch.dylib" did not contain a "archived-expanded-entitlements.xcent" resource.}
2015-10-12 02:32:34 +0000 [MT] [OPTIONAL] Didn''t find archived user entitlements for <DVTFilePath:0x7f8529a08050:''/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/wavpack.framework''>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/wavpack.framework" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/wavpack.framework" did not contain a "archived-expanded-entitlements.xcent" resource.}
2015-10-12 02:32:34 +0000 [MT] [OPTIONAL] Didn''t find archived user entitlements for <DVTFilePath:0x7f850da13de0:''/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/FLAC.framework''>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/FLAC.framework" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/panzhansheng/Library/Developer/Xcode/Archives/2015-10-11/MusicFans 11-10-15 上午8.29.xcarchive/Products/Applications/MusicFans.app/FLAC.framework" did not contain a "archived-expanded-entitlements.xcent" resource.}
2015-10-12 02:33:07 +0000 [MT] Canceled distribution assistant
Si elimino el marco dinámico de la sección de marcos incrustados del proyecto, puede pasar la validación, pero se bloquea cuando se ejecuta en dispositivos debido a la imagen que falta de mi marco dinámico, ¿alguna idea? Por cierto, el marco dinámico tiene el código de bits deshabilitado, por lo que mi proyecto también deshabilita el código de bits, y no está codificado.
En mi caso, fue causado por un cambio de certificado / equipo del Desarrollador.
Comienzo el proyecto con la identificación personal de Dev Apple y cuando la cambié por mi ID de trabajo. Cuando intentamos exportar .xcarchive, aparece el error "Coincidir con O-Match". Nada de lo que se describe aquí o en otros sitios no cambia nada.
Cuando cambio el equipo a mi ID personal, los registros de errores muestran los archivos .xcent faltantes para unos pocos frameworks ahora (más recientemente agregado). Así que empiezo un proyecto completamente nuevo, pego todas las fuentes y archivos, luego ejecuto cocoapod y todo funciona como esperaba.
En mi caso, tengo un marco arrastrado manualmente en mi proyecto, y aparece en General
-> Embedded Binaries
, que causan el error. Found an unexpected Mach-O header code: 0x72613c21
. Después de Embedded Binaries
a Linked Frameworks and Libraries
, el problema se resolvió.
Encontré este problema en un proyecto de Framework muy simple. Solo tenía un objetivo en mi proyecto para el marco y funcionaba bien. Quise agregar algunas pruebas unitarias, así que agregué dos nuevos objetivos: un objetivo del paquete de pruebas de la unidad iOS, y un objetivo de la aplicación de vista única (para actuar como una aplicación de host para las pruebas). Sin embargo, ambos nuevos objetivos lanzaban este error.
Descubrí que el problema fue causado por la configuración de compilación Mach-O Type en los nuevos objetivos configurados en Biblioteca estática. Aparentemente, los nuevos objetivos heredaban el tipo Mach-O del Proyecto principal. Cuando configuré Mach-O Type en la configuración correcta ("Bundle" para pruebas unitarias y "Executable" para la aplicación host) ¡todo funcionó! También tuve que limpiar compilación, eliminar datos derivados y reiniciar el simulador para obtener las nuevas configuraciones.
Me encontré con este error con un marco de FacebookSDK. Lo eliminé de la lista de marcos incrustados en Crear fases y resolvió el problema. Inspeccione el registro y encuentre el marco causante del error mencionado por otros.
Mike de Fabric aquí.
Este fue un error en Xcode Beta 2 y 3, se ha corregido en Beta 4 y la actualización a la última lo resolverá.
Tuve el mismo problema en Xcode 8 beta 3. Lo arreglé eliminando Fabric y Crashlytics desde Linked frameworks (Proyecto => Objetivo => página General) ( source )
Tuve este problema con un marco PFFacebookUtils añadido manualmente en un proyecto Swift 2.3 que no pertenece a CocoaPods. Lo arreglé quitando dicho marco de la sección de marcos incrustados de la página "General" del objetivo de compilación y lo vinculé en Fases de compilación -> Enlace binario con bibliotecas
Tuve un problema. Hice un par de cosas y mi problema desapareció. Creo que mi problema estaba relacionado con la versión de Cocoapods pero puedes probar algunas cosas aquí.
Primero limpie DerivedData por:
1. Desactivar Xcode
2. Ir a ./Users/YourFile/Library/Developer/Xcode/DerivedData
3. Eliminar todo de esta carpeta
4. Ejecutar Xcode
5. Construir y limpiar
En segundo lugar, por alguna razón, con la última versión 0.39 de pods de cacao, recibí la siguiente advertencia cuando ejecuté la pod install
[!] El objetivo
MY_TARTGET
anula la configuración de compilaciónEMBEDDED_CONTENT_CONTAINS_SWIFT
definida en `Pods / Target Support Files / Pods / Pods.release.xcconfig ''. Esto puede ocasionar problemas con la instalación de CocoaPods
He degradado los cocoapodios eliminando todos los cocoapods instalados:
sudo joya desinstalar cocoapods
luego instala la versión anterior:
sudo gem instala cocoapods -v 0.38.1
Esto eliminó la advertencia y pude eliminar el error, "código de encabezado de Mach-O inesperado: 0x72613c21"
Verifique dos cosas para cada marco:
- El tipo Mach-O del marco (en Configuraciones de compilación del objetivo del marco)
- Ya sea que copie el marco de trabajo al ponerlo en Fases de compilación -> Incrustar marcos (o Copie los recursos del paquete como se menciona en a. Brooks hollar)
Si el tipo Mach-O del marco es "biblioteca estática", no se debe colocar en marcos incrustados; si el tipo de Mach-O es "biblioteca dinámica", debe colocarse en marcos incrustados.
En mi caso, fue SocketRocket que agregué manualmente, que tiene un objetivo de biblioteca estática y un objetivo de biblioteca dinámica con el mismo nombre de marco. Después de eliminar el objetivo de la biblioteca estática y solo incrustar el marco de la biblioteca dinámica, el problema desaparece.
Nota :
Si no tiene acceso al proyecto fuente, puede verificar manualmente si se trata de un marco dinámico o estático que utiliza este enfoque: https://.com/a/32591983/308315
Verifique las Fases de compilación -> Copie los recursos del paquete para un marco u otro archivo binario que no esté allí.
En mi caso, fue una biblioteca de terceros (Parse) que agregué.
Linked Frameworks and Libaries
Embedded Binaries
y agréguelos a los Linked Frameworks and Libaries
, luego vuelva a Linked Frameworks and Libaries
y cargue en la tienda.
Editar : Esto parece ser reparado en Xcode 8 Beta 3.
Actualmente estoy experimentando este problema con Xcode 8 Beta 2 y Swift 3 con Pods rápidos (lo que parece estar causando el problema).
Agregar lo siguiente a mi Podfile ha solucionado el problema.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[''ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES''] = ''NO''
end
end
end
El crédito va a este comentario de YuAo en GitHub.