缺少两个dylib,但没有Xcode链接错误

时间:2016-03-25 07:05:20

标签: ios xcode dylib

我正在使用Xcode 7.3更新旧的iOS应用。部署目标是7.0,之前的版本是为iOS 8构建的。包含了大约十二个框架(例如, Security.framework )以及 sqlite3.0.dylib libSystem.B.dylib 在Project Navigator中以红色显示,因为找不到它们。实际上,“Open in Finder”没有结果。

然而,尽管如此,即使在Clean之后,应用程序也会编译并在SIM卡和设备上运行而不会出现错误。某种程度上,SQLite库正在被链接,但是这里有什么神奇之处呢?

我想我应该添加 libsqlite3.0.tbd ,但我想了解在iOS 7和8下破坏内容时会发生什么(为什么没有链接错误?)。需要我关于 libSystem.B.dylib - 是否需要?

1 个答案:

答案 0 :(得分:1)

sqlite3.0.dylib libSystem.B.dylib 是系统库。项目导航器和dylib搜索路径是不同的东西。项目导航器名称用于导航项目,因此它或多或少是开发人员轻松导航项目的工具。通常它也会显示您的链接库,但是它们会保留这些框架的路径,并且路径在您的情况下不再有效。另一方面,您可以在Framework Search Paths找到Build settings。链接器搜索预期库的路径。但由于您的库来自系统,您甚至不需要指定Framework search path,因为系统库的路径是默认设置的,因此对于系统库,您只需指定要将它们链接到项目。因此,您可以安全地从项目导航器中删除这些红色库。只要在您的设置中指定要在Link Binary With Libraries中使用这些库,整个过程就应该有效。