美文网首页iOS 开发学习成长之路iOS实践iOS黑科技
把自己Github上的代码添加Cocoapods支持

把自己Github上的代码添加Cocoapods支持

作者: 我不是掌柜 | 来源:发表于2016-10-27 13:37 被阅读714次

转载请注明原链接:http://www.jianshu.com/p/950026d788bd

一、前言

这两天被cocoapods折磨的心力憔悴。看cocoapods官网的添加支持,但是介绍的(ying)比(yu)较(tai)简(cha)单,而且有的步骤也没有写上,导致看着官方文档也没有成功,后来查阅了简书、CocoaChina等等,还是已经接近崩溃。没有一个完整的介绍。索性多个文档对比测试,最后终于成功的让自己Github上的库成功支持Cocoapods安装。

二、开始

这里我将从最初的开始进行介绍,包括Github上创建项目已经上传项目,到最后的支持Cocoapods。
步骤如下:

  • 代码上传Github
  • 创建podspec文件,并验证是否通过
  • 在Github上创建release版本
  • 注册CocoaPods账号
  • 上传代码到CocoaPods
  • 检查上传是否成功
1 代码上传Github

首先我们打开github.com,然后创建自己的项目工程:


这里注意那个MIT License,在后面添加Cocoapods支持的时候会用到(稍后介绍)。然后点击创建即可。
然后用SouceTree将代码down到本地,将自己的项目放到里面,文件夹如图所示:


这里的LICENSE就是刚才说的MIT License添加的文件。RSADemo是示例工程,ZGRSAEncryptor就是提供给他人使用的库。(ZGEncrptor(For java).zip是后端的代码)

然后提交到Github就可以了。

2创建podspec文件

我们使用终端到工程目录下:


然后执行下面的命令:

pod spec create ZGRSAEncryptor

这里的ZGRSAEncryptor就是pod添加市的名字(例如MBProgressHUD)。执行完后的结果:


此时在工程文件夹下也会多一个ZGRSAEncryptor.podspec文件。这里我用Sublime Text打开并做了如下编辑:

Pod::Spec.new do |s|
  s.name         = "ZGInfoCollection"
  s.version      = "1.0.0"
  s.summary      = "A library for collection device info."
  s.homepage     = "https://github.com/ScottZg/ZGInfoCollection"
  s.license      = "MIT"
  s.author             = { "ScottZg" => "scottzg@126.com" }
  s.source       = { :git =>    "https://github.com/ScottZg/ZGInfoCollection.git", :tag => "#{s.version}" }
  s.requires_arc = true
  s.ios.deployment_target = "7.0"
  s.source_files  = "ZGInfoCollection/*.{h,m}"
end

name:类库的名称这里字段介绍如下:
version:库的版本
summary就是介绍语,就是:


homtepage:Github上项目地址
license:许可证
author:作者
source:项目的https链接地址
source_files:要共享的代码,这里是ZGRSAEncryptor下面的所有代码。
接下来执行下面的命令进行验证:

pod lib lint ZGRSAEncryptor.podspec

结果多种多样,如果有错,则按照提示进行改错即可。在这里,我执行的结果如下图:


发现了多个警告,只要不是错误就行,警告可以直接忽略(红色也提示如何忽略):

pod lib lint ZGRSAEncryptor.podspec --allow-warnings

结果如下:



当看到ZGRSAEncryptor passed validation之后,就说明验证通过了。

3 在Github上创建release版本

打开项目的目录,然后创建release版本的类库:


点击 箭头指向开始创建release版本,(点击 Create a new release):


点击Publish release即可。创建完成后如图所示:



这样第三步就完成了

4 注册CocoaPods账号

执行命令行:

pod trunk register 邮箱地址 ‘用户名’ —description='描述信息'

执行完之后结果如下:


黄色提示已经发送了一个验证码到邮箱,你可以打开你的邮箱验证即可。打开邮件中的链接后如下:


这样就成功注册了Cocoapods账号。
可以用

pod trunk me

检查是否创建成功。成功的结果如下:


5 上传代码到CocoaPods

首先检测文件格式的有效性:

pod spec lint

结果如下:


没有错误,但是有警告。可以使用 --allow-warnings忽略:


出现passed validation就说明通过验证了。然后执行:

pod trunk push ZGRSAEncryptor.podspec  --allow-warnings

执行结果如下:(速度应该有的慢)


说明了已经上传成功。

6 检查上传是否成功

使用

pod search ZGRSAEncryptor

结果如下:



ok,已经成功了。这样就可以让其他人进行搜索使用了。

三、总结

百度、Google了多篇文档,然后进行总结,终于实现了构建自己的Cocoapods库。在后面我将会继续学习怎么在本地进行构建、怎么在公司多人开发的时候进行构建私有库开发。

四、参考文档:

1、http://www.cocoachina.com/ios/20160415/15939.html
2、http://www.cocoachina.com/ios/20160907/17501.html
3、https://cocoapods.org/

相关文章

网友评论

  • 3e5e83f079b7:- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file. 按照你的方法走到pod spec lint这一步,因为之前上传成功并且能通过pod使用,路径是没有问题的,pod lib lint JCLoopPlayView.podspec是成功的
  • 华西周杰伦:xcode 9 pod lib lint .podspec文件的时候会报这个错Check dependencies
    The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
    The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.

    ** BUILD FAILED **


    The following build commands failed:
    Check dependencies
    Check dependencies
    (2 failures)
    Testing with xcodebuild.
    -> HXWRefreshView (1.0.1)
    - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code.
    我swift版本选的4.0 ios.deployment_target 是8.0 这个问题楼主遇到么,或者知道怎么解决么,我xcode8的时候看你教程成功过的,但是xcode9不行了
    我不是掌柜:有问题加Q群讨论:206613455
    我不是掌柜:你podspec写的有问题吗?我刚才亲自试了一下,没问题啊
  • 大斜的张:楼主 我的一下子报了很多错误 scale-master did not pass validation, due to 41 errors and 2 warnings. 这个应该是指令的问题吧?
    大斜的张:@kakarotto 错的太多了 回头整理一下 贴出来:smile::smile:
    我不是掌柜:可以贴出来看看
    我不是掌柜:你的podspec文件有问题
  • 跳跳虾: 同样的创建方式,但是怎么没有生成ZGRSAEncryptor文件啊
  • 床前明月_光:今天看着你的文章试了一下, 写的还是不错的,就是指令可以写的严谨一点, 例如: pod trunk push ZGRSAEncryptor.podspec —allow-warnings 中是 --allow-warnings 还有 (—description='描述信息' )也是同样的问题. 顺便提一下执行 pod lib lint ZGRSAEncryptor.podspec 时报如下错误有可能是cocoa pods版本的坑, 升级一下cocoa pods的版本就好(这个坑让我纳闷了挺久的), 编写.podspec 文件时最好用vim, 可以避免很多格式上的错误
    - WARN | description: The description is shorter than the summary.
    - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
    - NOTE | [iOS] xcodebuild: xcodebuild: error: 'App.xcworkspace' does not exist.


    最终还是非常感谢博主的分享
    我不是掌柜:@床前明月_光 恩恩,我用markdown写的,有的格式可能变形了

本文标题:把自己Github上的代码添加Cocoapods支持

本文链接:https://www.haomeiwen.com/subject/nvzjuttx.html