美文网首页iOS组件化iOS Developer
从零创建cocoapods私有仓库

从零创建cocoapods私有仓库

作者: uniapp | 来源:发表于2017-05-04 20:43 被阅读125次

开发中用cocoapods管理第三方库,已经非常普遍.为了创建自己的cocoapods库,需要对cocoapods的实现逻辑有所了解.下图,是我创建cocoapods成功后,对其关系的理解:

cocoapods实现逻辑.png

cocoapods仓库托管来自Github的项目代码,当在项目中使用cocoapods时,其代码目录下载到repo文件夹下.通过命令行

cd ~/.cocoapods
可以看到如下文件结构:

repo.png
pod search 命令就是检索master文件夹,来寻找需要的三方库.
仿照上述cocoapods实现原理,可以创建自己的私有库.思路如下:
1创建用于其他项目引用的第三方工程代码A;
2创建类似cocoapods的库B,用来存放第三方工程代码A;
3将库B放到repo文件夹下,供pod search命令检索及项目下载;
步骤1和2的实现可以参考如下两个教程:
1制作 CocoaPods 依赖库
2如何创建私有 CocoaPods 仓库
按照作者的步骤实现过程中,出现了如下问题:
1 .podspec文件的修改后依然出现
    - NOTE  | [03View/TestTarget] xcodebuild:  /Users/zhudong/03View/03View/Test1/Test1.h:11:17: note: add a super class to fix this problem

[!] 03View did not pass validation, due to 2 errors and 2 warnings.
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run: 
    `echo "2.3" > .swift-version`.
You can use the `--no-clean` option to inspect any issue.
localhost:03View zhudong$ pod lib lint

可参照如下对文件语句的注释进行检查

Pod::Spec.new do |s| #s代表文件夹位置为一级,ss代表文件夹位置为二级
  s.name         = "03View"
  s.version      = "0.0.9"
  s.summary      = "guoxin-trade for iOS project."
  s.description  = <<-DESC
                  03ViewTest
                  DESC
  s.homepage     = "https://github.com/zhudong10/03View"
   s.license      = { :type => "MIT", :file => "LICENSE" }
  s.author             = { "zhudong" => "zhudongdong@91guoxin.com" }
  s.source       = { :git => "https://github.com/zhudong10/03View.git", :tag => "#{s.version}" }
  s.source_files  = "03View/TestHeader.h" #此处需要在本级目录下找到文件   
       # 目的文件夹名称 #
  #s.subspec 'TestTarget' do |ss| 
                      # 文件来源 #
   # ss.source_files = '03View/Test1/**/*.{h,m}'
                      # 资源文件 #
    #ss.resources = '03View/**/*.xcassets'
  #end
end

2 使用命令

pod repo add O2Specs https://github.com/marklin2012/O2Specs.git

创建02Sepcs文件后,使用

pod repo push O2Specs O2View.podspec

命令无效果,重新尝试两遍就行啦.

相信经过上面的操作,会对cocoapods会有更深的体会和理解.而深刻的理解,是实现项目模块化的基础,后面我会把项目采用的模块化方式也分享一下.

喜欢和收藏都是对我的鼓励和支持~

相关文章

网友评论

    本文标题:从零创建cocoapods私有仓库

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