创建cocopod的步骤
1.创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库
2.创建spec Repo
3.创建pod的所需的项目工程文件,并上传到远程私有仓库
4.向私有的spec Repo远程仓库中提交podspec
5.使用自己创建的私有pod库
1.创建2个远程仓库
创建XHMSpec远程仓库,用来存放本地spec。
创建XHMPodProject远程仓库,用来存放项目工程文件。
2.创建spec Repo
前往文件夹 ~/.cocoapods/repos
打开终端,在终端切换到当前目录下,然后进行pod repo add操作
在终端输入:
pod repo add XHMSpec https://git.oschina.net/xhmspec.git(1中创建的XHMSpec远程仓库的地址)
3.创建pod的所需的项目工程文件
3.1创建本地pod的所需的项目工程文件
cd 切换到一个目录下(我是在桌面上的projects目录下),然后执行pod lib create XHMPodLib如图:
Snip20170429_12.png然后进到到XHMPodLib里面找到Classes中的"ReplaceMe.m"文件删除,然后将自己所需要的文件放到这里目录下,如图
Snip20170429_13.png接下来最重要的一步,也是很容易忽略的一步,不然提交后检查会出现很多问题。
cd 到Example文件下,然后pod install下,更新Example项目的pod。如图项目中的podspec文件,更改spec。
打开example中的项目,找到
Snip20170429_15.png对项目中的podspec文件进行如图中的修改
Snip20170429_16.png Snip20170429_19.png修改完成后,cd 到XHMPodLib目录下,然后验证podspec文件
pod lib lint yourPodName.podspec //进行本地验证文件有效性。
3.2本地项目文件上传到远程库中
使用git remote add origin 远程仓库地址 // 将本地项目与远程仓库关联
Snip20170429_21.pngpush到远程的时候出现这种问题,于是就先pull ,于是就出现了图中这种经典的问题了
Snip20170429_22.png重新输入如下命令:
git pull origin master --allow-unrelated-histories
解决一下冲突就可以了。解决冲突后上传到远程仓库。
Snip20170429_25.png这样远程仓库就有我们本地的项目了
Snip20170429_26.pngpod spec lint yourPodName.podspec //命令进行本地和远程验证文件有效性。
注意:
如果私有库中依赖私有库,则验证podspec文件的时候需要加上–sources参数,否则会出现找不到你依赖的私有库。
显示我们没有远程仓库打标签,这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。
Snip20170429_28.png打标签的步骤如图:
Snip20170429_30.png再次使用pod spec lint yourPodName.podspec //命令进行本地和远程验证文件有效性。
Snip20170429_31.png4.向私有的spec Repo远程仓库中提交podspec
使用 pod repo push yourRepoName yourPodName.podspec 命令把私有库添加到私有repo中
注意的是:仍然在本项目的目录路径下进行操作:
前往文件夹 ~/.cocoapods/repos去查看XHMSpec目录下的文件如下:
Snip20170429_33.pngpod repo // 查看第三方框架仓库源
Snip20170429_34.png然后使用 pod search XHMPodLib 就可以搜索出来了。
Snip20170429_35.png
到此,创建私有库算创建成功了。
5.使用自己创建的私有pod库
使用source 指定
Snip20170429_36.png
然后跳转到项目目录然后 pod install一下
Snip20170429_38.png
网友评论
这个问题是 source_file 目录有问题,但是应该是怎么改呢?求指点
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command/spec/lint.rb:87:in `run'
/Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'
怎样解决啊