由于需要将项目作为sdk提供给别的app,故需要将app打包为静态framework(我们以它为例,也可其他形式)
打包为sdk的过程中遇到了一些,记录一下,项目是OC和Swift混编
1、资源文件打包为bundle,sdk中的文件使用资源的地方都要改为从这个bundle中获取
2、静态framework中不能存在桥接文件(XXX-Bridging-Header.h)
3、在sdk内部,OC代码引用Swift文件,Swift类需要open或者public来修饰,并且OC文件需要引入头文件xxx-Swift.h
4、在sdk内部,Swift代码引用OC文件
①需要将OC头文件设置为public(选中sdk的target->build Phases>headers)
②sdk公开的.h文件中暴露OC的.h文件(xxxSDK.h中,#import <xxxSDK/xxxOC.h>)
5、私有库需要依赖其他私有库的话,需要在podspec中加入
Pod::Spec.new do |spec|
spec.name = 'xxx'
#其他条件...
spec.dependency 'SomeOtherPod'
end
未完待续...