美文网首页
Git创建私有库

Git创建私有库

作者: 幻梦_ | 来源:发表于2018-01-19 16:34 被阅读0次

个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开源库一样在CocoaPods中管理它们,那么通过私有仓库来管理就很必要。大家没有安装CocoaPods或者对于CocoaPods还不太熟悉的,建议参考一下唐巧的博客或者直接到CocoaPods的官网看看:https://cocoapods.org/

GitHub私有库是付费用户,所以我使用了其他Git服务,我使用的是码云,当然还有其他的可供选择开源中国、CSDN Code,cocoachina,以及gitlab

首先在码云或gitlab上创建一个空项目,这里给个名字是MyTestLib.


创建.png
创建完成.png

一.在终端执行如下命令

/这个命令的作用:(1).创建本地仓库.(2)同第1步创建的github项目关联起来
//pod repo add 私有库名字 码云项目地址
pod repo add MyTestLib https://gitee.com/asdfasdwed/MyTestLib.git 
image.png

二、我们开始创建项目
1.cd 到我们想要存放项目的目录

//这个命令的作用是创建一个pod项目,它会自动给你生成spec文件,后面需要更改这个文件
pod lib create MyTestLib

2、根据自己的需求设置项目信息

  • 你想用什么语言?swift/ObjC
  • 您想要在您的库中包含一个演示应用程序吗?
  • 您将使用哪些测试框架
  • 你想做基于视图的测试吗
  • 你的类前缀是什么


    image.png

    3、成功之后会自动创建一个带有MyTestLib.podspec项目


    image.png
    4、Classes:存放类文件,默认会有一个ReplaceMe.m文件,
    image.png

    我们只需要把类文件代码放入Classes文件中,如果需要查看更改后demo效果,cd Example文件中pod update更新一下库即可.
    5、修改MyTestLib.podspec文件

Pod::Spec.new do |s|
  s.name             = 'MyTestLib'
  s.version          = '0.1.0'
  s.summary          = 'MyTestLib.'
  s.description      = <<-DESC MyTestLib描述 DESC
  s.homepage         = 'https://gitee.com/asdfasdwed/MyTestLib'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'ZJHGGHub' => 'zjh13785@163.com' }
#需要修改远程服务器地址也就是码云仓库地址
  s.source           = { :git => 'https://gitee.com/asdfasdwed/MyTestLib.git', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'            #支持的平台及版本
  s.requires_arc = true                   #是否使用ARC,如果指定具体文件,则具体的问题使用ARC
  s.source_files = 'MyTestLib/Classes/**/*'  #这个很重要,指定资源文件,前缀就是.podspec文件当前路径,只用写之后的路径,如Class/*是指Class文件夹下的所有文件,但不包括子文件夹里面的文件、Class/**/*是指包含所有Class文件夹下的文件,包括子文件、Class/**/*.{h,m}是指包含所有Class文件夹下的后缀为.h或.m的文件,当然也可以指定文件。
 #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
 # s.resource_bundles = {
 #   'PodTestLibrary' => ['MyTestLib/Assets/*.png']
 # }                                       #资源文件地址
 # s.public_header_files = 'MyTestLib/Classes/**/*.h'   #公开头文件地址
 # s.frameworks = 'UIKit'                  #所需的framework,多个用逗号隔开
 # s.dependency 'AFNetworking', '~> 2.3'   #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency

如果你编写的库文件需要多个子文件夹*.podspec文件可以参考下面如不需要可直接跳过看第6步

image.png
Pod::Spec.new do |s|
  s.name             = 'NetworkTools'
  s.version          = '1.2.0'
  s.summary          = 'NetworkTools.'
  s.description      = "NetworkTools ..."
  s.homepage         = 'https://gitee.com/ZHDreams'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'ZJHGGHub' => 'zjh13785@163.com' }
  s.source           = { :git => 'https://gitee.com/ZHDreams/NetworkTools.git', :tag => s.version.to_s }
  s.ios.deployment_target = '8.0'
  
  s.subspec 'ZHNetTool' do |ss|
      ss.dependency 'ReactiveObjC', '~> 3.0.0'
      ss.dependency 'AFNetworking', '~> 3.1'
      ss.source_files = 'NetworkTools/Classes/ZHNetTool/**/*'
  end
  
  s.subspec 'ZHMJRefsh' do |ss|
      ss.dependency 'MJRefresh', '~> 3.1.12'
      ss.source_files = 'NetworkTools/Classes/ZHMJRefsh/**/*'
  end

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

image.png

7、验证成功后开始提交我们的项目到码云服务器
依次执行下面代码

//这里是链接你码云服务器的仓库地址
git remote add origin https://gitee.com/asdfasdwed/MyTestLib
git add . 
git commit -m "提交信息"
git push origin master
//注意:如果你创建项目的时候生成了README或者license文件,那么这里你push的时候可能会push不了,这里的话可以用
git push origin master -f 强制提交,会覆盖之前的文件
//为仓库打tag(很重要),而且这个tag必须和spec文件中的版本一致
git tag -m "版本" 0.1.0
//提交版本
git push --tags
//最后将你的spec文件push到远程私有库进行管理
pod repo push MyTestLib MyTestLib.podspec --allow-warnings
image.png
image.png

大功告成私有库创建完成

三、测试私有pod,新建一个项目,然后进入到项目文件中

  • pod init
source 'git@gitee.com:ZHDreams/Spec.git' //码云Spec文件存放仓库
#source 'https://github.com/CocoaPods/Specs.git' //如有第三方库依赖例如AFNetworking时,添加af Spec文件存放仓库
# platform :ios, ‘8.0’
target 'Test' do
pod 'MyTestLib', '~>0.1.0'
end

pod install


image.png

安装私有库遇到的一些问题解决

问题1、pod search 未找到库时出现[!] Unable to find a pod with name, author, summary, or description matching

解决:rm ~/Library/Caches/CocoaPods/search_index.json
然后重新搜索 pod search

问题2、使用pod repo push Spec 命令提交远程索引文件报错信息

[!] The repo Spec at ../../../.cocoapods/repos/Spec is not clean

解决:1

cd ~/.cocoapods/repos/Spec
git clean -f

解决:2

删除Spec本地索引重新添加
pod repo remove Spec
pod repo add Spec git@gitee.com:ZHDreams/Spec.git

这里感谢未来行者的博客CocoaPods私有库

相关文章

  • ios 私有库创建

    一.创建私有库的索引库 1.git上创建私有索引库 拿到私有库的索引地址(https://github.c...

  • 01 组件开发--远程私有库创建

    远程私有库的创建你也可以使用git,但是git的私有库的创建需要钱,此处我使用"码市" "https://codi...

  • 建立Pod私有库

    source仓库 gitlab上建立MyPodSpecs.git terminal 私有库 创建私有库 提交至服务...

  • iOS Pod私有库创建步骤

    一:创建pod私有库步骤: 1:先在Git上创建私有库 会得到一个私有仓库地址:htts://github.com...

  • iOS CocoaPods私有库

    远程私有库就可以方便的解决以上的问题,制作远程私有库分为以下几个步骤: 创建私有 Git 远程仓库; 创建私有 C...

  • 创建远程私有库

    创建自己的远程私有库过程 创建远程索引库 // git.oschina.net 上创建一个私有项目 ,使用 ssh...

  • cocoaPods私有库创建以及使用,多重库引用

    一、创建本地pod私有库 1.创建git私有库 在进行一切操作之前,先在内网创建一个git仓库。这块我就不多做介绍...

  • iOS--本地私有库和远程私有库(二)

    (二)本地私有库创建及优化 ⅰ.普通版 1.在本地创建库文件 git initgit add .git commi...

  • iOS-组件化开发- 本地私有库

    1. 创建本地私有库 创建需要做成组件的库1.png 使用git管理git initgit add .git co...

  • CocoaPods- 私有库

    参考文章:创建私有库 一、创建代码私有库 1、把代码托管到git托管平台上,国内免费私有仓库 两种方式:1、远程先...

网友评论

      本文标题:Git创建私有库

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