解决Swift项目中use_frameworks!冲突的问题

场景:

当前是一个Swift项目,其实什么项目无所谓,主要是混编引起的,比如说当前项目中已经pod引入了FMDBEaseUIHyphenate三个框架,其中EaseUI中还包括SD,MJR,MB等,Podfile文件如下:

platform :ios,'8.0'
target ‘DEMOdo
    pod 'FMDB','~>2.6.2'
    pod 'Hyphenate','~>3.3.2'
    pod 'EaseUI',:git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git'
end

此时添加完桥接文件后,在Build Settings选项中为Objective-C Bridge Header设置好桥接文件路径后,在桥架文件中包含对应的.h文件,便可以全局访问这些框架,但是再要引入别的框架,比如SnapKit,这个框架是需要use_frameworks!的,于是Podfile变成了这样:然后pod update

platform :ios,'8.0'
use_frameworks!
target ‘DEMOdo
    pod 'FMDB',:git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git'
    pod ‘SnapKit’,'~>3.2.0'
end

这个时候原本的EaseUI.h就找不到了

去掉pod ‘SnapKit’,'~>3.2.0'use_frameworks!再执行pod update项目又可以正常运行,现在要解决的就是这个问题。

如果在Podfile里面不使用use_frameworks!,则是通过static library来引入管理pod框架,此时还需要在桥接文件#import对应的.h文件

如果在Podfile里面使用use_frameworks!,那么就需要像下面第2步那样引入framework,然后在需要的地方直接import就行,下面第4步骤

1>现在回头还把pod ‘SnapKit’,'~>3.2.0'use_frameworks!加到Podfile里面,执行pod update

2>然后点击项目工程–>TARGET–>General–>Linked Frameworks and Library添加framework

3>此时桥接文件中这么写:#import "EaseUI/EaseUI.h"也可不写,直接下一步

4>在用到的EaseUI.h中头文件的类import EaseUI

同理别的框架也需要先导入其framework

此外:OC和Swift混编经常会遇到框架头文件提示的问题,解决办法如下:

点击项目工程–>TARGET–>Build Settings–>User Header search Paths–>添加${SRCROOT}选择recursive

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...