开篇扯淡

作为一个iOS开发者,一定用过CocoaPods吧,没用过?点这儿去面壁吧

Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以通过Pod傻瓜式的集成到自己的工程中,那么问题来了,我自己也有一系列的小工具类,怎么让它也支持pod集成进而让其他朋友方便,的使用呢?

刚好,最近项目不算紧,自己尝试着弄了一下,在这里记录一下尝试的过程, 一来备忘, 二来共享......

其实网上这种文章数不胜数,但是不一定都是适合自己的,比如接下来写的东西我觉得都是适用于我的,但未必能适用于正在阅读此文的你,又或者下文中有一部内容能够帮到你,如果真是这样,我也很高兴

本文有诸多不完善的地方,以后时间充足在慢慢完善吧

写的不好 砖下留情

行动

我这里拿一个小demo做示例,目的是把工程中的一些category提取出来支持 pod

1.上传项目源码

把项目源码上传到gitHub仓库再clone到本地(以iOS_Category为例), 如果项目本来就在gitHub的仓库中, 直接clone到本地即可

源码链接:https://github.com/JKbai/iOS-Category

2.创建项目的podspec文件

  • 用终端命令cd到本地项目目录并执行如下命令:
$ pod spec create XBCategory

这时候本地就生成一个XBCategory.podspec文件

  • 用编辑器打开.podspec文件 (我自己用Xcode编辑器打开)
  • open -a Xcode XBCategory.podspec

删除不必要的注释(这里只简单介绍基本用法,所以只用到一部分必须得字段 更多字段请移步http://guides.cocoapods.org/syntax/podspec.html)

Pod::Spec.new do |s|
   
  s.name = "XBCategory"
  s.version = "0.0.1"
  s.summary = "iOS Categories"
  s.description = <<-DESC
  iOS commonly used Categories
  DESC
  s.homepage = "https://github.com/JKbai/iOS-Category.git"
  s.license = "MIT"
   
  s.author = { "baiyinxiao" => "bai_yinxiao@163.com" }
   
  s.platform = :ios, "7.0"
   
   
  s.source = { :git => "https://github.com/JKbai/iOS-Category.git", :tag => "0.0.1" }
   
  s.source_files = "Category(分类)", "iOS-XBCategory/Category(分类)/**/*.{h,m}"
  • 验证podspec文件

编辑完podspec文件后需要验证一下这个文件是否可用podspec文件不允许有任何的Warning或者Error
执行命令

$ pod lib lint

如果出现

-> XBCategory (0.0.1)

XBCategory passed validation.

则说明验证通过, 否则, 根据提示修改podspec文件再次验证直到验证通过

附带说一下,Xcode允许警告存在,所以可以通过命令屏蔽警告

$ pod lib lint --allow-warnings

如果出现Error但是提示信息不足,可以添加--verbose 以获取更多错误信息

$ pod lib lint --verbose

3.打tag 上传podspec

podspec文件中需要指定的tag, 完成上述操作后给项目打tag

$ git tag -m"first release XBCategory with podspec" "0.0.1"
$ git push --tags

最后使用pod trunk命令,把podspec文件推送到CocoaPod官方库

pod trunk 需要注册 具体做法这里不再赘述 请移步CocoaPod官网

pod trunk 设置完毕后执行命令

$ pod trunk push XBCategory.podspec

这个过程可能会比较耗时,原因你懂的

4.最后

如果一切顺利

pod search XBCategory

就可以找到刚才的项目了 并且还有安装命令< pod 'XBCategory','~>0.0.1' >

如果搜不到执行命令

pod setup

然后在搜索自己的项目,如果之前的步骤都正确我们便能搜到pod 'XBCategory', '~0.0.1'的字样,然后我们就可以让大家通过Cocopods 在podfile中添加 pod 'XBCategory', 然后pod install下载并使用我们刚添加的demo.

如果大家有什么不懂得地方可以留言,我会及时回复大家.谢谢!!!!!!

iOS开发-- 创建podspec文件,为自己的项目添加pod支持的更多相关文章

  1. 创建podspec文件,为自己的项目添加pod支持

    Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以通过Pod傻瓜式的集成到自己的工程中,那么问题来了,我自己也有一系列的小工具类,怎么让 ...

  2. iOS开发网络篇—文件的上传

    iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...

  3. iOS 开发http post 文件的上传

    iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...

  4. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    文顶顶iOS开发博客链接整理及部分项目源代码下载   网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程 ...

  5. IOS开发创建开发证书及发布App应用(四)——创建配置概要文件

    4.创建配置概要文件 继续上一篇所讲,今天写的这个是创建配置概要文件 依然在个人中心创建证书这里, 如果不知道的,可以查看以前写的 配置概要文件也分为两种 1)创建开发配置概要文件 2)创建发布配置概 ...

  6. iOS开发——创建你自己的Framework

    如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...

  7. iOS开发——Swift篇&文件,文件夹操作

    文件,文件夹操作   ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作:   1,遍 ...

  8. iOS开发中.pch 文件的使用及其相关工程设置

    .pch文件 也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问.是一个预编译文件. 首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部 ...

  9. iOS开发---百度地图配置流程,2.6.0 版本 支持64位

      1.首先需要在百度地图下载最新SDK:地址: http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2. ...

随机推荐

  1. 20145337实验三实验报告——敏捷开发与XP实践

    20145337实验三实验报告--敏捷开发与XP实践 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 ** 实验步骤**### 敏捷开发与XP 软件工程包括下列领域:软件需求 ...

  2. CMS .NET 程序框架 从2.0/3.5升级到4.0 版本后 需要调整的地方

    问题一: document.forms1.action 不可使用 需要修改程 document.forms[0] .NET 程序框架 从2.0/3.5升级到4.0 版本后,document.forms ...

  3. segement fault常见错误

    1.指针赋值前就用它引用内存,或释放后继续访问它的内容. 2.释放同一块内存两次.

  4. an alternative to symmetric multiprocessing

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION 17.5 CLUSTERSAn impor ...

  5. 1920.154s 0.309s 30817

    MyISAM HASH  restart-buffer ; ; ; SELECT * FROM grab_sales_rank_month; ; 受影响的行: 时间: .002s [SQL] ; 受影 ...

  6. Java 集合快速失败异常

    快速失败 在JDK中,查看集合有很多关于快速失败的描述: 注意,此实现不是同步的.如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步.(结构上的修改是指添 ...

  7. java 中设置session失效时间

    程序中session都有一个默认的过期时间,其中tomcat中的默认时间为30分钟,根据需要我们可以去手动设置session的过期时间,以下是设置session的过期时间的三个方法:1.在tomcat ...

  8. 【ionic】微信表情设置教程

    NO.0 前提你的下载我的App :超级逗表情 Andorid:http://fir.im/chaojidbq Ios:https://github.com/apanly/chaojidbq (源码, ...

  9. Mac配置

    1.显示Mac隐藏文件的命令: defaults write com.apple.finder AppleShowAllFiles -bool true 2.Mac键盘如何开启键盘上F1 - F12功 ...

  10. 【C51】74HC573芯片

    74HC573是一个8位3态带锁存高速的逻辑芯片.下面介绍使用. 参数(仅供参考) Vcc   2~6V I in    +-20mA I out  +- 35mA 引脚图和引脚作用          ...