cocoapods从入门到上架

96
liangdahong
2017.08.25 07:16* 字数 1507

原blog

之前做项目时,基本没有使用过 cocoapods,因为听道上的人说,使用 cocoapods 好麻烦,有时候出现一下坑的事情都不知道怎么弄,好坑的说,但是由于项目慢慢的迭代,导致使用的 第三方越来越多,而且还牵涉到 第三方库的版本问题,瞬间感觉好麻烦,还是玩玩 cocoapods 吧,本文主要讲述 cocoapods的使用 以初始化项目的一些注意点。

cocoapods 的使用

前提在已经安装好 cocoapods 的情况下

使用cocoapods

初步使用pod

1、使用 Xcode 创建一个名为: myCocoapods 的项目

2、创建 .gitignore 文件 touch .gitignore,配置好我们平常需要忽略的相关文件,打开 Pods/ 可以参考github官方之gitignore

3、cd 到刚才的项目

4、pod init

如果是升级 Xcode8 后,可能执行 pod init
后没有任何反应或者其他错误
查找资料得:
执行 sudo gem install -n /usr/local/bin cocoapods --pre
后可正常使用
参考自

5、pod update

6、在 Podfile 中添加相应的第三方

最简单的版本选择:参考

#  取最新版本
pod 'MJRefresh',
    
#  取3.1.12
pod 'MJRefresh', ‘3.1.12'
    
#  [3.1.12 ...]
pod 'MJRefresh', ‘>=3.1.12'
    
#  (3.1.12 ...]
pod 'MJRefresh', ‘>3.1.12'
    
#  [0.0.0 3.1.12]
pod 'MJRefresh', ‘<=3.1.12'
    
#  [0.0.0 3.1.12)
pod 'MJRefresh', ‘<3.1.12'
    
# [3.1.12 3.2.0)
pod 'MJRefresh', ‘~>3.1.12'

7、 在 pod update 或者 pod update --verbose --no-repo-update

8、把项目 push 到仓库

9、项目的初始化基本OK,另一个开发到来以后直接去 git 仓库 clone 项目下来

10、然后 pod update 或者 pod update --verbose --no-repo-update 一下即可正常使用了

11、项目结构如下:


Demo链接

pod的一些命令

列出所有本地已经缓存的第三方库

pod cache list

输出如下

iCarousel:
  - Version: 1.8.2
    Type:    Release
    Spec:    /Users/vivi/Library/Caches/CocoaPods/Pods/Specs/Release/iCarousel/1.8.podspec.json
    Pod:     /Users/vivi/Library/Caches/CocoaPods/Pods/Release/iCarousel/1.8.2-67c8a
libextobjc:
...

清除指定缓存

pod cache clean libName

清除全部缓存

pod cache clean all

让自己的代码使用 cocoapods 管理

1、在github创建项目

2、初始化好项目

3、clone 项目下来

4、到项目root目录下, 创建 spec 文件
cd 项目
pod spec create 名称

5、编辑 spec 文件 (MJRefresh的spec文件是这样写的,里面具体的含义以后补充,或者 自行Google

Pod::Spec.new do |s|
    s.name         = 'MJRefresh'
    s.version      = '3.1.12'
    s.summary      = 'An easy way to use pull-to-refresh'
    s.homepage     = 'https://github.com/CoderMJLee/MJRefresh'
    s.license      = 'MIT'
    s.authors      = {'MJ Lee' => '199109106@qq.com'}
    s.platform     = :ios, '6.0'
    s.source       = {:git => 'https://github.com/CoderMJLee/MJRefresh.git', :tag => s.version}
    s.source_files = 'MJRefresh/**/*.{h,m}'
    s.resource     = 'MJRefresh/MJRefresh.bundle'
    s.requires_arc = true
end

6、新建 tag 且提交项目

git add .

git commit -m '0.01'

git tag 0.0.1

git push --tags

git push origin master

7、验证一下 podspec 文件

pod lib lint

8、如果是第一次提交需验证一下,不是第一次可以不用此步

pod trunk register ios@idhong.com 'idhong' --description=‘一些描述’

此时需要登录邮箱验证一下身份,看提示即可

9、提交给 cocoapods 管理

pod trunk push IHExtension.podspec --allow-warnings

10、如果成功,可能需要等几分钟才可以 search 到你的 lib, 可去cocoapods查看

11、提交好了以后如果还是无法搜索到自己的项目,可以使用以下方法

删除搜索目录

rm ~/Library/Caches/CocoaPods/search_index.json

pod search
或者
pod repo update

12、可以正常使用了
pod search XXX

13、如果想多人维护一个库(需先让指定的邮箱注册)

pod trunk add-owner IHExtension xxx@xxx.com

14、查看自己的信息

pod trunk me

Demo链接

公司公共模块使用 cocoapods 管理

pod 的配置文件放在cocoapods官网 配置里的指向github

上面的方式

pod 的配置文件放在cocoapods官网 配置里的指向内网

外面可以搜到到,但是无法下载,需要打tag

1、如果公司的项目较多,那么许多公共模块,一些工具类如果使用 pod 管理起来就更加方便了。

2、一个方法的只需要把上面配置文件;
s.homepage s.source 指向自己的内网就👌,虽然把 pod 的配置文件push 到了cocoapods 官网,但是别人其实无法查看其中的任何内容。

使用和配置都比较简单,但是外面的人会搜到你的模块,只是无法下载

配置文件 使用电脑路径的方式

使用还比较简单,而且不需要打 tag,比较适合公共模块在开发阶段,push就可以了

--

pod 'iOS-Echarts', :path => '../iOS-Echarts'

路径为 podspec 在本电脑的的路径,可以把自己的私有第三方放在内网上,然后下载到本地方的一定路径,可以放到 ~/ 的路径那么全部成员的电脑都可以正常使用了,可以自由发挥,但是保证配置完全正确

使用 私有 repo 管理配置文件的方式

操作比较复杂,需要打 tag,适合于公共模块已经比较稳定的情况

思路为自己创建私有的spect来管理内部的 lib 的配置文件,就和其他公共第三方放到 cocoapods 官网一样

  • 需要创建一个私有的管理 第三方的配置的 库
  • 创建一个自己的库让私有仓库管理
  • 创建好上面的2个库
  • 添加进去 pod repo add spect的名称 spect的git地址
  • 验证一下 pod spec lint IHKit.podspec --sources='https://github.com/asiosldh/IHKit.git, https://github.com/CocoaPods/Specs.git' --allow-warnings
  • push到自己的私有仓库进行管理 pod repo push 'IHCocoapods' IHKit.podspec --allow-warnings
    push 时需要在全部配置好的情况下,配置文件填写完整,tag配置ok

完成后就可以正常使用了
Podfile 声明一下

# 官方库
source 'https://github.com/CocoaPods/Specs.git'
# 私有库  
source 'https://github.com/asiosldh/IHCocoapods.git'   
  • 想删除一个库,可以用 pod repo remove WTSpecs
  • 如果想删除一个库的一个版本 可以直接到文件夹下删除指定的文件夹 在 push 到 git 就好了

其他人使用时,pod repo add spect的名称 spect的git地址 添加到目录下,以后用更新只需要
cd ~/.cocoapods/repos 到指定的目录下 pull 就OK

利用 appledoc 生成 API 文档

  • 克隆项目 git clone https://github.com/tomaz/appledoc.git

  • 到目录下 cd appledoc

  • 安装 sudo sh install-appledoc.sh

  • 查看版本情况 appledoc --version

  • 生成文档 appledoc --no-create-docset --output 生成的文档保存的路径 --project-name "你的项目名称" --company-id "com.idhong" --project-company "公司名称" 需要生成文档的项目

参考1
参考2


声明

感谢收看,有任何疑问和建议可在下方留言(如果不显示评论,搭个梯子就有了),欢迎GithubStar😁,本文发布于梁大红的技术Blog,转载注明出处即可。

iOS开发
Web note ad 1