swift pod 引入oc framework 的方法

1.当我们在swift工程中引入OC framework 时 可以通过创建Bridge来桥接OC文件 但是如果是pod swift库中引入的话则会找不到OC framework的类

网上找了很多方法 总结有两个比较靠谱 感谢这位作者给我启发

  1. 新建module.map
  2. 针对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都能保存 利于管理)

  1. 创建私有库
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方法


文件目录

你可能感兴趣的:(swift pod 引入oc framework 的方法)