组件化:CocoaPods搭建私有仓库

一、cocoapods公共仓库

1、查看 cocoapods 本地目录

使用 finder-->前往文件夹,输入:

~/.cocoapods/repos

跳转至本地cocoapods目录

cocoapods本地目录如下所示:

master:是cocoapods对应的公共git仓库

Myspecs:是自己创建的私有仓库地址(后面会提到如何创建)

 

二、搭建自己的pods私有库

1、创建私有的Spec Repo

1)在github上创建一个MySpecs仓库

具体步骤:登录github-->点击右上角“+”-->选择 new repository-->输入Repository name为MySpecs,选择仓库类型为 private,点击Create repository。

到此为止,MySpecs仓库创建好了

2)在终端执行命令,将仓库添加到~/.cocoapods/repos目录下

pod repo add mySpecs https://github.com/xxx/MySpecs.git

2、创建pods工程

1)在桌面创建一个test文件夹目录,并 cd 到test 目录

2)执行终端命令

pod lib create pod_test

显示如下,依次输入的次序:ios、swift、no、none、no

3)成功后,会在test目录下创建一个pod_test工程,目录如下

 

3、提交pods库到github上

1)首先在github创建一个私有仓库,步骤如二中1,命名为pod_test

2)cd到pod_test目录下,执行以下终端命令

$git init
$git add .
$ git commit -am "第一次提交" 
//即第一个步骤中创建的仓库地址
$ git remote add origin https://github.com/xxx/pod_test.git

$ git push origin master 
//一定要有标签,不然会有下面的警告
//podspec文件中获取Git版本控制的项目需要tag号,
$ git tag -m "first release" "0.1.0" 
$ git push --tags 

4、配置pod_test的podspec文件

1)通过test目录打开工程

2)找到pod_test.podspec文件,该文件在执行$pod lib create pod_test已经被自动创建

3)podspec文件格式如下

Pod::Spec.new do |s|
  s.name             = 'pod_test'
  s.version          = '0.1.0'
  s.summary          = '这是我第一个私有库项目demo'#需要修改的地方

# 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
Add long description of the pod here.#需要修改的地方
                       DESC

  s.homepage         = 'https://github.com/chenjialin1016/pod_test'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'chenjialin1016' => '1109221208@qq.com' }
  s.source           = { :git => 'https://github.com/chenjialin1016/pod_test.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '8.0'

  s.source_files = 'pod_test/Classes/**/*'
  
  s.swift_version = '3.2'
  
  # s.resource_bundles = {
  #   'pod_test' => ['pod_test/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end
关键字说明

s.name 

pod search 搜索的关键词,注意这里一定要和.podspec的名称一样

s.version 

版本号,每一个版本对应一个tag

s.summary 

简介

s.homepage 

项目主页地址

s.license

许可证

s.author 

作者

s.social_media_url 

社交网址

s.source 

项目的地址

s.source_files 

需要包含的源文件

s.resources

资源文件

s.requires_arc 

是否支持ARC

s.dependency 

依赖库

s.ios.deployment_target = '8.0'

支持的pod最低版本

4)验证该podspec文件,cd到pod_test目录

pod spec相对于pod lib会更为精确,pod lib相当于只验证一个本地仓库,pod spec会同时验证本地仓库和远程仓库。

pod spec lint

当然我们验证时可以忽略这些警告,使验证通过

pod spec lint --allow-warnings

绿色文件代表podspec文件验证通过

5、在Example工程修改podfile文件

修改podfile文件,并执行 pod uodate

use_frameworks!
target 'pod_test_Tests' do
    #pod 'pod_test', :path => '../'
    pod 'pod_test', :path => '../pod_test.podspec'
  
  
end

6、把pod_test.podspec提交到MySpecs仓库

cd 到 pod_test目录,执行以下命令

pod repo push [本地Spec Repo名称][podspec文件路径]

$ pod repo push mySpecs pod_test.podspec  

如果报一下错误(红色文字)

解决办法1:

cd ~/.cocoapods/repos/MySpecs,git clean -f

解决办法2:移除~/.cocoapods/repos/目录下的Myspec,执行添加命令,再重新执行提交

pod repo add mySpecs https://github.com/xxx/mySpecs.git

以下是提交成功的显示

打开~/.cocoapods/repos/目录下的Myspec,可以看到我们提交的,

在对应的spec仓库地址也能看到提交记录。

 

三、使用

新建一个工程,在项目的podfile里添加

#私有spec仓库的地址,而不是某个pod仓库的地址
source 'https://github.com/xxx/MySpecs'
pod 'pod_test'

再执行pod install,可以在新工程中的pods文件夹中看到 pod_test对应的文件夹。

到此,算是完成pods私有库的搭建了。

 

四、更新pods

例如:创建一个StringExtension.swift的文件,里面的实现的String的扩展

注意:

1、如果这个文件是需要对外公开的,需要在前面加上public

2、新建的文件必须放在Classes文件内

3)pods工程每次修改后,上传git(git上传前,需要在podspec文件修改版本号),都需要重新走一遍上面的3、4、6步骤,并且在主工程的调用中,需要将podfile.lock文件删除,重新pod install下新的版本

如何使用呢?

在主工程import pod_test,然后即可调用

五、发布spec

发布主要是用于公开的framework类的组件用于发布到cocopod

1、发布之前需要有cocopods trunk账号,注册密令如下:

$ pod trunk register [Your-Email] '[Your-Name]' --description='[Your-Desc]'

> [Your-Email]: 任意邮件
> [Your-Name]: 推荐使用github上使用的Name
> [Your-Desc]: 使用电脑的描述

// eg:
$ pod trunk register xxxx@163.com 'pod_test' --description='pod_test'

// 注册完成后,[pod trunk me]查看信息
$ pod trunk me

2、验证podspec:pod spec lint

3、发布podspec

$ pod trunk push [NAME].podspec
或者
$ pod trunk push [NAME].podspec --allow-warnings

4、成功发布后,看看能不能search到

/ 先更新一下repo
$ pod repo update
$ pod search 'pod_test'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值