2015-03-02 36 views
16

我正在编写一个用Swift编写的iOS项目,我想从常规的“app”项目中取出一些类,并将它捆绑到一个可重用的Swift框架(也许可以在Github和Cocoapods上公开发布)。我正在运行的问题,因为框架看起来不能有Objective-C桥接头,但为了编译我的框架代码,我需要引用几个Objective-C类(在这种情况下:谷歌地图的iOS SDK)。构建Swift框架并引用Objective-C代码

我也在我的框架项目中添加了GoogleMaps.framework作为链接库,但是,我怎样才能从Swift代码“导入”它?

这是甚至可能与当前工具和Swift版本,我应该如何继续?

谢谢。

回答

9

这并不复杂,其实......我只是在做一些错误的事情。

首先,桥接头是在该环境中必需的:谷歌地图iOS版SDK是作为一个普通.framework文件,因此开发一种语言都有它如何能在斯威夫特进口没有任何影响。 Apple在文档中明确提到它:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html,“导入外部框架”。

将框架添加到项目设置的“链接二进制库”部分非常简单。不要忘记还要添加依赖的库和框架(在GoogleMaps.framework的案例中,有很多)。

然后,在斯威夫特代码,框架类应该可以简单地这样做:

import GoogleMaps 

无桥接报头,没有涉及“非模块化头等等。”错误。

+0

谢谢您的回答,我只是遇到同样的问题,但是当我尝试导入库,在我的情况SVProgressHUD Xcode中显示没有这样的模块“SVProgressHUD” – 2015-08-31 15:47:20

+0

@SiuChungChan的ewrror,你是不是也建立一个框架,使用Cocoapod?你的问题可能与我的问题不一样。也许最好开始一个新的问题并提供更多的信息? – Romain 2015-08-31 16:06:53

+0

罗曼,您从事物的声音中没有使用椰子树吗? – 2016-02-17 20:48:19