在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
swift项目引入OC混编问题来源: 1.swift项目pods MJRefresh 为了在swift正常使用 建了一个桥接文件 2.在项目中又使用了 SDWebImage 用于加载网络图片 根据说明加了Podfile一个 use_frameworks! 编译的时候问题来了 问题显示类似这样的错误: failed to emit precompiled header '/Library/Developer/Xcode/DerivedData/MyprojectName-lajanjvhqjnfjksdsndsfkads/Build/Intermediates.noindex/PrecompiledHeaders/MyprojectName-Bridging-Header-swift_44AHJm3Z96qu-clang_2BIMGQVXGEZ09.pch' for bridging header '/Documents/MyProjectLocaiton/FoneApp-Bridging-Header.h' 问题解决方法: 了解了一下 use_frameworks! 下面是参考 https://www.jianshu.com/p/ac629a1cb8f5 //--------------------------------------------- 首先需要了解下静态库,动态库,Framework的区别所谓的库就是一段编译好的二进制文件,加上头文件,相关的资源文件就可供别人使用
iOS8 / Xcode 6 之前是无法使用静态库,出现了AppExtension之后可以使用
另外学习swift写了一些demo,加个链接这里 供swift初学者一起学习对于是否使用Framework,CocoaPods 通过use_frameworks来控制1.不使用use_frameworks! -> static libraries 方式 -> 生成.a文件
2.use_frameworks! -> dynamic frameworks 方式 -> 生成.framework文件
1.纯oc项目中 通过pod导入纯oc项目, 一般都不使用frameworks2.swift 项目中通过pod导入swift项目,必须要使用use_frameworks!,在需要使用的到地方 import AFNetworking3.swift 项目中通过pod导入OC项目
这里我发现swift 项目中通过pod 使用use_frameworks!导入OC项目可以直接引用使用 或者放入桥接文件使用OC项目引入swift混编OC项目Cocoapods导入Swift库出错解决办法在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks! 所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的库,就使用use_frameworks!将所有.a库变成了.framework。然后信心满满地运行工程,结果GG。
最后归纳出几个需要注意的点:
我是这样操作的: 1、先Podfile里屏蔽所有pod的三方,终端执行 pod install 2、Podfile里加use_frameworks!,终端执行 pod install 3、找到Target->Build Settings->Other Linker Flags,把OC Pod进来的库,删掉 4、Podfile里取消屏蔽的所有pod的三方,添加要加入的swift的三方,终端执行 pod install 5、将用到的库提示找不到的,从#import <xxx.h>改为#import "xxx.h"; 6、搜索Swift Language Version,将版本设置为Swift库能支持的最高版本
|
请发表评论