远程库添加CocoaPods支持

一、开篇闲扯

搞一个代码能cocoapods吧,期间各种问题,借助多个大牛分享的方案整合,从0到1,整了好几天可算是完成了,最后得以让Github上的库成功支持Cocoapods安装。

二、切入正题

了解一下整体步骤:

1.在github 上创建代码仓库

图1:

image.png

[MIT License 为许可证](https://blog.csdn.net/x88588/article/details/103920658

2.在Github上创建release版本
image.png

image.png

image.png

也可命令行添加:

//新建版本号
git tag 版本号
//推送到远程仓库
git push --tags

注意:打tag,打的tag一定要对应版本号,因为.podspec文件配置已经写好跟版本号一样的

3.把远程仓库 clone 到本地 ,"git clone https://github.com/xxxxxx/xxxx..."
4.把要打包的代码拖到文件夹下

图2:


image.png

PYShadowPath供别人使用的库

5.git add -a 把代码从缓存区加到本地仓库
6.git commit -m “提交说明”
7.git push 推到远程仓库(有分支就push到对应分支 git push [分支])
8.创建podspec文件

终端输入:

pod spec create PYShadowPath

成功如下:


image.png

生成一个PYShadowPath.podspec文件,见图2,可用命令行打开,(vim PYShadowPath.podspec)也可用Sublime Text打开以编辑:



Pod::Spec.new do |spec|


  spec.name         = "类库名称"
  spec.version      = "库的版本"
  spec.summary      = "库的介绍语"
  spec.description  = "库的描述信息,尽量比summary长,否则会有提示"
  spec.homepage     = "项目地址,https://github.com/knightpy/PYShadowPath"
  spec.license      = "MIT"
  spec.platform        = :ios, "8.0"
  spec.author             = { "knightpy" => "knightPy@163.com" }
  spec.source       = { :git => "https://github.com/knightpy/PYShadowPath.git", :tag => "#{spec.version}" }
  spec.source_files  = "PYShadowPath","*.{h,m}"
  # spec.public_header_files    = "PYShadowPath/UIView+PYShadowPath.h"
  # spec.framework       = "UIKit"
end

spec.source_files为共享代码的路径,spec文件基本信息就这些, 也可更复杂一些, 见参考链接↓
然后验证文件,是否有报错:

pod lib lint PYShadowPath.podspec 
image.png

他出的错误一般都会很清晰,逐条解决就OK,这个如果“spec.source_files”没写对,也会出错,正确如下:出现PYShadowPath passed validation.


image.png

倘若有警告“WARN”,可去除警告:

pod lib lint PYShadowPath.podspec  --allow-warnings
5.注册CocoaPods账号

可以先查看你本机有没有注册过Cocoapods账号,通过 "pod trunk me" ,如果没有信息就证明没有注册过,需要注册。输入"pod trunk register 邮箱地址 ‘用户名’ —description='描述信息'" 注册,然后在你注册的邮箱收到邮件,打开邮件复制链接打开网页激活验证注册,然后跳到pod官网提示pod trunk push。

//注册
pod trunk register 邮箱地址 ‘用户名’ --description='描述信息'
//查看是否成功
pod trunk me
image.png
5.检测文件有效性
pod spec lint
//如果有warning 的时候可以选择忽略错误
pod lib lint --allow--warnings

或许会问, 刚才不是已经验证过文件是否有效了吗?

pod lib lint 和pod spec lint区别在于:

pod lib lint

Will lint your pod locally, and will just ensure that you provided everything properly to create your pod. But it will not be enough to validate your pod, Only pod spec lint will.

pod spec lint

Will lint your pod anywhere. By that I mean that you can have your pod source code up on GitHub, for example, and it will lint. If the pod spec lint returns without errors, you can push the linted pod up to Cocoapods.

只有“pod spec lint”检测没error之后, 才能推到CocoaPods
有效文件如下:


WeChat7b018f0e148bf1300e12f42baca76d8e.png
5.推到CocoaPods'
pod trunk push PYShadowPath.podspec  --allow-warnings
WeChated5520a51f67d34c8734233d5839bf41.png
6.成功之后, pod search PYShadowPath

或许会遇到搜索不到的情况

1.cocoapods的版本过低
2.需要更新本地仓库

6.1以此解决:

1、首先查看当前版本
pod --version 

2、查询当前安装的Ruby源,最新的就不用换了
gem source -l

3、不是最新就移除当前的Ruby源,添加新的源(目前淘宝的源不可用了)
 gem sources --remove https://ruby.taobao.org/
 gem sources -a https://gems.ruby-china.com/

4、查看源是否添加成功
*** CURRENT SOURCES ***

https://gems.ruby-china.com

5、开始安装
sudo gem install cocoapods

可能会出现报错'Operation not permitted - /usr/bin/xcodeproj',解决办法如下:
输入命令 'sudo gem install -n /usr/local/bin cocoapods'

6、再次查看pod版本
pod --version
输出 1.9.1表示升级成功

6.2更新本地仓库

执行 'pod repo update'更新本地仓库,执行时间有点长,请耐心等待一会。本地仓库完成后,即可搜索到指定的第三方库。

另一种方法:执行命令'rm ~/Library/Caches/CocoaPods/search_index.json',删除该文件,然后再执行pod search 命令就可以正常使用了。

参考:
1.https://blog.csdn.net/zramals/article/details/81388703
2.https://www.jianshu.com/p/950026d788bd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容