Подтвердить что ты не робот

Добавление нескольких модулей увеличивает время запуска приложения iOS на 10 + секунд

Я делаю проект приложения iOS в Swift 1.2, используя Cocoapods 0.37.2, Xcode 6.3.2. После добавления около 8 модулей в моем проекте время запуска приложения значительно увеличивается (примерно на 10 секунд) на устройстве (iPhone 5). (Примечание: время запуска означает время, когда вы нажимаете значок приложения, чтобы открыть приложение)

Это настолько медленно, что iOS завершает его, потому что он не запускается вовремя. Верх журнала сбоев следующий:

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
...

Вы можете проверить это:

Примечание. В моем реестре github я создал пример проекта Swift со всеми настройками модулей . Вы можете просто клонировать и запускать его на своем устройстве и видеть задержку для себя.

  • Создайте новый пустой проект, ничего в методе application:didFinishLaunchingWithOptions:
  • Запустите приложение на устройстве и быстро запустите приложение.
  • Стоп. Теперь попробуйте добавить Podfile примерно с 8 стручками (неважно, большие или малые стручки), pod install.
  • Просто для ясности это Podfile я использовал...

Podfile

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks! # required 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'
  • Затем снова запустите устройство. На этот раз вы заметите 10 + секундную задержку, даже до вызова метода application:didFinishLaunchingWithOptions:. Нет import, не соединяйте файлы заголовков, просто установите модуль в проект, и он замедляет запуск (- ярость парня meme!!! ---)

Я подозреваю, что это связано с Swift 1.2, поэтому я пробовал проект Objective-C, но я все еще испытываю такую ​​же задержку. Кажется, это происходит сразу после обычной установки модуля, я понятия не имею, как я могу оптимизировать или исправить это.: (

ОБНОВЛЕНИЕ 1 (27 июля 2015 г.):

Как указал Брайан Мюзиал, я попытался добавить флаги в свои настройки схемы, чтобы регистрировать время загрузки для каждой библиотеки. Я запускаю это на своем iPhone 5. Вот результат в окне "Устройства" 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 [email protected](#)PROGRAM:debugserver  PROJECT:debugserver-320.2.89
  [4964] <Warning>: [email protected](#)PROGRAM:debugserver  PROJECT:debugserver-320.2.89
   for armv7.
Jul 27 13:56:03 Hlung [email protected](#)PROGRAM:debugserver  PROJECT:debugserver-320.2.89
  [4964] <Warning>: Connecting to com.apple.debugserver service...
Jul 27 13:56:03 Hlung [email protected](#)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 [email protected](#)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 [email protected](#)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 [email protected](#)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 shared 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

Самая важная часть, вероятно, такова:

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 shared 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%)

Для загрузки изображений требуется 12,8 секунд (97,9%). Но этот пустой проект не имеет никакого файла изображения. Я просматривал стручки, и я думаю, что у них нет значительного количества файлов изображений. Я все еще застрял здесь.

Сравнивая с результатом Bryan, тот же код, но работает на 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 shared 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%)

Кроме того, есть еще одна подсказка. Во время экрана заставки есть несколько строк журнала, в которых указано <Error>: SecTrustEvaluate [leaf CriticalExtensions IssuerCommonName]. Googling просто показывает, что это проблема с корпоративным приложением, что не очень помогает мне.

В целом, я все еще застрял. Т_Т

4b9b3361

Ответ 1

Существует множество причин, по которым вы можете наблюдать медленные ситуации запуска приложений, такие как низкая память или дисковое пространство, джейлбрейк и/или модифицированное устройство, неудачное обновление программного обеспечения, нуждающееся в чистой установке или даже аппаратном сбое. Несмотря на то, что информация, которую вы предоставили, не так много, есть несколько вещей, на которые вы можете попытаться устранить потенциальные причины.

Я клонировал ваш образец проекта и тестировался на устройствах с iPhone 5 через iPhone 6 Plus, и, хотя я не смог воспроизвести медленное поведение, которое вы наблюдали локально, я был в ситуациях, когда внешние и внутренние факторы вызвали медленную работу при запуске.

Прежде всего, учитывая, что у нас есть только часть вашего краш-лога, вам нужно сделать быструю проверку, чтобы убедиться, что мы движемся по правильному пути расследования (в идеале было бы полезно увидеть полный краш-журнал). Поскольку вы может или не может быть известно, iOS использует сторожевой процесс для обеспечения того, чтобы приложения iOS отвечали в течение разумного промежутка времени. Когда отладка ограничений сторожевого таймера не применяется, чтобы разрешить Xcode время, необходимое для установки сеанса активной отладки. Запуск в качестве автономного приложения, то есть вне отладчика, ограничения Watchdog в полном объеме. Взгляните на свой crashlog и убедитесь, что код исключения - 0x8badf00d (Read: "Ate bad food" ) - на 64-битных устройствах этот код будет дополняться ведущими нулями: 0x000000008badf00d

Через TN2151 > Коды исключений:

Код исключения 0x8badf00d указывает, что приложение было прекращено iOS, поскольку произошел тайм-аут сторожевого таймера. Приложение заняло слишком много времени, чтобы запустить, завершить или ответить на системные события. Одной из распространенных причин этого является синхронное взаимодействие в основном потоке. Независимо от того, какая операция включена в Thread 0: нужно перемещать в фоновый поток или обрабатывать по-другому, чтобы он не блокировал основной поток.

Как вы указали, что application:didFinishLaunchingWithOptions: не попадает до тех пор, пока он не дождался 10 + секунд, это говорит о том, что задержка происходит во время начальной загрузки приложения - ваш отрывок crashlog, как правило, согласен. TrySlowSwiftApp.app Thread 0 содержит только стековые кадры для динамического редактора ссылок dyld. Вы также хотите убедиться, что ваш crashlog указывает, что Thread 0 является фреймом, вызывающим краш (я не могу вспомнить, что столкнулся с сбоем сторожевого таймера, когда Thread 0 не был обвинен, но я полагаю, что это возможно!). Если винить другой поток, тогда нам нужно будет больше узнать о краш-блоке, который у вас есть.

TN2239 говорит с множеством инструментов отладки iOS и включает раздел Переменные среды для динамического компоновщика - Мы хотим добавить DYLD_PRINT_STATISTICS со значением YES к текущей схеме запуска:

Xcode 6 Scheme Environment Variables Editor

Мы также должны включить "Загрузка журнальной библиотеки" в редакторе схемы:

Xcode 6 Scheme Diagnostic Editor

Наконец, консоль Xcode не включает информацию о метке времени в консоли In-Xcode. Однако вы можете использовать экран Xcode 'Devices' для просмотра живой консоли с отметками времени:

Xcode 6 Device Console

Добавленная переменная среды предоставит вам статистическую информацию о том, что dyld потратила свое время на выполнение, тогда как в параметрах "Загружает библиотеку журналов" будут показаны конкретные библиотеки, которые пытаются загрузить. Поскольку вы просматриваете эту информацию в консоли устройства, вы можете видеть временные метки, связанные с каждой записью журнала.

В выводе статистики dyld найдите операции, которые на вашем устройстве занимают необычно долгое время - для справки, здесь одна загрузка на моем 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 shared 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

Внутри строк "dyld: loaded:" обратите внимание на временную метку, сопровождающую каждый загруженный элемент, - вы ищете места, где требуется больше времени для загрузки ресурса, чем с окружающими ресурсами.

В зависимости от того, что вы найдете с помощью этих диагностических инструментов, вы сможете определить, каким должен быть следующий шаг диагностики. Это необходимо для интерпретации в свете дополнительной информации, собранной с помощью этих шагов.

Как было предложено другими, я бы начал с двойной проверки поведения на второй идентичной модели и устройства OS - просто чтобы исключить что-то конкретное устройство. Если вы можете реплицировать его там, вы должны направить больше времени на исследование программного обеспечения, однако, если оно не реплицируется там, вы должны направить свое время на диагностику вашего затронутого устройства. Более радикальный шаг диагностики может привести к стиранию устройства и чистой установке iOS. Если вы это сделаете, я готов сделать это по крайней мере дважды - в первый раз, не восстанавливая из iCloud или iTunes резервное копирование и повторное тестирование поведения запуска, а затем перезагружаю второй раз, чтобы восстановить содержимое на устройстве.

Ответ 2

После некоторого исследования я обнаружил, что проблема действительно не в cocoapods, а во встроенных библиотеках (я смог воспроизвести ту же проблему с carthage).

Он не воспроизводится на всех устройствах (возможно, только на 32 бит). И эта проблема не влияет на сборки магазина приложений. И хотя это делает разработку немного медленнее, это не так вредно.

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

Ответ 4

Вероятно, есть один Pod, который увеличивает время запуска (в худшем случае больше Pods). Мой совет состоит в том, чтобы удалить один за другим Pods, если ваша проблема исправлена. Может быть, проще создать другой проект для проведения этого теста.

Если у вас есть фреймворк или Pod, в котором используется флаг компоновщика -all_load, это большой шанс увеличить время запуска.