@J.Doe 的确是Cocoapods。但如果我手动添加库,问题也无法解决,因为动态链接总会以某种方式存在。我已经找到了将所有pods转换为静态库的解决方案。但在我看来,这并不是一个很好的解决方案。 - Roma
@BrandonBradley 谢谢你提供的链接,我会去查看的。有哪些信息可能会有帮助?我会提供的。 - Roma
@Roma 我突然想到,你很可能没有运行macOS High Sierra beta版本,这也是本次会话的主题(我的错)。相反,我建议你观看去年WWDC的优化应用程序启动时间。这个讲座最有用的部分可能从27:30开始。该会话演示了一个启动过慢的应用程序,并将其速度显著提高。至于具体细节,我指的是库的数量、原始启动时间、是否使用ObjC / C++以及是否可以访问库源代码。 - Brandon Bradley
@BrandonBradley 谢谢你提供的第二个链接。我明白我的问题在于cocoapods和dylib。所以,需要解决的问题是如何更好地让它们协同工作。 - Roma
1个回答
2
2
根据苹果公司在2016年WWDC会议上有关优化应用程序启动时间的讲座,无论其大小如何,具有大量动态链接库会严重减慢应用程序启动时间。 为了解决这个问题,可以将几个动态库合并成一个单独的库。如果它们已经是静态库,则可以使用libtool将它们组合,使用this SO answer中的命令。但是,如果它们不是静态的,则必须能够访问它们的源代码才能将它们组合起来。如果源代码可访问,则只需将代码从一个库复制到另一个库,并使用生成的库即可。 当然,将不同的库合并为一个库对于开发人员来说肯定是很不方便的。为了解决这个问题,Xcode允许在设置不同标志(即RELEASE和DEBUG)时链接不同的库,如在这个论坛中所描述的那样。 如果可能的话,最好合并静态库,因为合并过程的错误率要低得多。 CocoaPods 允许用户在其项目中使用静态库。