iOS 启动时间慢



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

有没有干净和安全的方法来解决这个问题?

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

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

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

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

最新更新