Xcode 6 和最新的平台 SDK 允许为 iOS 构建(动态)框架。今年的 WWDC 有几场会议涵盖了如何使用框架。
带有 iOS SDK 的以前版本的 Xcode 不直接支持为 iOS 构建框架目标。虽然可以构建静态 iOS 框架,但它不受支持且有些脆弱。使用 Xcode 6 和最新的 iOS SDK,构建框架就像创建一个新的框架目标一样简单。在以前的 Xcode 版本中,它涉及的更多一些,并且 Xcode 本身不会在它应该识别的所有地方识别构建产品。将这些框架用作依赖项等只是在以前版本的 Xcode 中不起作用。
Xcode 5 中的静态框架
使用 Xcode 5构建静态框架很像构建静态库。特定于静态框架的重要项目配置设置是:
SDKROOT = iphoneos
ONLY_ACTIVE_ARCH = NO
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
VALID_ARCHS = arm64 armv7 armv7s x86_64 i386
LINK_WITH_STANDARD_LIBRARIES = NO
MACH_O_TYPE = staticlib
WRAPPER_EXTENSION = framework
- 从静态库目标开始。确保您的代码可以构建为静态库。
- 创建一个新的捆绑目标。
- 从构建中删除平台、基础 SDK、包装器扩展、产品名称(如果需要)和 OS X 部署目标设置。
- 将上述设置应用于此目标,最好使用构建配置文件。
- 将您的代码、资源等添加到目标。检查目标的构建阶段以确保一切都在您期望的位置。对于标头,使用标头构建阶段而不是复制文件构建阶段。
- 如果您使用的是前缀标头,请确保它为您的目标平台使用正确的标头(即 UIKit.h 而不是 Cocoa.h)
这将构建一个静态框架产品。Xcode 5 将无法将其用作方案等中的依赖项。框架的文件布局将与动态框架不同。