这一段时间公司项目要做一下重构,将相关功能模块儿都单独分离出来,我这边负责把播放器的部分进行分离。公司这边是用的一个开源第三方播放器,然后因为一些业务需求,将一部分编解码的部分进行了修改。之前是直接使用相关源码添加到项目里面,现在想着把这一部分分离开。
最开始的思路是直接通过cocoapods进行私有库源代码管理,但是因为播放器库里面有相关c文件,经过各方面尝试仍然出错(关于C编译错误),所以暂时换了个思路(后续继续尝试,cocoapods在github上面有过讨论,针对c文件的支持,暂时有问题【需要确认】),直接将私有库创建为framework,然后针对framework进行私有化管理,这样导入的时候,直接导入framework就可以直接使用,下面开始正式的话题。
1、创建私有库项目,将播放器相关的库添加进去【!!!注意,播放器相关依赖的有系统的framework,也有系统的library,发现如果library添加之后如“libz”、“libbz2”库等,会导致出现编译不通过的情况,如图1,但是再创建私有库的时候,这些依赖的系统的framework,或者library之类的都需要进行配置】,然后进行播放器库的相关配置,选择device,进行编译,生成framework。
2、创建framework的私有库管理,按照正常私有库的创建,不过不一样的是,里面只需要包含一个framework,而没有bundle,也不需要sourcefile之类的,所以相关podspec的配置就不需要配置source_files、public_header_files,只需要配置
'venderd_frameworks','frameworks','libraries',【基础的配置如:sourc、development_target、homepage等还是需要配置的】,如图2:
接下来的流程就是正常的私有库的提交流程了。