参考 Objective-C 代码构建 Swift 框架

Building a Swift framework with references to Objective-C code

我正在做一个用 Swift 编写的 iOS 项目,我想从常规 "app" 项目中取出一些 类,然后打包它改为可重用的 Swift 框架(并可能在 Github 和 Cocoapods 上公开可用)。

我 运行 遇到了问题,因为框架似乎没有 Objective-C 桥接头文件,但为了编译我的框架代码,我需要引用几个 Objective-C 类(在本例中:Google Maps iOS SDK)。

我还在我的框架项目中添加了 GoogleMaps.framework 作为链接库,但是,我如何从 Swift 代码中 "import" 它?

使用当前的工具和 Swift 版本甚至可以做到这一点,我应该如何进行?

谢谢。

实际上并没有那么复杂...我只是做错了一些事情。

首先,在该设置中 不需要 桥接头:Google Maps iOS SDK 作为常规 .framework 文件提供,因此开发语言对其在 Swift 中的导入方式没有影响。 Apple 在文档中明确提到它:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html、"Importing external frameworks".

就像将框架添加到项目设置的 "Link binary with libraries" 部分一样简单。不要忘记添加依赖库和框架(在 GoogleMaps.framework 的情况下,有很多)。

然后,在 Swift 代码中,框架 类 应该可用,只需执行以下操作:

import GoogleMaps

没有桥接头,没有处理 "non-modular header etc." 错误。