美文网首页
Pod私有库的搭建

Pod私有库的搭建

作者: Jackie_123 | 来源:发表于2019-10-28 14:24 被阅读0次

 我在上一篇文章中说完公有库的创建,那么公有库的创建是为了开源自己写的一些工具库或者框架,而私有库的创建就是为了在项目中真正的进行组件化的开发。下面我就说明一下私有库的搭建。
 首先值得注意的一点是,既然是自己项目中使用的,是不想让别人去访问,私有库是需要单独创建一个本地的索引库的。类似于下图:


图 - 0

上图的JNSpec就是我的私有索引库,下面的testOne123就是我的其中一个组件。
那么对于私有库的搭建步骤就是:

  • 安装cocoapod
  • 创建私有的podspec存放仓库
  • 创建工具类代码存放地址
    对于安装cocoapod在这儿就不多说了,我们直接从第二步创建podspec存放存库开始。

一. 在本地创建私有Spec Repo

什么是Spec Repo?它是所有的Pods的一个索引,就是一个容器,所有公开的Pods都在这个里面,它实际是一个Git仓库remote端GitHub上,但是当你使用了Cocoapods后它会被clone到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。
在上图中的master就是GitHub的索引目录,里面就是存放着公开的pods。我们在这一步做的就是创建一个类似于master这种目录存在我们自己的私有的pods。下面我将以GitHub为例创建私有的podspec仓库。

  • github创建一个空白的工程。


    图 - 1
  • 命令行中执行
pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
---------------------------------------------------------
pod repo add JNSpec https://github.com/jniosdeveloper/JNLibaray.git

此时如果成功的话cd到~/.cocoapods/repos目录下就可以看到JNSpec这个目录了。至此第一步创建私有Spec Repo完成。

二.创建Pod项目工程文件

这一步的作用就是放我们自己的组件文件。

  • 还是去github创建一个空白工程,这里我创建的是https://github.com/jniosdeveloper/testLib.git
  • 命令行执行
pod lib create testOne123

之后你会被问五个问题:

第一个问题:Objective-C 或者 Swift

第二个问题:Making a Demo Application,如果选是就会在你的Xcode工程中新建一个工程。
(如果你想要一个demo或者你需要一个测试单元在你的工程中,你应该选是)

第三个问题:Choosing a Test Framework,你应该测试你的工程,确保别人可用
(如何选择:如果你不能决定,就选Specta/Epecta)

第四个问题:View-based Testing,会根据你选的测试自动生成一个,建议选择NO

第五个问题: 你的前缀是什么,这里我用的JN
  • 接下来就是向Pod文件夹中添加库文件和资源,并配置podspec文件


    图 - 2
    图 - 3

    这里我是直接把TestOne通过show In Finder放在class目录下的,并且删除了replace.m文件

  • 编辑你的podspec文件,把一些项目描述等相关信息填上,这里我贴下我的podspec文件
#
# Be sure to run `pod lib lint testOne123.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 https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'testOne123'
  s.version          = '0.1.0'
  s.summary          = 'Just Test'

# 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
just oneDemo
                       DESC

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

  s.ios.deployment_target = '8.0'

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

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

编辑完podspec文件后,需要验证一下这个文件是否可用,如果有任何WARNING或者ERROR都是不可以的,它就不能被添加到Spec Repo中,不过xcodeWARNING是可以存在的,验证需要执行以下命令:

 pod lib lint
  • 提交工程文件到远程GitHub仓库
    通过Cocoapods创建出来的目录本身就在本地的Git管理下,我们需要做的就是给它添加远端仓库
git add .
git commit -m "Initial Commit of Library"
#推送到远端仓库
git push origin master  
  • 对你的版本打tag
git tag -m "first release" "0.1.0"
git push --tags     #推送tag到远端仓库

三.创建源码仓库

在第二步是把工程创建了出来,但是并没有给我们本地的私有spec仓库绑定。

  • 执行命令pod spec create testOne123 https://github.com/jniosdeveloper/testLib.git
  • 进行验证pod lib lint

四.向本地创建的Spec Repo提交podspec文件

  • cd到工程目录,执行
pod repo push JNSpec testOne123.podspec  #前面是本地私有Repo名字 后面是工程中podspec的文件名

完了之后我们在单独的工程中引用这个组件看看,编辑你的podfile,添加两个source:

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/jniosdeveloper/JNLibaray.git'
pod 'testOne123'

参考文章:
iOS开发之Cocoapods的使用与私有pod的制作

相关文章

  • Pod私有库搭建

    Pod私有库搭建 1、申请私有索引库项目权限: https://gitlab.pengpengla.com/pen...

  • pod subspec 子模块

    pod私有库创建详细教程pod私有库搭建完成后,给私有库创建子模块如图的形式 一、修改文件夹结构 二、上传改动到远...

  • 创建SDK库(framework)并可以使用cocoapods引

    一:pod库的新建 1.创建pod私有库. cd 私有库存放目标路径 pod lib create xxx(私有库...

  • pod 私有库搭建流程

    Pod私有库是什么: 搭建步骤 1.创建远程索引私有库 2.创建远程私有库 3.在本地添加一个自己的远程索引库 4...

  • 组件pod私库管理和踩坑记录

    私有库搭建流程:一 准备工作:1 查看本地是否有私有库索引文件 pod repo2 建立存储podsepc的地方(...

  • Pod私有库的搭建

     我在上一篇文章中说完公有库的创建,那么公有库的创建是为了开源自己写的一些工具库或者框架,而私有库的创建就是为了在...

  • pod私有库的搭建

    前言 项目中经常会遇到第三方库需要更新,而本地的repo库没有,需要执行pod repo update, 导致半天...

  • CocoaPods私有库走过的坑

    CocoaPods创建私有库遇到的坑 1、私有库依赖自己仓库的私有库执行pod spec lint时,需要在pod...

  • 创建私有Pod库流程简单梳理

    创建私有Pod库流程简单梳理 创建私有库的索引库(默认被pod管理的公开库的索引都在pod的github仓库,此地...

  • 用cocoapods搭建私有库遇到的问题

    最近要将公司项目中几个自有库用pod统一管理,分别熟悉了一下在svn和git上搭建私有库的过程。这里记录下搭建私有...

网友评论

      本文标题:Pod私有库的搭建

      本文链接:https://www.haomeiwen.com/subject/owwvvctx.html