由于cocoapods,iOS的初始化时间很慢

时间:2020-02-15 20:20:06

标签: ios iphone firebase firebase-cloud-messaging cocoapods

我有一个相当简单的iOS应用,它仅依赖于两个Pod,即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安装时,我看到:

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,是否可以做些事情来缩短启动时间?删除未使用的依赖项还是使用静态构建(我正在使用Swift 5)?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我发现iPhone模拟器比真正的手机要慢得多。这也部分是我的计算机落后。

您是否尝试过在物理设备上运行它?

我认为您无法删除其他依赖项,因为firebase依赖它们才能正常运行。

答案 1 :(得分:0)

我能够通过先更新可可豆荚然后在我的豆荚文件中解决此问题 评论use_frameworks并添加use_modular_headers!

use_frameworks!

use_modular_headers!

但是是的,模拟器也慢得多。