iOS启动时间慢

我在Swift中有项目,当我使用DYLD_PRINT_STATISTICS进行测量时,我可以看到1.0秒的预启动时间,其中70%是动态库链接。

有没有干净安全的方法来处理这个问题?

根据Apple的WWDC 2016 优化应用启动时间会议,无论其大小如何,拥有大量动态链接库会大大减慢应用启动时间。

要解决此问题,可以将多个动态库合并到一个库中。 如果它们已经是静态库 ,则可以使用libtool来组合它们,使用此SO答案中的命令。 但是,如果它们不是静态的,那么要组合它们,必须能够访问它们的源代码。 如果可以访问源代码,那么将代码从一个库复制到另一个库中,并使用生成的库就足够了。

当然,从开发人员的角度来看,将不同的库合并为一个库肯定是不方便的。 为了解决这个问题,Xcode允许在设置不同的标志(即RELEASE和DEBUG)时链接不同的库, 如本论坛中所述 。

如果可能,最好合并静态库,因为合并过程远不易出错。 CocoaPods 允许用户在他们的项目中使用静态库 。