我有一个通用框架项目,其中包含一个库作为其主要目标,在产品下是带有“lib”前缀和 .a 扩展名的库。请参阅下面的屏幕截图:
我正在使用一个第三方项目,其中包含一个框架作为其目标,并且在“产品”下是具有 .framework 扩展名的框架。请参阅下面的屏幕截图:
在“构建设置”中查看,我可以看到“打包”和“链接”下存在差异,并且其他地方可能存在更多差异。因此,这让我很好奇如何建立一个项目来生成 .framework 而不是 .a 库。
我只是向我指出我正在尝试创建一个static框架。有人知道一个好的教程、博客或书籍可以指导我完成更改目标产品的步骤并帮助我理解差异吗?
谢谢。
Xcode 6 和最新的平台 SDK 允许为 iOS 构建(动态)框架。今年的 WWDC 有几场会议涉及如何使用框架。
带有 iOS SDK 的以前版本的 Xcode 不直接支持 iOS 框架目标的构建。虽然可以构建静态 iOS 框架,但它不受支持并且有些脆弱。使用 Xcode 6 和最新的 iOS SDK,构建框架就像创建新的框架目标一样简单。在 Xcode 的早期版本中,涉及的内容较多,Xcode 本身无法在所有应有的位置识别构建产品。使用这些框架作为依赖项等在以前版本的 Xcode 中不起作用。
Xcode 5 中的静态框架
建设一个static使用 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 将无法将其用作方案等中的依赖项。框架的文件布局将与动态框架不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)