将静态库目标转换为Xcode项目中的框架目标

Jef*_*mas 21 frameworks static-libraries ios swift

我有一个Xcode项目,它生成一个静态库.我的团队计划在Swift中进行所有新开发.无法将Swift文件添加到静态库项目中.我们正在放弃对iOS 7的支持,因此现在可以在我们的iOS应用程序中包含框架.因此,我打算将我的静态库项目转换为框架项目.

我看过,但我找不到任何有关如何执行此转换的工具或建议.静态库很大(超过100个.m文件).

我希望得到一个更好的答案,而不是创建一个新的并行框架目标.我试过两次.第一次作为一个快速的目标,但我无法轻松导入所有的Objective C文件.接下来,作为Objective C目标,但不再有.pch.

jos*_*eph 9

要从静态链接库转换静态/动态链接框架,

  1. 在现有的静态链接库项目中添加一个新的cocoa touch框架作为TARGET.
  2. 在Build Phases中,将所有.m,.mm,.c,.cpp,.metal等添加到静态链接框架目标的"\ Build Phases\Compile Sources"阶段.
  3. 将要公开的标题放在"\ Build Phases\Headers"中.
  4. 对于动态链接框架,请记住在Build Settings中检查Mach-O Type设置.如果要使用swift,则需要确保将Mach-O类型设置为动态库,以使其成为动态链接框架.对于静态链接框架,您需要将Mach-O类型设置为静态库,但不能在转换后的静态链接框架中使用swift(只允许使用objective-c,objective-c ++,C++,C等) .

然后,对于想要使用此框架的应用程序,只需将标头包含为#import,并将框架添加到App Target的"Build Phases\Link Binary With Libraries"中.如果转换的框架是动态链接框架,则需要将其放入"嵌入式二进制文件"中.