• 欢迎相同喜欢动效的工程师/UI设计师/产品添加我们
  • iOS动效特攻队–>QQ群:547897182
  • iOS动效特攻队–>熊熊:648070256

引言:

折腾了三四天,各种文章翻遍了,遇到各种坑。才创建好了自己的

Pods。

本文仅仅说制作CocoaPods的过程。

其它的资料就不再反复阐述了。

准备工作:

必须了解的知识:

1.podSpec

2.podFile

3.Spec Repo

建议安装的插件:

cocoapods-xcode-plugin

https://github.com/kattrali/cocoapods-xcode-plugin

这个插件能够非常方便的编辑podFile和podSpec文件,推荐安装

流程概括:

1,创建Pod项目

2。提交项目至gitHub

3。在项目中添加我们自己的代码

4。配置podSpec

5,本地验证podSpec是否合格

6,配置gitHub相应版本号号

7,创建本地Spec Repo

8。向Spec Repo提交podSpec

9,将本地podSpec提交至Pod Trunk

10,新建其它项目。导入自己创建的pod看是否能正常使用

11,完毕

開始制作Pod:

1.创建pod项目

首先找个地方放置,我直接放在桌面上了

cd ~/Desktop/

通过命令创建项目(这个命令运行完之后会自己主动运行pod install命令)

# pod lib create 项目名称
pod lib create BearPodsTest

运行这条命令后就開始从pod模板仓库中拖一个模板到本地。而且会问你5个问题。

以下是我的配置,能够參考一下

#选择编程语言
What language do you want to use?? [ ObjC / Swift ]
> Objc #是否导入demo
Would you like to include a demo application with your library? [ Yes / No ]
> Yes #须要哪种測试框架
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> None #想了半天也不知道这个要怎么翻译,就选Yes了
Would you like to do view based testing? [ Yes / No ]
> Yes #设置项目名的前缀
What is your class prefix?
> Bear

看到pods installed就表示本地创建项目成功了

注意坑:

创建成功后,项目里的文件夹是这种。里面能够看到xcodeproj和xcworkspace。



假设xcworkspace没有创建成功。而且在这里提示你podFile invalidate,或者说你的podFile有问题什么的。

什么都不用说了,卸载你的pod,又一次安装pod,重头来过吧。在这里被坑了太多次了。

2,提交项目至gitHub

由于cocoaPods是基于git仓库的,所以在这里我们要把项目提交到git仓库。怎样提交到git仓库在这里就不做讨论了。

注意:

不要在仓库中创建README.md和LICENSE,由于此时我们的项目中已经有了这两项了。

项目提交过后。线上仓库会有相同的文件

3,在项目中添加我们自己的代码

打开xcworkspace项目。依照下图的路径,在里面添加我们自己的代码。加完之后记得push到git仓库上。

注意:以后每次在项目中添加或者删除文件时,都要运行pod install 或者 pod update操作

4,配置podSpec

能够參考这篇文章“自己定义cocoapods库”:https://segmentfault.com/a/1190000003064573

“使用CocoaPods开发并打包静态库”:http://www.cnblogs.com/brycezhang/p/4117180.html

用插件打开podSpec文件,或者用命令行打开BearPodsTest.podspec文件。准备配置

以下參数必须配置

s.name          #pod名称
s.version #pod版本号号,自己定义,一般从0.0.1開始
s.summary #pod简单介绍,必须自己填写
s.description #pod描写叙述,必须自己填写而且不能和summary一样
s.homepage #你的主页。没有的话能够用gitHub的个人主页
s.license #license
s.author #作者信息
s.source #版本号地址和相关信息,一般就是你的git仓库地址,也能够配置版本号号,commit标示
s.platform #支持的iOS系统版本号
s.requires_arc #是否支持ARC
s.source_files #文件路径。一般添加的路径位于Pod/Classes下,假设是须要其它路径的。根路径(root)要和Pod保持在同一层级,不然是无法找到路径的。假设没有特殊要求的话这个就不用改。
s.dependency 'AFNetWorking'
s.dependency 'MJExtension' #依赖其它POD仓库
#
# Be sure to run `pod lib lint BearPodsTest.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
# Pod::Spec.new do |s|
s.name = "BearPodsTest"
s.version = "0.0.1"
s.summary = "BearSkill contain some methods used frequently in project." # This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
BearSkill contain some methods used frequently in project. And many other methods about layout.
DESC s.homepage = "https://github.com/BearRan/BearPodsTest"
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
s.license = 'MIT'
s.author = { "Bear" => "648070256@qq.com" }
s.source = { :git => "https://github.com/BearRan/BearPodsTest.git", :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' s.platform = :ios, '7.0'
s.requires_arc = true s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'BearPodsTest' => ['Pod/Assets/*.png']
} # s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end

5,本地验证podSpec是否合格

运行pod lib lint来验证刚才配置的podSpec是否合格可用



那个unable大家不用管。。。

看到BearPodsTest passed validation.就表示podSpec本地验证通过了。

6,配置gitHub相应版本号号

刚才在配置podSpec的时候我设置了s.version = "0.0.1",版本号号我设置为0.0.1,如今我要在github上也设置相同的版本号号,不然待会线上验证和查询的时候pod无法找到相应版本号号的项目。

git tag -m "first release" "0.0.1"
git push --tags



在githHub上能看到版本号号设置成功了

7,创建本地Spec Repo

运行命令

#pod repo add pod名称 gitHub仓库地址
pod repo add BearPodsTest https://github.com/BearRan/BearSkill.git

运行完之后在~/.cocoapods/repos/以下会看到我们自己的repo

8,向Spec Repo提交podSpec

运行命令

#pod repo push Pod名称 当前文件夹下的.podSpec文件
pod repo push BearPodsTest BearPodsTest.podspec



仍然忽略我的unable。。。

看到这种界面就表示验证而且提交成功了。

9,将本地podSpec提交至Pod Trunk

运行命令

#pod trunk push 当前文件夹下的.podSpec文件
pod trunk push BearPodsTest.podspec

第一次提交会提示让你输入gitHub的账号password,按提示的输入即可。



这种界面出来就表示成功了。

搜索来看下

pod search BearPodsTest

命令行能搜索到了,过一会就能在cocoaPods主页上搜索到你的pod了。

10,新建其它项目,导入自己创建的pod看是否能正常使用

新建一个项目。步骤省略。和平时导入pod一样。

最后看下截图。



如今能够在其它项目中引入自己的pod了。

11。完毕

是不是非常happy啊?哇咔咔!

!!

假设在做的过程中遇到问题能够私聊我。QQ:648070256,能帮的一定帮。

最后来贴一下我在制作过程中要用到的各种文章和资料链接。

1,CocoaPods具体解释之—-制作篇(这篇文章非常重要。。。

基本就是依据这个来配置的)

http://my.oschina.net/u/727843/blog/392784#OSC_h2_1

2,使用CocoaPods开发并打包静态库

http://www.cocoachina.com/ios/20141124/10297.html

3。学习使用CocoaPods后涨的姿势(一些关于cocoaPod的方法,配置环境的时候建议阅读,还有cocoaPod的一些技巧)

http://www.tuicool.com/articles/iYnuum6

4,使用Cocoapods创建私有podspec(文章最后还有删除Spec Repo的方法,推了非常多測试的pod的能够看看)

http://www.cocoachina.com/ios/20150228/11206.html

5,CocoaPods之—-制作篇(还是制作的,基本相同。还是贴一下吧)

http://blog.csdn.net/bluefish89/article/details/48030941

6,Cocoapods 更新版本号失败。提示:“Errno::EACCES”

http://www.jianshu.com/p/7ed7bd0e7e9a

7,CocoaPods具体解释之—-制作篇

http://blog.csdn.net/wzzvictory/article/details/20067595

8。 CocoaPods 手把手五分钟教你制作自己的podspec文件(须要手动配置podSpec的能够看一下,只是一般用不到)

http://iiiyu.com/2013/12/19/learning-ios-notes-thirty-one/

9,cocoapods的创建和使用

http://jingyan.baidu.com/article/c33e3f488a7b24ea15cbb50c.html

10,怎样编写一个CocoaPods的spec文件

http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/

11,cocoapods的使用,解决pod search出来的仓库版本号低于github仓库版本号的方法

http://my.oschina.net/u/1432769/blog/384398

以下是官方文档

12,Using Pod Lib Create

https://guides.cocoapods.org/making/using-pod-lib-create

13,Making CocoaPods

https://guides.cocoapods.org/making/index.html

14。Creating Your First CocoaPod

http://code.tutsplus.com/tutorials/creating-your-first-cocoapod–cms-24332#disqus_thread

CocoaPods制作的更多相关文章

  1. [CocoaPods]制作CocoaPod

    创建自己的CocoaPod非常简单.如果你已经有一个单独的组件,那么你就是最重要的.本指南概述了整个过程,本节中的其他指南更适合更高级用户. 我们建议让CocoaPods在这里努力工作.Running ...

  2. CocoaPods: 制作cocoapods国内镜像

    制作cocoapods国内镜像∞ March 15, 2014 Tags:cocoapods 国内访问cocoapods spec repo速度非常慢,网络不好的话做一次pod update要等半个小 ...

  3. 制作自己cocoapods库

    https://www.cnblogs.com/czc-wjm/p/5958103.html 今天来讲一下cocoapods制作,网上教程很多,就不再讲理论,直接操作: 1.创建仓库: 2.将仓库克隆 ...

  4. 利用Cocoapods、SVN 创建私有库实现方案(yoowei)

    由于项目年后要进行组件化,考虑到如果公司内部实现一些私有的组件,不对外公开,而又想在不同项目中使用,该怎么办呢? 使用Cocoapods制作私有库就完美的解决了这个问题.下图就是使用私有库带给我们的好 ...

  5. 利用Cocoapods创建基于SVN的私有库podspec

    由于项目年后要进行组件化,考虑到公司内部实现的一些私有组件,不对外公开,而又想在不同项目中使用,该怎么办呢?由于cocoapods有了强大的功能,可以自己创建podspec,更可以设置私有的库.那么利 ...

  6. (转)CocoaPods

    本文转自http://nshipster.cn/cocoapods/ 文明是建立在道路,桥梁,运河,下水道,管线,电线和光纤这些基础设施之上的.只要设计和施工得当,它们可以帮助社会成倍的发展. 唯一的 ...

  7. iOS 组件化开发之使用CocoaPod制作自己的远程私有库

    随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分.但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好 ...

  8. Mac使用最多的软件,整理集合

    软件资源 #[PDF移除密码]Cisdem PDFPasswordRemover 3.0.0 [TNT] #Alfred_3.1.1_737 #fwmso2016vlu2.0 #iHosts #Omn ...

  9. iOS组件化开发入门 —— 提交自己的私有库

    前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...

随机推荐

  1. 具体解释C++引用——带你走进引用的世界

     一.介绍引用 首先说引用是什么,大家能够记住,引用就是一个别名,比方小王有个绰号叫小狗.他的妈妈喊小狗回家吃饭.那就是在喊小王回家吃饭. 接下来我们用两行代码来声明一个引用(就拿小王和小狗来说吧 ...

  2. node05---模块

    Node.js开发服务器,数据.路由.本地关心的效果,交互: Node.js实际上是极客开发出的一个小玩具,不是银弹.有着别人不具备的怪异特点: 首先,Node不为每个用户开辟一个线程,所以非常单线程 ...

  3. Python: PS 滤镜--碎片特效

    本文用 Python 实现 PS 滤镜中的碎片特效,这个特效简单来说就是将图像在 上,下,左,右 四个方向做平移,然后将四个方向的平移的图像叠加起来做平均.具体的效果图可以参考之前的博客 http:/ ...

  4. POJ 2373 单调队列优化DP

    题意: 思路: f[i] = min(f[j]) + 1; 2 * a <= i - j <= 2 *b: i表示当前在第i个点.f[i]表示当前最少的线段个数 先是N^2的朴素DP(果断 ...

  5. codeforces 501 B Misha and Changing Handles 【map】

    题意:给出n个名字变化,问一个名字最后变成了什么名字 先用map顺着做的,后来不对, 发现别人是将变化后的那个名字当成键值来做的,最后输出的时候先输出second,再输出first 写一下样例就好理解 ...

  6. Linux-CentOS5/6启动流程

    Linux-CentOS5/6启动流程

  7. Percona Monitoring and Management (PMM)安装使用

    一.docker安装 参考:http://www.cnblogs.com/liuyongsheng/articles/6595353.html 二.Percona Monitoring and Man ...

  8. docker切换默认镜像源

    docker切换默认镜像源   基于 debian8 默认安装的 docker 镜像源是在国外,pull 镜像的时候奇慢无比,需要自己手动切换成国内的镜像源. 1. 修改配置文件 docker 默认的 ...

  9. gcd步数

    题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...

  10. unity SystemInfo类 获得电量battery

    我觉得用Unity 开发最爽的地方, 不是unity跨平台,而是用其他语言,要用很复杂的逻辑才能完成的功能,unity用一两句代码就能搞定 就比如说获取Android 系统的电量,不用发广播,不用申请 ...