例如 我要创建一个名为 FPIjkplayer 的仓库
1.利用模板生成一个pod工程
// 桌面创建一个pod工程文件
cd desktop
pod lib create FPIjkplayer
自动生成一个库文件夹和example文件夹
库的源码和资源文件夹
2.编写.podspec 文件
创建远程一个同名的远程仓库
s.source 地址我设置的不是github,而是gittee, 因为在国内下载更方便
3.添加源码到classes路径下,执行pod install 导入工程测试
这里我把静态库放进去, 可以根据实际情况放代码或者其它文件
由于example工程引用的是本地路径,打开example工程执行
pod install --no-repo-update
podfile 引用的是本地路径
pod install 之前原始状态
pod install 之后,可以看到静态库文件被导入项目了
此时,由于播放器要依赖很多系统框架,此时编译链接报错
需要配置私有库依赖
# 设置依赖多个系统的library 需要去掉lib 前缀
s.libraries = 'c++','z','bz2'
# 配置依赖系统库 需要去掉 .framework后缀
s.frameworks = 'AudioToolbox', 'UIKit','CoreGraphics','AVFoundation','CoreMedia','CoreVideo','MediaPlayer','MobileCoreServices','OpenGLES','QuartzCore','VideoToolbox'
# Framework目录下的***.framework静态库 IJKMediaFramework
s.vendored_frameworks = 'FPIjkplayer/Classes/*.framework'
# 指定pod加静态库标签
s.static_framework = true
执行 pod update --no-repo-update 更新pods
此时demo 工程完美运行
此时静态库被自动放进一个framework文件夹内
4. 本地pods测试没问题,就验证pod 是否合规,如果合规,把pods推到远程仓库
cd /Users/yannchee/Desktop/FPIjkplayer/
pod lib lint
如果不合规,会有报错提示,根据提示解决
例如我这里提示链接有问题,但是实际上本地没有问题,所以在验证后面加上 --skip-import-validation
pod lib lint --skip-import-validation
验证通过
把pod项目提交到远程仓库
git remote add origin https://gitee.com/YannChee/FPIjkplayer.git
git add .
git commit -a -m "提交ijkplayer静态库"
git pull origin master --allow-unrelated-histories
git push origin master
// 如果想覆盖远程 git push -f origin master
git tag 0.1.0
git push origin 0.1.0
6.创建Sepc管理库
// pod添加的管理库名字 FPIjkplayerSpecs
pod repo add FPIjkplayerSpecs https://gitee.com/YannChee/FPIjkplayer.git
# 上传FPIjkplayer.podspec
pod repo push FPIjkplayerSpecs FPIjkplayer.podspec
// 如果链接错误加上 --skip-import-validation
此时 远程pods 发布成功!