编程技术记录

世界你好!

Xcode创建framework,选择语言Swift。在使用Swift语言编写framework时,如果要引入Objective-C的代码或者其他Objective-C的库,可能会报错“using bridging headers with module interfaces is unsupported”。这通常是因为在模块接口中使用了桥接头文件(bridging-header),而这是不被支持的,

一般有两种解决办法:

一、如果这个framework不需要对外发布,那么将Build Setting里的Build Library For Distrubution 设置为NO,则可以继续使用桥接头文件(bridging-header)。

二、使用module map文件替换桥接头文件(bridging-header),具体操作如下:

1、在framework工程里创建一个头文件,如Test.h
在Build Setting里设置User Header Search Paths,如$(SRCROOT)/$(PRODUCT_NAME)。设置的路径需要能找到Test.h文件

2、在Test.h文件里引入需要引用的Objective-C头文件

#import <MyLib/MyLib.h>

3、创建一个module map文件,module.modulemap,内容如下

module  TestModule (名字自定义)  {
    header "Test.h"
    export *
}

4、在Swift文件里,使用import指令,然后就可以调用Objective-C的方法了

import  TestModule

发表回复

© Beli. All Rights Reserved.