为什么有些链接框架看起来像一块乐高,而另一些则像一个工具箱?

Why are some linked frameworks look like a piece of Lego, while others like a toolbox?

我刚刚注意到我添加的一些 pods 显示为乐高积木:

还有一些 pods 显示为工具箱:

在链接库和框架部分。总的来说,我所有的 pods 都是这样的:

这是为什么?

由于该部分的名称是 "Linked Frameworks and Libraries",我假设其中一个图标代表一个框架,另一个代表一个库?但哪个是哪个? Xcode 如何知道它是框架还是库?我检查了 pods 的 podspec,但我没有找到任何关于 frameworks/libraries.

的信息

ToolboxCocoaTouchFramework 的标准图标,通常表示它使用 Foundation 框架。

White Cube(乐高积木)表示捆绑。这可以 link 任何你需要的东西,它可以是一包 Localized.strings(例如:ZendeskSDK)或其他资产。

请注意,它在 Linked Frameworks and LibrariesEmbedded Binaries 中的显示方式与在 Finder 中的显示方式有所不同。

并且必须使用不同的体系结构 (x86_64) 与 (armv7,arm64) 构建用于模拟器和设备的框架。它由 Xcode 从 .framework 中获取什么来处理,因为您不需要 link 手动针对不同的体系结构。所以在 Xcode 的角度来看,你总是在这个部分正确的 .framework 文件为你的体系结构准备好了,所以它可以显示为工具箱。在您的情况下,库 LTHPasscodeViewController 不包含自动构建方案(例如 SwiftyJSON )。没有 xcodeproject 除了演示,类 没有被 link 编辑到 .xcodeproj,所以它不是从 CocoaTouchFramework.

创建的

当您 select 从 Xcode 新建项目并选择 Cocoa Touch Framework 时,它会为您创建项目。当您没有项目时,它只是 bundle(具有 .framework 扩展名并不重要)。