×
广告

把自己的库文件部署到cocopod

96
VincentPeng
2016.11.21 20:27* 字数 1070

这周打算把公司的SDK部署到cocopod一份,本来以为配置个部署文件的事,结果忙了一天才忙完,主要遇到两个比较棘手的问题,一般的操作我就把遇见的不错的文章链接给出来就好。

部署这个过程简单的可以理解为,找一个git仓库,把自己的代码放到仓库里面,通过过一个配置文件向cocopod说明,你的代码在哪里,cocopod会去取你的代码,让别人使用cocopod查找你标明的文件的时候直接显示出来,如下图:

结果图

简单的说几个概念

  • ** trunk** :相当于cocopod对外的一个API服务,你要发布的代码要通过它交给cocopod。

  • repo : 被cocopod下载卡到哭的人对这个都不陌生,cocopod的版本库,就是装有所有发布公开代码的索引都在里面(pod search ❌❌中,❌❌就是去down到本地的repo/master中查找的)

  • .podspec文件:可以理解为一个配置文件,告诉trunk怎么把你要发布的代码信息放到repo中,并展现给查找者。

整个过程简单分为三部分吧

1.创建一个存放自己代码的项目,并且配置好.podspec文件
[第一部分推荐blog1] []
[第一部分推荐blog1]:http://blog.csdn.net/keleyundou/article/details/49635589

简要说明1:
这边文章可以知道怎么注册trunk账号并创建.podspec文件(初始化账号后直接看第2个blog中的创建pod项目工程文件章节).不足之处(第一个棘手问题)就是.podspec文件的参数详细说明。和添加位置,没有项目结构相对应

[第一部分推荐blog2] []
[第一部分推荐blog2]:http://blog.wtlucky.com/blog/2015/02/26/create-private-podspec/

简要说明2:
这篇文章采用了类似一个第三方自动配置的方式让你去发布你的代码,确实很简介明了,特别是 创建Pod项目工程文件这个模块使用的,文章中这个部分一定要仔细分析他的项目结构

这一段初始化项目带.podspec文件

我一开始也创建错了(因为我github上面项目创建的比较早),最后我发现,最好的办法是你直接在默认目录里使用创建方法,把创建的项目在放到github仓库里面去。不要拉下来仓库再去仓库里面调用创建lib方法

我的项目目录

我的代码就放在XBSJCode/XBSJCode/Class文件路径下

2.校验自己的配置文件是否符合标准(坑了我一个下午)

这里就参照着第二篇博客去校验就好,但是我遇到到第二个棘手问题就出来了
- localhost:XiaobaiShijiSDK shixinpeng$ pod spec lint XBSJCode.podspec
- XBSJCode (0.0.3)
- ERROR | [iOS] file patterns: The source_files pattern did not match any file.
- ERROR | [iOS] unknown: Encountered an unknown error (Simulator iPhone 4s is not available.) during validation.
- Analyzed 1 podspec.
- [!] The spec did not pass validation, due to 2 errors.

  • 第一个问题其实好解决,跟着第二遍博客去填写xxxx.podspec文件就好
  • 第二个问题Encountered an unknown error (Simulator iPhone 4s is not available.) during validation. 坑了我一下午,百度没有结果,cocopod的github也有这个issue,但是看完了也没有有名目。
    最后分析了报错原因和其他问答涉及到的关键词,一个就是这是没有可用iPhone 4s模拟器的报错,第二个就是我用的xcode是8.1最新的,已经取消了iPhone4s模拟器。所以一个直观的解决办法就出来了,把Xcode装上iPhone 4s模拟器:

安装步骤如下
1.先下载ios8.0的开发包,现在的开发包10.0的取消了iPhone 4s的支持


想装4s模拟器,先下低版本的开发包
下载iOS8.1的开发包
安装4s的模拟器

接着上边的blog的上传就可以了,其他的坑都好踩
3.上传(校验合格,这一步就比较快了)
下面这句代码就够了
pod trunk push XBSJCode.podspec --allow-warnings

问题不能被解决两遍
Web note ad 1