架构|使用 Framework 实现模块化开发

了解如何使用 Xcode 的 Framework 功能,将特定功能(如登录模块、UI组件、网络层)打包成独立模块。

架构|使用 Framework 实现模块化开发

Framework 基础

Framework vs Static Library vs Metal Library

在 Xcode 中创建 Framework & Library 时,可以看到 3 个选项:

Framework 的能力非常接近 Project,但不包含 .app 文件,它是被设计成一种可复用模块,供其他 App 或 Framework 使用。

  • Static Library 是一种非常古老的构建产物格式,最初来自 C语言世界。
  • 而 Framework 是 Apple 专门设计用于支持跨平台的模块化构件。

Framework vs Package

Swift Package 直接公开源码,而 Framework 只共享构建出来的二进制文件 —— 例如 SDK 文件。

开发了一个网络库,并希望别人使用:

  • 用 Swift Package:别人看到源码,Xcode 自动构建使用。
  • 用 Framework:你构建出 .framework,别人只看到接口,用来调用,源码不可见

使用 Framework

在 Project 中 Embed 模块(必须)

要使用 Framework,必须手动 Embed 到 Project 中。

  • Project -> Frameworks, Libraries, and Embedded Content
  • 点击 + ,导入我们创建的 Framework

添加之后,在 Project 下的 Frameworks 中能看到:

💡
如果使用 Workspace,可以免去这一步。

在组件中 import 模块(必须)

在 .swift 文件中,必须显式 import 导入才能使用: