El error de package no válido de iTC no puede enviar la aplicación, porque 4 dylibs rápidos no pueden insertse

Mi aplicación funciona bien en dispositivos y simuladores, pero cuando la presento obtengo el package no válido: una o más bibliotecas dinámicas a las que tu aplicación hace reference no están presentes en el error de búsqueda de dylib que me enviaron por correo electrónico aproximadamente media hora después de la La carga se completa con éxito.

Siguiendo el consejo sobre esto aquí , es decir ejecutando otool -L , puedo ver que el ejecutable principal de la aplicación tiene todos sus @rpath/...dylib en la carpeta Frameworks/ como se esperaba, pero el file ejecutable del appex falta algunos Swift libs.

Aquí está el resultado de otool -L en el appex:

 Watch Extension: /System/Library/Frameworks/WatchKit.framework/WatchKit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.0.0) /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3599.4.0) /System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity (compatibility version 1.0.0, current version 116.0.0) @rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftCoreLocation.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftHomeKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftSceneKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftUIKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftWatchKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftsimd.dylib (compatibility version 1.0.0, current version 800.0.46) 

Los siguientes NO están en la carpeta Frameworks/ (pero todos los demás son):

  @rpath/libswiftHomeKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftSceneKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftWatchKit.dylib (compatibility version 1.0.0, current version 800.0.46) @rpath/libswiftsimd.dylib (compatibility version 1.0.0, current version 800.0.46) 

¿Por qué es esto? Regeneré mi proyecto de pods a través de la pod install , no cambié nada. No vi ninguna advertencia. Comprobé la salida del logging de la compilation (file), tampoco hay advertencias. ¿Cómo puedo includelos como deberían?

En el objective de mi aplicación principal, Always Embed Swift Standard Libraries está configurado en yes. En los objectives de Watch and Watch Appex, esto se establece en no para evitar el rechazo por tener duplicates (bueno). Intenté configurar EMBEDDED_CONTENT_CONTAINS_SWIFT en yes en mi appex tal como se describe en ese otro subprocess, pero eso no hizo ninguna diferencia.

Actualización 1: Tampoco puedo exportar como una compilation ADHOC del organizador xcode, falla por el mismo motivo en el paso "comstackr código bit". Las routes de búsqueda de time de ejecución se configuran así:

Rutas de búsqueda de tiempo de ejecución en la configuración de compilación

Aquí hay un fragment de logging de la export fallida, ¿alguna idea de cómo solucionarlos? No veo ninguna razón por la que falten estas libs.

  Debug: Command took 0 seconds Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/WatchKit.framework/WatchKit.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libobjc.A.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libSystem.B.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity.tbd Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libobjc.A.tbd Debug: Search Path: ['/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin', '/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib', '/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks'] error: libswiftCore.dylib not found in dylib search path Stderr: from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1974:in `block in CompileOrStripBitcodeInBundle' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1931:in `each' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1931:in `CompileOrStripBitcodeInBundle' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1921:in `block in CompileOrStripBitcodeInBundle' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1920:in `each' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1920:in `CompileOrStripBitcodeInBundle' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2106:in `ProcessIPA' from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2674:in `<main>' 2016-09-14 15:33:40 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with 1 2016-09-14 15:33:40 +0000 ipatool JSON: { alerts = ( { code = 2554; description = "Configuration issue: platform AppleTVSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; info = { }; level = WARN; }, { code = 2554; description = "Configuration issue: platform iPhoneSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; info = { }; level = WARN; }, { code = 2554; description = "Configuration issue: platform WatchSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCore.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCore.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCoreGraphics.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCoreGraphics.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCoreLocation.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCoreLocation.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftDarwin.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftDarwin.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftDispatch.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftDispatch.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftFoundation.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftFoundation.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftHomeKit.dylib: Could not resolve @rpath in @rpath/libswiftHomeKit.dylib from Watch Extension"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftObjectiveC.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftObjectiveC.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftSceneKit.dylib: Could not resolve @rpath in @rpath/libswiftSceneKit.dylib from Watch Extension"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftUIKit.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftUIKit.dylib"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftWatchKit.dylib: Could not resolve @rpath in @rpath/libswiftWatchKit.dylib from Watch Extension"; info = { }; level = WARN; }, { code = 284; description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftsimd.dylib: Could not resolve @rpath in @rpath/libswiftsimd.dylib from Watch Extension"; info = { }; level = WARN; }, 

Tomó 12 horas para resolver esto, pero esto es lo que lo solucionó: cambiar la ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES compilation ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES así:

Destino de la aplicación ( objective principal): establecido en NO (el mío era SÍ)

Mire el objective : establezca SÍ (el mío fue NO)

Mira el objective de Extensión de la aplicación : establece en NO (el mío fue SÍ)

Edit : Me di count de esto creando un nuevo proyecto de reloj vacío en xcode 8, y haciendo references cruzadas sobre las diferencias entre las configuraciones de construcción en el nuevo proyecto de plantilla xcode 8 y mi viejo y antiguo proyecto. La configuration anterior es lo que tiene el proyecto de plantilla xcode 8.

Quería explayarme sobre mi experiencia con este problema para poder salvar a algún otro time si se topan con esto.

Fondo:

  1. El proyecto anterior se originó con iOS 8, la aplicación WatchOS 1.0 y la extensión de hoy
  2. Actualización de la aplicación de Swift 1.0 a Swift 3.0.1, actualización de iOS de 8 a 10, watchOS de 1.0 a 3.0
  3. Comenzó a usar Cocoa Pods con esta actualización, no fue originalmente

@xaphod tenía bibliotecas perdidas, cuando ejecuté el otool -L todas las bibliotecas se veían correctas en cada uno de los objectives.

Después de muchos binarys rechazados finalmente:

  1. Cocoapods desinstalados del proyecto, como se sugiere aquí
  2. Cocoapods actualizado a la versión más reciente, no beta
  3. Reinstala Cocoapods, networkinguciendo los objectives de pod desde la aplicación, mira la aplicación, mira la extensión, la extensión de hoy y testing los objectives solo para la aplicación (ya que la aplicación principal era la única cosa que usaba los pods)
  4. Se siguió la sugerencia @xaphod publicada aquí para crear un nuevo proyecto de plantilla (sin usar pods) y se compararon las configuraciones de compilation, en particular ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
  5. Establezca ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES

Destinatario principal de la aplicación = $(inherited) por cápsula de cocoa. Por defecto es YES y en realidad se muestra como YES - $(inherited) en Xcode. Por último, EMBEDDED_CONTENT_CONTAINS_SWIFT = YES por configuration de pod que los pods hacen por usted

Ver aplicación = YES

Mira la extensión = NO

Hoy Extensión = NO

Antes de la configuration anterior, intenté $(inherited) para que todo haga felices a las cápsulas de cocoa. Esta claramente fue una mala decisión de la vida.

Finalmente encontré el bash de exportar como AD HOC fallaba si iTunes Connect no aceptaba el binary, así que podría ahorrar time probando teorías antes de lanzar la compilation en Apple. Intenté comparar un binary exitoso con uno defectuoso, pero realmente no vi nada en particular que se destacara en la diferencia.

Todavía no me siento 100% cómodo con la forma en que obtuve este trabajo pero estoy feliz de poder finalmente cargar un file binary. Saludos y buena suerte!

🎉 🎉 🎉 Impresionante, conocí el mismo problema 🎉 🎉 🎉

Eche un vistazo a la Embeded Binaries Section , si pudiera ver alguna ruta absoluta en la ruta de reference. Puede eliminar el marco del tree del proyecto a la izquierda y volver a agregar el marco. Asegúrese de que la ruta sea … en la ..in build/Debug-iphoneos

¡Te deseo buena suerte!