美文网首页
CocoaPods私有库搭建说明

CocoaPods私有库搭建说明

作者: HannibalRoyal | 来源:发表于2019-08-28 14:31 被阅读0次

CocoaPods私有库搭建说明

关于CocoaPods

CocoaPods是Swift和Objective-C Cocoa项目的依赖管理器.他拥有超过65000个库,并超过300万个应用程序中使用.CocoaPods可以帮助您优雅的扩展项目.

官网:官网链接

CocoaPods的安装

这里就不详细说明CocoaPods的安装了,详细步骤请移步:
CocoaPods官方安装指南

私有库说明

CocoaPods的工作原理是,在第三方代码托管平台创建一个CocoaPods的索引库,例如:Github
然后将此索引库Checkout到本地,当我们执行Pod Search XXX的时候,其实是搜索的本地的索引库.这也就是为什么,如果长期不更新Pod索引,某些第三方会搜索不到的原因.
通过索引里面的信息,去下载对应的库安装,并处理好项目依赖等信息.

所以,根据上述描述,我们是否可以创建一个自己的索引库,然后做自己的库管理呢?答案是肯定的.CocoaPods支持私有Pods的搭建.

搭建私有库

根据上述说明,不难分析出,搭建一个私有库其实有几个重点.

  1. 创建自己的CocoaPods的索引库.
  2. 增加自己的CocoaPods索引库到自己的CocoaPods里.

做完上面两点,其实私有库的搭建方面已经做完了.下面我们来说说搭建CocoaPods私有库的详细步骤.

  1. Github,Gitlab,码云,Coding等第三方代码托管平台上创建自己的私有索引库,此处也可以是自己公司的本地私有Git仓库.
  2. 使用CocoaPods的命令行,在本地增加第一部的私有索引库.其实这一步也是将自己创建的私有索引库Clone到本地的操作.且支持HTTPSSSH方式,此处可根据自己的需求或者喜欢来选择合适自己的方式.

创建索引库就是在Git仓库里面创建一个空的仓库,此处就不详细说明了.值得注意的是,建立了仓库之后,一定要在库里面把LICENSE文件和README文件创建好,请记住LICENSE文件的,此处有两个目的:

  1. 避免上传.podspec文件到私有索引库的时候报错.
  2. 避免后续的LICENSE文件配置出错.

下面说一下增加索引库到本地.使用命令pod repo add REPO_NAME SOURCE_URL,其中REPO_NAME是私有索引库在本地的名字,SOURCE_URL是私有索引库的地址.
Example:

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

执行完上述命令之后,需切换到本地索引库目录,做进一步验证是否成功:

cd ~/.cocoapods/repos/REPO_NAME
pod repo lint .

Example:

cd ~/.cocoapods/repos/KKPrivateCocoaPodsSepc
pod repo lint .

执行验证后,提示下面即添加成功:

Linting spec repo `KKPrivateCocoaPodsSepc`
Analyzed 0 podspecs files.
All the specs passed validation.

至此,私有的CocoaPods的库以及搭建完毕.下面就是如何将自己封装的库/SDK添加到自己的私有Pods中.

制作库并使用CocoaPods私有库管理

  1. 首先在第三方代码托管平台创建自己的代码仓库.用于托管自己封装的库.
  2. 封装代码,确定编译运行无错,功能实现完成.
  3. 将封装的代码上传到第1步建立的代码仓库中.
  4. 打开终端.cd到项目文件夹,并创建索引配置文件.podspec.
pod spec create SPEC_NAME

出现下面提示,代表创建成功:

Specification created at KKWebViewController.podspec
  1. 编辑.podspec文件
    1. podspec的配置项很多,可根据需求配置,官方语法地址:官网地址.
      一般项目建议使用下面配置:
Pod::Spec.new do |s|
  s.name             = 'SPEC_Name' #项目名称
  s.version          = '1.1.1' #项目的版本号,一定要与仓库的Tag一致,仓库打的Tag即CocoaPods库的版本.
  s.summary          = 'XXXX' #项目简介
  s.homepage         = 'https://github.com/xxx'# 仓库的主页,有实际的填实际的,没有的话,填Github主页也行.
  s.license          = { :type => "MIT", :file => "LICENSE" }#指定MIT证书.
  s.author           = { "Orta" => "orta.therox@gmail.com" }#作者信息
  s.source           = { :git => "https://github.com/xxx.git", :tag => s.version }#你的仓库地址,不能用SSH地址
  s.social_media_url = 'https://twitter.com/artsy'# 个人主页,有实际的填实际的,没有的话,填Github主页也行.

  s.platform     = :ios, '7.0'#平台及支持的最低版本
  s.requires_arc = true #ARC

  s.source_files = 'Classes'# 你代码的位置,从项目根目录开始, Classes/*.{h,m} 表示 Classes 文件夹下所有的.h和.m文件
  s.resources = 'Pod/Assets/*'#一般不需要更改.

  s.frameworks = 'UIKit', 'Foundation'#支持的框架,多个使用,分割
  s.module_name = 'Artsy_UIFonts'
  s.dependency 'AFNetworking', '~> 1.0' # 依赖库
end
  1. 编辑完成后,我们要验证我们配置的是否正确.使用如下命令,验证的命令有两种,第一种是本地验证:
pod lib lint

第二种是本地/远程一起验证:

pod spec lint

一般我们使用pod sepc lint去验证,因为单本地验证通过后,后面执行pod repo push xxx xxx的时候,可能还是会报错.

  1. 验证通过示例如下:
RoyaldeMac-mini:WebViewController royal$ pod lib lint

 -> KKWebViewController (0.0.1)
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description

KKWebViewController passed validation.

验证通过是个解决问题的过程,配置书写的有问题,期间会出各种各样的问题,请耐心Google解决.不要有任何警告或者错误,不光是有错误或者警告,会导致上传失败,而且本人是极度强迫症患者.

  1. 将验证修改后的.podspec一并上传到代码仓库中.并修改Tag.
    9.推送.podspec到私有pod索引库
cd PROJECT_PATH
pod repo push REPO_NAME PROJECT_NAME.podspec

10.push成功后,使用pod repo update更新仓库,然后执行命令pod search REPO_NAME,此时CocoaPods会重新更新搜索index,等待更新完毕后,就可以成功搜索到自己的私有库了.

私有库的使用

私有库的使用跟常规的cocoapods使用并没有太大区别.在项目的profile文件中,加入我们的私有索引,然后加入需要pod的库,执行pod install或者pod update即可.如果是部分库使用私有库,部分库使用公有库,则需要把公有库的索引地址也加上,如下:

# Uncomment the next line to define a global platform for your project
source 'https://github.com/CocoaPods/Specs.git'#公有索引库地址
source 'https://gitlab.com/xxx/SPEC_NAME.git'#私有索引库地址

platform :ios, '9.0'

target 'TestProject' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for TestProject

  pod 'PUBLIC_POD_NAME'
  pod 'PRIVATE_POD_NAME', '~> 0.0.2'

end

遇到的问题

以上配置可能会遇到很多,下面只是我做演示项目中遇到的问题及解决方案,如果遇到其它未列出问题,请面向Google开发.

  1. - ERROR | [iOS] file patterns: The source_files pattern did not match any file.
    这个问题是由于source_files路径设置不对,需要一层一层的文件夹递进到目标文件夹:
    例如:我的工程文件是结构是:

    image.png

    source_files应该设置成:
    s.source_files = 'WebViewController/Classes'

  1. - WARN | [iOS] license: Unable to find a license file
    出现这个问题,主要是LICENSE文件的设置问题.主要是体现在几个方面:
    1. 文件名错误.
    2. 文件的位置错误.文件应该放在跟.podspec一个目录.
  2. - ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devices
    出现这个问题,修改xcode的偏好设置有问题:修改Xcode-Preferences-Location-Command Line Tools,选择当前xcode版本的命令行工具.

相关文章

  • CocoaPods私有库搭建说明

    CocoaPods私有库搭建说明 关于CocoaPods CocoaPods是Swift和Objective-C ...

  • CocoaPods开源库的搭建

    前言 如果你看了我之前写的文章《CocoaPods私有库的搭建》,而且有过实战,你会发现《CocoaPods开源库...

  • CocoaPods使用总结

    CocoaPods 公共库的创建CocoaPods 本地私有库的创建(模板创建方式)CocoaPods 本地私有库...

  • Pod搭建开源库小结

    1./Users/xxx/.cocoapods/repos 不管是搭建私有库还是开源库,这个路径下版本库repos...

  • Cocoapods私有库搭建

    最近在整理组件化相关的东西,其中有一项就是用pod管理内部的一些公共组件,为了加深印象,下面把具体步骤记录一下(注...

  • cocoapods 私有库搭建

    直入正题,原理性的东西边写边讲吧~。 首先我们需要用到两个私有git仓库,一个用于存放我们私有代码库,一个用于存p...

  • 搭建CocoaPods私有库

    因为公司的需要重新搞了一次CocoaPods,于是记录一下这次折腾下来的整个过程。 准备 开始之前,先说一下开发环...

  • CocoaPods私有库搭建

    CocoaPods 安装入门就不多说了可以看这个 https://www.jianshu.com/p/ab6411...

  • CocoaPods 私有库搭建

    本文源自本人的学习记录整理与理解,其中参考阅读了部分优秀的博客和书籍,尽量以通俗简单的语句转述。引用到的地方如有遗...

  • CocoaPods - 搭建私有库

    CocoaPods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自...

网友评论

      本文标题:CocoaPods私有库搭建说明

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