条件:
需要在终端上将工程发布到cocoapods上,这样才能用cocoapods进行管理。
步骤:
首先,你得有一个pod的账号 在终端中输入pod 可以查看关于pod 的命令帮助,输入pod trunk me 可以查看自己的账号信息,如果没有的话先注册一个。输入pod trunk register然后根据提示注册一个即可。
然后,在有账号之后:
cd 到工程目录下,以工程名创建一个.podspec文件 例如:
cd Demo ---> pod spec create Demo
这样就会在工程中出现这样一个文件
接着vi Demo.podspec 进入文件中进行配置,下面这些具体的格式如何写,可以查看整File Pattern: http://guides.cocoapods.org/syntax/podspec.html#source_files
需要对 s.summary 写入对工程的总结
然后s.description 可以写工程的描述,也可以直接用#来注释掉。
s.homepage 写上之前在GitHub上创建的工程的网址,如:https://github.com/xiaowu2016/Demo
s.license我选择的是下面一个,并把上面的注释掉,将file => "FILE_LICENSE" 改成file => "LICENSE" 。
s.source 写上工程的地址,如:https://github.com/xiaowu2016/Demo.git
其他根据自己实际需求进行配置,如果工程中有依赖其他第三方库也要一并写上.有不明白的地方可以上GitHub上看看别人的.podspec文件对照进行配置。
例如如下配图设置:
这些名词解释如下:
对了,配置费ARC文件的情况,项目中由于历史原因,导致有一个私有的pods库中某几个文件是在非ARC时代写的,如果要进行修改工程量浩大,于是乎要对这几个文件单独处理,这几个文件不使用arc其他文件使用arc,网上查了一些资料,只需要对source_file进行修改并排除那几个不使用ARC的文件就可以了,大致修改如下:
配置完成之后保存并退出,然后在终端上输入
git add 'Demo.podspec' ( 也可以直接输 git add )
然后 git commit -m 'add Demo.podspec' 添加到git上
再用 git push同步到远程端
再创建LICENSE文件
vi LICENSE 直接去网上找一个复制过来,根据需要自己修改一下就能用。
保存并退出
git add 'LICENSE' (或者git add )
git commit -m 'add LICENSE'
git push
然后需要创建工程的tag
git tag '0.0.1'
git add *
git commit -m 'add tag'
git push origin 0.0.1
输完这些命令之后可以在GitHub的工程里看到创建的tag 如图
再输入pod spec lint 来检测一下是否有错误或警告,有则改之,每次本地的工程中有改动并上传到GitHub上之后需要改变tag 否则就会找不到你所改动的,在改变了tag 之后需要将.podspec文件中的s.version和s.source 的tag 改成同样的值。
当然出错时,最好需要只要知道错在哪儿,下面的操作可以帮助到你:
在检测你的podspec时候,如果直接用pod spec lint xxx.podspec的话,出现错误它只会直接一句红色的话the spec did not pass validation,due to 1.告诉你的有多少个error和warning,而不会具体的指出你的错误出在哪里,这时候你可以在这句指令后面加上参数--verbose 这样就会告诉你具体的错误信息。这样根据它提示你的错误信息去解决就可以了。
如果要查处具体错误,请使用 pod spec lint xxx.podspec --verbose
如果 pod spec lint 的时候遇到警告了,请使用 pod trunk push --verbose --allow-warnings
如果没有错误的话,也即当看到*** pass validation,说明验证通过了,就可以发布了,输入pod trunk push ,这样之后的工程再需要你封装的类库就可以直接在podfile中进行添加例如:pod search 'Demo' 然后pod install就可以帮你导入了,非常方便
下面是很有价值的干货:
original Link:http://www.jianshu.com/p/7dd9bfe8ee69
other Link_1: http://www.exiatian.com/cocoapods安装使用及配置私有库/
other_link_2: http://blog.csdn.net/stubbornness1219/article/details/50968000
other_link_3: http://www.cocoachina.com/ios/20160301/15459.html
other_link_4: http://www.cocoachina.com/ios/20150228/11206.html