iOS медленное время инициализации из-за кокапод - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть довольно простое приложение iOS, которое зависит только от двух модулей: Firebase и Alamofire, но я получаю ужасное время запуска, прежде чем какой-либо мой код может быть запущен.

Я вижу времена как

Total pre-main time: 18.5 seconds (100.0%)
 dylib loading time: 11.1 seconds (59.7%)
rebase/binding time: 366.92 milliseconds (1.9%)
    ObjC setup time: 752.48 milliseconds (4.0%)
   initializer time: 6.3 seconds (34.2%)

       slowest intializers :
         libSystem.B.dylib : 936.19 milliseconds (5.0%)
libMainThreadChecker.dylib : 1.8 seconds (9.8%)
                  CoreDuet : 514.37 milliseconds (2.7%)
              ShimmyMobile : 2.9 seconds (15.7%)

Хотя предварительное время варьировалось от 2 секунд до этого предела. Я работаю в симуляторе, так что это может ухудшить ситуацию?

У Firebase много зависимостей, т.е. при запуске pod install я вижу:

Installing Alamofire (4.9.1) 
Installing Firebase (6.17.0) 
Installing FirebaseAnalyticsInterop (1.5.0) 
Installing FirebaseCore (6.6.2)
Installing FirebaseCoreDiagnostics (1.2.0) 
Installing FirebaseCoreDiagnosticsInterop (1.2.0) 
Installing FirebaseInstallations (1.1.0) 
Installing FirebaseInstanceID (4.3.1)
Installing FirebaseMessaging (4.2.1) 
Installing GoogleDataTransport (4.0.0) 
Installing GoogleDataTransportCCTSupport (1.4.0) 
Installing GoogleUtilities (6.5.1) 
Installing PromisesObjC (1.2.8) 
Installing Protobuf (3.11.4) 
Installing nanopb (0.3.9011)

Я использую только FirebaseMessaging так что я могу сделать, чтобы улучшить время запуска? Или удалить неиспользуемые зависимости или использовать сборку stati c (я использую Swift 5)?

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

У меня была такая же проблема, я обнаружил, что эмулятор iPhone намного медленнее, чем реальный телефон. Это было также частично мой компьютер отстает.

Вы пытались запустить его на физическом устройстве?

Я не думаю, что вы можете удалить эти другие зависимости, потому что firebase использует их для правильной работы.

0 голосов
/ 20 февраля 2020

Я смог решить эту проблему, сначала обновив какао-бобы, затем в своем подфайле, комментируя use_frameworks и добавляя use_modular_headers!

Ie

use_frameworks!

use_modular_headers!

Но да, симулятор тоже намного медленнее.

...