Swift工程调用含有FMDB的Framework编译报错的解决方法
现象: 一个Objective-C写的Framework(旧有或者新写),含有第三方库FMDB; 一个Swift App工程,引用了该Framework,编译,报错定位在import sqlite3.h,并显示错误信息:Include of non-modular header inside framework module。
然后,你各种调工程配置,比如设置Allow non-modular为YES等等,无解,郁闷。
So, 如果你不需要封装Framework,那你可以直接在Swift App 中直接引入OC的FMDB,做桥接,该干嘛干嘛,看Github FMDB的Swift语法示例(注意Swift2.1语法的变化); 但如果你项目或产品决定了必须Framework封装FMDB,但是现在卡在上面那个错,怎么办?
解决方法: 还是FMDB官方的方法,看:https://github.com/ccgus/fmdb/tree/swiftFramework#using-fmdb-in-a-framework 简单说就是: 1、Github下载FMDB源码的分支:https://github.com/ccgus/fmdb/tree/swiftFramework 2、将下载的源码 fmdb-swiftFramework/src/fmdb 文件夹复制到你的Framework项目目录,XCode里加入该文件夹,注意排除掉FMDB.h文件。
#import <YourFramework/FMDatabase.h> 在工程Build Phases/Headers,将这几个头文件由Project设为Public。 编译生成YourFramework.framework。 3、在Swift App工程中加入YourFramework.framework,接着注意设置Build Phases/Copy Files里添加YourFramework.framework,Destination选为Frameworks。 OK,加点使用代码,然后编译Swift App工程,这时编译通过,耶。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ajax跨域访问和产生的原因
- ssh密钥连接腾讯云
- c – 如何处理(深层)嵌套函数调用中的默认值?
- 如果posix关闭调用失败怎么办?
- AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语
- xml – 如何创建MPEG-DASH的MPD文件来播放webm视频?
- ruby-on-rails – 如何使用render_to_string在lib ruby??类
- 洛谷 ~ P3948 ~ 数据结构 (差分数组)
- Cisco FLASH 被误删后,用xmodem重新快速灌IOS
- react + react-router + redux + ant-Desgin 搭建管理后台