一、背景

目前iOS组件化常用的方案就是Pod+路由——持续集成,今天我们来创建一个Pod库。

二、注册用户名和邮箱(此为GitHub的用户名和绑定的邮箱)

1、可以使用如下指令查看自己是否已经绑定过

$ pod trunk me

如果终端如图一输出,就表示已绑定,否则未绑定

图一

2、未绑定,使用如下指令绑定

$ pod trunk register 你的邮箱 '你的用户名' --description='这里是描述'

终端输出如图二

图二

注:执行完该命令后,绑定的邮箱会收到一封邮件里面包含一个验证的连接,打开该链接进行验证!

3、然后在使用 $ pod trunk me 指令来验证下,是否绑定成功

二、在本地创建pod库

1、根据自己存放的习惯创建一个空文件夹,用于存放我们的pod库,然后打开它

$ cd /Users/xiaohe/Desktop/Cocoapods
$ pod lib create YHBaseTest

3、执行完上述命令后,会依次问如下问题

What platform do you want to use?? [ iOS / macOS ]> iOS
What language do you want to use?? [ Swift / ObjC ]> ObjC
Would you like to include a demo application with your library? [ Yes / No ]> Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ]> None
Would you like to do view based testing? [ Yes / No ]> No
What is your class prefix?> YH

4、完成以上问题后,终端输出图三,并会自动打开项目

图三

5、然后我们配置YHBaseTest.podspec文件

Pod::Spec.new do |s|s.name             = 'YHBaseTest's.version          = '0.1.0'            //版本号根据自己的版本设定s.summary          = '这是一个测试pod'    //这个描述要自己写一个不要使用默认的,不然会给一个警告的# 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这个地方也是一个描述,要比summary这个地方的描述多一些DESCs.homepage         = 'https://github.com/AugustCloud/YHBaseTest'# s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2's.license          = { :type => 'MIT', :file => 'LICENSE' }s.author           = { '这个是绑定的用户名' => '这里是绑定的邮箱@163.com' }s.source           = { :git => 'https://github.com/AugustCloud/YHBaseTest.git', :tag => s.version.to_s }# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'s.ios.deployment_target = '9.0's.source_files = 'YHBaseTest/Classes/**/*'# s.resource_bundles = {#   'YHBaseTest' => ['YHBaseTest/Assets/*.png']# }# s.public_header_files = 'Pod/Classes/**/*.h'# s.frameworks = 'UIKit', 'MapKit'# s.dependency 'AFNetworking', '~> 2.3'
end

三、去GitHub上创建一个仓库

1、如图四创建一个新的仓库

图四

2、接下来就把自己的工程推送到GitHub上。

//打开当前项目所在文件夹
$ cd /Users/xiaohe/Desktop/Cocoapods/YHBaseTest
$ git remote add origin 此为GitHub上面的仓库地址
$ git add .
$ git commit -m "first commit"
$ git push -u origin master终端出现该输出,标识上传成功
To https://github.com/AugustCloud/YHBaseTest.git* [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

3、验证本地podspec文件,使用如下指令

$ pod lib lint YHBaseTest.podspec如报错:[!] YHBaseTest did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
使用如下指令
$ pod lib lint --allow-warnings只要见到 YHBaseTest passed validation. 就是成功通过了验证。

到这我们只是创建了一个合格的空白的工程,并没有任何的功能,接下来我们就来创建自己的代码!!!!

四、添加自己的库文件

1、我们打开项目,创建一个类,声明一个方法,一遍来测试

- (void)testPrint {NSLog(@"哈哈哈,我的pod的打印");
}

2、要把创建的文件放入到Classes文件夹里面,并删除ReplaceMe.m文件

图五

3、添加完代码,执行以下指令上传到远程仓库

$ git add .
$ git commit -m "添加测试代码"
$ git push

4、发布项目到Cocoapods上去需要添加版本号的,并创建同名分支branch,用如下指令添加版本号

//添加版本号
$ git tag -a 0.1.0 -m "版本0.1"
//创建同名分支
$ git branch 0.1.0
//查看版本号
$ git tag
//将本地的添加的tag同步到远程代码仓库
$ git push --tag

五、验证本地podspec文件

1、打开podspec所在文件目录

$ cd podspec所在文件目录

2、使用验证命令

//YHBaseTest.podspec修改为自己的podspec文件名称
$ pod spec lint YHBaseTest.podspec注:看到 YHBaseTest.podspec passed validation. 就说明验证通过

3、如果失败,输出如下的日志

[!] TestLib did not pass validation, due to 3 warnings (but you can use `--allow-warnings` to ignore them).

那就是用如下的指令

$ pod lib lint --allow-warnings

六、发布pod库(就是提交podspec文件到Specs仓库)

使用如下命令

//YHBaseTest.podspec 就是自己的podspec文件名称
$ pod trunk push YHBaseTest.podspec出现如下日志就表示发布成功了
Updating spec repo `trunk`
Validating podspec
Updating spec repo `trunk`--------------------------------------------------------------------------------												

iOS创建自己的远程cocoapod库相关推荐

  1. Git版本控制管理——远程版本库

    之前提到的Git的所有操作都是在本地完成的,而实际项目开发并不是一个人就可以搞定的,通常需要团队的协作,而这些协作可能又不是在同一个地区的,这就涉及到Git的分布式特性了. Git的分布式特定会涉及到 ...

  2. iOS实用的600个第三方库 秒搜藏

    图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放 ...

  3. CocoaPods远程私有库

    上一篇(让自己的开源项目支持CocoaPods集成)介绍了将自己开发的框架代码发布到Cocoapods,全球的开发者都可以通过pod search搜索到我们的框架代码以及通过pod install进行 ...

  4. iOS架构-cocoaPods之自制私有库及管理(17)

    CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便. 个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开 ...

  5. ios git解决冲突_适用于iOS和Linux的远程同步解决方案:Git和工作副本

    ios git解决冲突 如何在iOS上使用Git设置跨平台的云同步解决方案以在任何地方工作. (How to set up a cross-platform cloud sync solution f ...

  6. 组件化开发-002-Cocoapods远程私有库使用(Private Repo)

    创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的Spec Repo. 创建Pod所需要的项目工程文件,并且有可访问的项目版本控制地址. 创建Pod所对应的podspec文件. ...

  7. iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引

    http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例  http://www.cocoacontrols.com/ 英文版本的lib收集  ht ...

  8. 利用cocoapods创建基于git的私有库Spec Repo

    上一篇文章记录了我利用cocoapods创建基于SVN的私有库的全部过程,今天我再记录一下基于git创建的过程. 整体先说明一下创建一个私有的podspec包括如下那么几个步骤: 创建并设置一个私有的 ...

  9. iOS、mac开源项目及库

    1.用来生成 @3x 的图片资源对应的 @2x 和 @1x 版本,只要拖拽高清图到 @3x 的位置上,然后按Ctrl+Shift+A即可自动生成两张低清的补全空位.当然你也可以从 @2x 的图生成 @ ...

最新文章

  1. 重置 microsoft visual studio窗口
  2. 网页 内部转发和网址输入不同
  3. asp.net core 2使用本地https证书
  4. 【数据结构-树】4.图解平衡二叉树和哈夫曼编码(逐步演绎,一文读懂)
  5. Redis缓存穿透 缓存击穿 缓存雪崩原因及其解决方案
  6. Oracle 同义词、DBLINK、表空间的使用
  7. HTML5类选择器使用,CSS选择器种类及使用方法
  8. 俄罗斯议会预计2021年代币发行将激增
  9. django数据库增删改查操作
  10. FDTD Solutions自学整理笔记入门教程(5):仿真时间
  11. Python导包的几种方法,自定义包的生成以及导入详解
  12. html thead隐藏,html thead标签的作用是什么?
  13. 在格式化的场景下,React input 的光标的处理办法
  14. 利用spring的jdbcTemplate处理blob、clob
  15. 由一个误操作引起的对linux下mv命令的使用总结
  16. 水产行业智能供应链管理平台解决方案:支撑企业供应链数字化,提升企业管理效益
  17. 设计性思考维模型及步骤(上)
  18. linux控制主机,Linux操作系统的基本结构和终端控制
  19. VSCODE 配置cl.exe编译器
  20. 哈希存储、哈希表原理

热门文章

  1. PT2001 / PT2000 诊断功能
  2. Oracle 中的 (+) 到底是啥意思?
  3. 计算机专业考研学校报录比,盘点那些考研报录比高出天际的专业!
  4. 摩尔庄园同一服务器怎么显示好友,摩尔庄园中如果找不到好友应该如何解决?...
  5. 浅谈onlyoffice文档协作在工程设计中的应用——共享excel计算书
  6. ci/cd工具_CI / CD工具的简要历史
  7. steam(wallpaperEngine)双屏,比较cool的桌面推荐
  8. 联咏NT98525/8开发板套件,开发者的福音
  9. 2018-11-29
  10. 第二节:搜索引擎基础原理(seo前线seo网站优化培训)