Agregar varios pods aumenta el time de inicio de la aplicación iOS en más de 10 segundos

Estoy haciendo un proyecto de aplicación de iOS en Swift 1.2, usando Cocoapods 0.37.2, Xcode 6.3.2. Después de agregar alnetworkingedor de 8 pods en mi proyecto, el time de inicio de la aplicación aumenta considerablemente (alnetworkingedor de 10 segundos más) en el dispositivo (iPhone 5). (Nota: la hora de inicio significa la hora en que toca el ícono de la aplicación para abrir la aplicación)

Es tan lento que iOS lo termina porque no se inicia a time. La parte superior del logging de locking es la siguiente …

Application Specific Information: com.tryslowappswift failed to launch in time Elapsed total CPU time (seconds): 27.720 (user 27.720, system 0.000), 68% CPU Elapsed application CPU time (seconds): 0.074, 0% CPU Thread 0: 0 dyld 0x1ff0f4c8 ImageLoaderMachOCompressed::rebase(ImageLoader::LinkContext const&) + 456 1 dyld 0x1ff087be ImageLoader::recursiveRebase(ImageLoader::LinkContext const&) + 174 2 dyld 0x1ff07dca ImageLoader::link(ImageLoader::LinkContext const&, bool, bool, bool, ImageLoader::RPathChain const&) + 186 3 dyld 0x1ff012fc dyld::link(ImageLoader*, bool, bool, ImageLoader::RPathChain const&) + 204 4 dyld 0x1ff022d6 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 2362 5 dyld 0x1fefe222 dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*, unsigned long*) + 394 6 dyld 0x1fefe03c _dyld_start + 60 No thread state (register information) available ... 

Puedes probar esto por:

Nota: He creado un proyecto Swift de ejemplo con todas las configuraciones de pods en mi repository github . Puedes clonarlo y ejecutarlo en tu dispositivo y ver el retraso por ti mismo.

  • Cree un nuevo proyecto en blanco, nada en la application:didFinishLaunchingWithOptions: method
  • Ejecuta la aplicación en el dispositivo y ve el lanzamiento de la aplicación muy rápido.
  • Detener. Ahora intente agregar un Podfile con aproximadamente 8 pods (no importa lo grande o pequeño que sean los pods), pod install .
  • Solo por claridad, este es el Podfile que usé …

Podfile

 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! # requinetworking for Swift pods pod 'Alamofire', '~> 1.2.1' pod 'NPReachability', '~> 0.2.0' pod 'ActionSheetPicker-3.0', '~> 1.6.1' pod 'SDWebImage', '~> 3.7.2' pod 'KVNProgress', '~> 2.2.1' pod 'KeychainAccess' pod 'JazzHands', '~> 0.2.1' pod 'DGActivityIndicatorView' 
  • Luego, vuelva a ejecutar el dispositivo. Esta vez notarás la demora de más de 10 segundos , incluso antes de la application:didFinishLaunchingWithOptions: se llama al método. Sin import , sin files de encabezado de puente, simplemente instale la cápsula en el proyecto y ralentiza el lanzamiento (¡meme de rabia !!!)

Sospecho que esto tiene que ver con Swift 1.2, así que intenté en un proyecto Objective-C, pero aún experimento el mismo retraso. Parece que sucede justo después de una installation de pod normal, no tengo idea de cómo puedo optimizar o solucionar esto. Significado de la palabra

ACTUALIZACIÓN 1 (27 de julio de 2015):

Como lo señaló Bryan Musial, traté de agregar banderas en mi configuration de esquema para registrar el time de carga para cada biblioteca. Ejecuto esto en mi iPhone 5. Aquí está el resultado en la window de 'Dispositivos' de Xcode:

 Jul 27 13:56:02 Hlung SpringBoard[43] <Warning>: Installed apps did change. Added: {( )} Removed: {( )} Modified: {( "th.in.hlung.TrySlowAppSwift" )} Jul 27 13:56:03 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 for armv7. Jul 27 13:56:03 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: Connecting to com.apple.debugserver service... Jul 27 13:56:03 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: Got a connection, waiting for process information for launching or attaching. Jul 27 13:56:03 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: About to launch process for bundle ID: th.in.hlung.TrySlowAppSwift Jul 27 13:56:03 Hlung com.apple.xpc.launchd[1] (UIKitApplication:th.in.hlung.TrySlowAppSwift[0x578b]) <Error>: The DisableASLR key is no longer respected. Please remove it. Jul 27 13:56:03 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:04 Hlung kernel[0] <Notice>: xpcproxy[4965] Container: /private/var/mobile/Containers/Data/Application/6C097544-9C1E-4B73-ACF8-43701FDFC8C2 (sandbox) Jul 27 13:56:04 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: In completion handler, got pid for bundle id, pid: 4965. Jul 27 13:56:04 Hlung com.apple.debugserver-@(#)PROGRAM:debugserver PROJECT:debugserver-320.2.89 [4964] <Warning>: Got a connection, launched process /private/var/mobile/Containers/Bundle/Application/9F233F77-63BC-479E-827A-F08C964DE38C/TrySlowAppSwift.app (pid = 4965). Jul 27 13:56:04 Hlung SpringBoard[43] <Warning>: LICreateIconForImage passed NULL CGImageRef image Jul 27 13:56:04 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:04 Hlung locationd[4692] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0 Jul 27 13:56:05 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:05 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:06 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:07 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:08 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:08 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:09 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:10 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:10 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:11 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:12 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung MobileMail[139] <Warning>: Attempting to badge the application icon but haven't received permission from the user to badge the application Jul 27 13:56:12 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:13 Hlung assistant_service[4931] <Warning>: the local store doesn't allow tasks and we have no default calendar :( Jul 27 13:56:13 Hlung assistant_service[4931] <Warning>: Error getting NanoAppRegistry workspace info: Error Domain=NSCocoaErrorDomain Code=4099 "The operation couldn't be completed. (Cocoa error 4099.)" (The connection to service named com.apple.nanoappregistry.workspace was invalidated.) UserInfo=0x17ebf490 {NSDebugDescription=The connection to service named com.apple.nanoappregistry.workspace was invalidated.} Jul 27 13:56:13 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:14 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:14 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:15 Hlung amfid[4918] <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: dyld: loaded: /usr/lib/libcupolicy.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: dyld: loaded: /usr/lib/libTelephonyUtilDynamic.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total time: 13.1 seconds (100.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images loaded: 149 (128 from dyld shanetworking cache) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total segments mapped: 60, into 1700 pages with 112 pages pre-fetched Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images loading time: 12.8 seconds (97.9%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total dtrace DOF registration time: 0.17 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total rebase fixups: 32,622 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total rebase fixups time: 34.74 milliseconds (0.2%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total binding fixups: 121,320 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total binding fixups time: 116.36 milliseconds (0.8%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total weak binding fixups time: 5.10 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total bindings lazily fixed up: 0 of 0 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total initializer time: 118.97 milliseconds (0.9%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libSystem.B.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 37.57 milliseconds (0.2%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libBacktraceRecording.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.77 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libc++.1.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.09 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libobjc.A.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.10 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: CoreFoundation Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.88 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: vImage Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.02 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libGLImage.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.12 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libFosl_dynamic.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.04 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: CoreImage Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 0.02 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: libswiftCore.dylib Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: : 2.14 milliseconds (0.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total symbol trie searches: 43149 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total symbol table binary searches: 0 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images defining weak symbols: 18 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images using weak symbols: 44 

La parte más importante es probablemente esta:

 Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total time: 13.1 seconds (100.0%) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images loaded: 149 (128 from dyld shanetworking cache) Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total segments mapped: 60, into 1700 pages with 112 pages pre-fetched Jul 27 13:56:17 Hlung TrySlowAppSwift[4965] <Notice>: total images loading time: 12.8 seconds (97.9%) 

Se necesitan 12,8 segundos completos (97,9%) para cargar las imágenes. Pero este proyecto vacío no tiene ningún file de image. Hojeé las cápsulas y creo que tampoco tienen una cantidad significativa de files de image. Todavía estoy atrapado aquí.

En comparación con el resultado de Bryan, el mismo código pero se ejecuta en iPhone 6. El porcentaje de time de carga de imágenes también es alto.

 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total time: 1.9 seconds (100.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images loaded: 148 (127 from dyld shanetworking cache) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total segments mapped: 60, into 1756 pages with 164 pages pre-fetched Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images loading time: 1.5 seconds (81.6%) 

Además, hay otra pista. Durante la pantalla de bienvenida, hay varias líneas de logging que dicen <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName] . Googling solo revela que es un problema de aplicación empresarial, lo que no me ayuda mucho.

En general, todavía estoy atrapado. T_T

Hay una serie de razones por las que podría estar observando situaciones de inicio de aplicaciones lentas, como condiciones de poca memory o espacio en el disco, dispositivos modificados y desbloqueados, actualización de software fallida que necesita una installation limpia o incluso una falla de hardware. Si bien no hay mucho para continuar con la información que ha proporcionado, hay algunas cosas que puede echar un vistazo para tratar de eliminar posibles causas.

He clonado tu proyecto de ejemplo y probado en dispositivos desde iPhone 5 hasta iPhone 6 Plus y, aunque no he podido replicar el comportamiento lento que has observado localmente, he estado en situaciones en las que factores externos e internos han causado un inicio lento actuación.

Primero lo primero, dado que solo tenemos una parte de su logging de errores, debe hacer una verificación rápida para asegurarse de que estamos yendo por la ruta de investigación correcta (idealmente sería útil ver el logging de errores completo). Como puede o no No sé, iOS emplea un process de vigilancia para garantizar que las aplicaciones de iOS respondan en un time razonable. Cuando la debugging de las restricciones del perro guardián no se aplica para permitirle a Xcode la hora que necesita para establecer una session de debugging en vivo. Al iniciarse como una aplicación independiente, es decir, fuera de un depurador, las restricciones Watchdog tienen pleno efecto. Eche un vistazo a su logging de errores y compruebe que el Código de exception es 0x8badf00d (Lea: "Comió mal"): en los dispositivos de 64 bits, este código se rellenará con ceros a la izquierda: 0x000000008badf00d

Via TN2151> Códigos de exception :

El código de exception 0x8badf00d indica que iOS ha terminado una aplicación porque se produjo un time de espera del perro guardián. La aplicación tardó demasiado en iniciarse, finalizar o responder a los events del sistema. Una causa común de esto es hacer una networking síncrona en el hilo principal. Cualquiera que sea la operación en el subprocess 0: necesita moverse a un subprocess en segundo plano, o procesarse de manera diferente, para que no bloquee el subprocess principal.

Como ha señalado la application:didFinishLaunchingWithOptions: no se application:didFinishLaunchingWithOptions: hasta después de esperar más de 10 segundos, sino que sugiere que la demora se produce mientras el bootstrapping de la aplicación está sucediendo, su extracto de logging de error generalmente parece estar de acuerdo. El Tema 0 de TrySlowSwiftApp.app contiene solo frameworks de stack para el editor de vínculos dynamics dyld . También quiere asegurarse de que su logging de lockings indique que el subprocess 0 es el marco que activa el locking (no recuerdo haber encontrado un locking del perro guardián en el que Thread 0 no fue culpado, ¡pero supongo que es posible!). Si se culpa a otro hilo, entonces tendríamos que ver más sobre el logging de errores que tienes a mano.

TN2239 habla con una gran cantidad de herramientas de debugging de iOS e incluye una sección de Variables de entorno para Dynamic Linker : queremos agregar DYLD_PRINT_STATISTICS con un valor de YES al esquema de ejecución actual:

Xcode 6 Scheme Environment Variables Editor

También deberíamos habilitar 'Cargas de la biblioteca de logging' en el Editor de diagnósticos del Esquema:

Xcode 6 Scheme Diagnostic Editor

Finalmente, la console de Xcode no incluye información de date y hora en la console In-Xcode. Sin embargo, puede usar la pantalla 'Dispositivos' de Xcode para ver la console en time real con marcas de time:

Consola del dispositivo Xcode 6

La variable de entorno que agregamos le brindará información estadística sobre lo que dyld dedicó su time a hacer, mientras que las opciones 'Log Library Loads' le mostrarán las bibliotecas específicas que intentan cargarse. Debido a que está viendo esta información en la console del dispositivo, puede ver las marcas de time asociadas con cada input de logging.

Dentro de la salida de statistics de dyld, busque las operaciones que están tomando un time inusualmente largo en su dispositivo; para reference, aquí hay una carga en mi iPhone 6:

 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total time: 1.9 seconds (100.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images loaded: 148 (127 from dyld shanetworking cache) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total segments mapped: 60, into 1756 pages with 164 pages pre-fetched Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images loading time: 1.5 seconds (81.6%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total dtrace DOF registration time: 0.06 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total rebase fixups: 32,521 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total rebase fixups time: 24.03 milliseconds (1.2%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total binding fixups: 120,894 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total binding fixups time: 190.36 milliseconds (9.8%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total weak binding fixups time: 1.76 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total bindings lazily fixed up: 0 of 0 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total initializer time: 137.82 milliseconds (7.1%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libSystem.B.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 60.11 milliseconds (3.1%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libBacktraceRecording.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.39 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libc++.1.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.27 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libobjc.A.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.03 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: CoreFoundation Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 3.40 milliseconds (0.1%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: vImage Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.31 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libGLImage.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.08 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libFosl_dynamic.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.01 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: CoreImage Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 0.57 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: libswiftCore.dylib Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: : 1.74 milliseconds (0.0%) Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total symbol trie searches: 42394 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total symbol table binary searches: 0 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images defining weak symbols: 17 Jul 22 16:44:02 iPhone-6 TrySlowAppSwift[939] <Notice>: total images using weak symbols: 44 

Dentro de las líneas 'dyld: loaded:', eche un vistazo a la timestamp que acompaña a cada elemento que está cargado; está buscando lugares donde le lleva más time cargar el recurso que los resources circundantes.

Dependiendo de lo que encuentre al usar estas herramientas de diagnóstico, ayudará a determinar cuál debería ser el próximo paso de diagnóstico. Esto se deja para que usted pueda interpretar a la luz de la información adicional recostackda con estos pasos.

Según lo sugerido por otros, comencé por verificar doblemente el comportamiento en un segundo model y dispositivo OS idénticos, solo para descartar algo específico del dispositivo. Si puede replicar allí, entonces debe dirigir más time a una investigación de software, sin embargo, si no se replica allí, debe dirigir su time para diagnosticar su dispositivo afectado. Un paso de diagnóstico más drástico podría implicar limpiar el dispositivo y realizar una installation limpia de iOS. Si haces esto, estaría preparado para hacerlo al less dos veces: la primera vez que no restablezca la copy de security de iCloud o iTunes y vuelva a probar el comportamiento del lanzamiento, luego vuelva a cargarla por segunda vez para restaurar su contenido en el dispositivo.

Después de algunas investigaciones encontré que el problema no estaba en cocoapods, sino en bibliotecas incrustadas (pude reproducir el mismo problema con carthage).

No es reproducible en todos los dispositivos (posiblemente solo en 32 bits). Y este problema no afecta a las comstackciones de la tienda de aplicaciones. Y aunque hace que el desarrollo sea un poco más lento, no es tan dañino.

https://forums.developer.apple.com/message/64556#64556 https://forums.developer.apple.com/message/82399#82399

Hay mucho debate sobre esto aquí: https://github.com/artsy/eigen/issues/586

Probablemente hay un Pod que aumenta el time de lanzamiento (en el peor de los casos, más Pods). Mi consejo es eliminar una por una las Pods a si su problema está arreglado. Tal vez sea más fácil crear otro proyecto para realizar esta testing.

Si tiene un marco o un Pod que utiliza -all_load flager linker, es una gran posibilidad de que uno incremente mucho el time de lanzamiento.