减少iOS应用启动时间-前置时间
我们已经看到了应用启动类型,主要时间之前和主要时间之后的概述。 如果您仍然不知道这些术语,请在此处参考我的第一个博客。
如果您的应用使用了那么多的第三方库,或者您的应用结合了目标C和快速文件,那么您可能会遇到此问题。
现在是时候设置和减少我们应用程序启动的主要时间了 。 让我们来看看减少预备时间的方法。
- 使用Cartage :我们可以通过将所有动态库更改为静态库来减少前期准备时间。 我们可以为此使用搬运车。
- 使用CocoaPods :cocoapods 1.5及更高版本支持将动态库转换为静态库。
如果您使用的是CocoaPods,请执行以下步骤。
- 更改use_frameworks! 使用use_modular_headers! 在pod文件中。
use_modular_headers! 会将您所有的pod转换为静态库。 您可以使用:modular_headers => true将特定的pod更改为静态库,例如:pod’Alamofire’,’〜> 4.7’:modular_headers => true
2.如果您的应用程序是Objective C和Swift文件的组合,并且您在pod中使用了一些Objective C文件,则将pre compile头更改为NO
注意 :仅当由于Cocoa pod中的Objective C和Swift文件的组合而在编译过程中遇到第三方库错误时,才可以更改此设置。 当您尝试将库更改为静态时,这是适用的,否则可以跳过此步骤。
转到your project -> Build Settings -> Apple LLVM 6.0 Language
3.在构建设置下,将pod目标中的Mach-O类型更改为Static 。
步骤 :转到Pods文件夹 ->选择Build Settings- >搜索Mach-O类型 ->将Mach-O类型更改为静态库
注意 :不要在项目文件夹的构建设置下更改Mach-O类型。 在项目文件夹中无需更改,例如:可执行。
4.如果您的应用程序是Objective C和Swift文件的组合,并且您正在Cocoa pod中使用某些Objective C文件,则将Other Linker Flag更改为-Objc
步骤 :转到Pods文件夹 ->选择Build Settings- >搜索Other Linker Flag- >将Other Linker Flag更改为-Objc
现在,我们最终减少了应用程序启动时间,但是由于静态库,它增加了应用程序捆绑包的大小。
3. 合并第三方库 :我们可以通过将多个第三方框架合并为一个来减少应用程序的启动时间。
我建议您观看WWDC 2016上有关优化应用程序启动时间的演讲,以详细了解可能影响主时间的时间。
最后的评论
希望您喜欢并从我的文章中学到了宝贵的经验。 如果有的话,请点击那个❤按钮让我知道,然后在Medium上关注我。