1.当我们在swift工程中引入OC framework 时 可以通过创建Bridge来桥接OC文件 但是如果是pod swift库中引入的话则会找不到OC framework的类
网上找了很多方法 总结有两个比较靠谱 感谢这位作者给我启发
- 新建module.map
- 针对framework 新建Aggregate 可以移步到这里看
这些方法一定程度上可以满足需求 但是我这边是pod私有库package打包 无法针对framework新建Aggregate
受到上面文章下面评论的启发 做了一个OC类来管理OC framework 然后通过swift桥接oc类 那么我们swift工程就能通过swift类来间接调用oc
2.接下来模拟一套制作swift pod私有库同时调用oc framework库的流程
1.新建一个oc framework (我选择pod制作framework, package打包 这样的好处是每个版本的framework都能保存 利于管理)
- 创建私有库
What platform do you want to use?? [ iOS / macOS ]
> ios
What language do you want to use?? [ Swift / ObjC ]
> objc
Would you like to include a demo application with your library? [ Yes / No ]
> yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> none
Would you like to do view based testing? [ Yes / No ]
> no
What is your class prefix?
> GL
然后在工程项目里面class添加代码 记得在Example目录下 pod install
工程目录如下
3.修改工程中.podspec文件
#这里声明你需要公开的文件, 有几种声明方式,通配符也支持的,在这里我只暴露出来一个.h文件就好
s.public_header_files = 'Pod/Classes/KSDAntiCrack/KSDHookMr.h'
#这是通配符
# s.public_header_files = 'Pod/Classes/**/*.h'
4.准备工作做完 接下来准备着手上传代码到私有库
pod lib lint GLOCAntiFrameworkManager.podspec --verbose --allow-warnings
git tag
git tag 0.1.0
git push -u origin master
pod package GLOCAntiFrameworkManager.podspec --force
现在就已经打包完成了
工程目录如下图所示
5.接下来就将代码和framework提交到私有库
pod repo push GLRepo GLOCAntiFrameworkManager.podspec --sources=http://47.111.149.69/shenguanlin/glrepo.git,https://github.com/CocoaPods/Specs.git --allow-warnings --verbose
GItLab 的目录
3.制作swift私有库
1.将oc 库中的framework拖进工程
framework目录结构
2.创建一个oc类来管理oc framework 然后创建一个swift来调用oc方法
文件目录
网友评论