iOS 远程私有库的搭建以及使用(上)

简介: iOS 远程私有库的搭建以及使用

思路:创建一个是远程私有spec仓库与本地私有spec仓库,也就是两个检索库,其他的和远程仓库没有太大的区别,区别是比远程公有仓库多两个检索库

总体内容


  • 1、创建 远程私有Spec仓库与本地 Spec Repo检索库
  • 2、创建Pod私有库所需要的项目工程文件,并上传到私有仓库
  • 3、创建Pod所对应的podspec文件, 并进行验证/测试
  • 4、创建JKCIOBase版本,并提交代码代码到JKCIOBase的远程仓库
  • 5、向私有的Spec Repo中提交podspec和远程私有spec仓库提交
  • 6、使用pod库来测试远程私有库的使用
  • 7、远程私有库与其他公有的混合使用
  • 8、远程私有库分支
  • 9、远程私有库添加依赖库
  • 10、资源文件 .buldle 的添加
  • 11、远程私有库内容更新
  • 12、fastlane 自动化更新pod库
  • 13、其他组内成员如何使用?


一、创建 远程私有Spec仓库与本地 Spec Repo检索库



远程的spec文件存在码云的私有仓库

  • 1.1、在 码云 创建私有的spec仓库,取名为JKCIOSpecs,一定要选择私有,不然谁都可以看到就没有什么意义了


image.png

image.png


1.2、在本地添加一个spec仓库


  • (1)、查看本地spec路径
pod repo



image.png

(2)、查看帮助信息,可以看到能够添加本地spec仓库的提示


pod repo --help


image.png



(3)、开始在本地添加spec仓库

具体的代码如下: JKCIOBase是本地spec仓库的名字,名字你自己可以随意取,  git@gitee.com:JKWC/JKCIOSpecs.git是我们上面在码云创建的远程spec仓库的 ssh 路径,本地和远程关联起来


pod repo add JKCIOBase git@gitee.com:JKWC/JKCIOSpecs.git

添加后的效果如下


command + shift +G 输入  ~/.cocoapods/repos


image.png


提示:如果你的公钥与私钥没有配置,那就设置下,在终端输入下面的代码,之后最后出现下图


ssh-keygen


image.png


去电脑上的 个人->.ssh 文件夹里面复制id_rsa.pub的内容到码云(在码云个人设置里面添加公钥),也可以使用快捷键:command + shift +G 输入 ~/.ssh 进入到 ssh文件里面


image.png


  • 小提示:.ssh是隐藏文件,可以用 command+shift+.让隐藏文件显示出现,复制完记得再次输入command+shift+.让隐藏文件关闭,切记不要轻易删除任何隐藏文件


  • (4)、查看添加后的效果,在终端输入下面代码


pod repo


image.png



二、创建Pod私有库所需要的项目工程文件(我们还在码云创建)



  • 2.1、我在码云创建的CIO时代的基础组件与功能组件库: JKCIOBase

image.png


image.png


  • 2.2、把JKCIOBase克隆到本地,创建一个文件夹 JKRemoteLocal


# 1、 cd导入路径
cd 进入到JKRemoteLocal文件夹
# 2、git clone 仓库到本地:clone自己仓库的地址
git clone https://gitee.com/JKWC/JKCIOBase.git


  • 2.3、在本地 JKRemoteLocal/JKCIOBase 文件夹里面创建一个 JKCIOBase文件夹,同时创建一个JKCIOBaseDemo项目,与刚才创建的JKCIOBase同一个目录


image.png

2.4、在与JKCIOBaseDemo 同级的文件夹JKCIOBase里面,我又创建了一个文件夹JKCategory,里面拖入了一个UIView的分类UIView+JKLayout


image.png

image.png

三、创建Pod所对应的podspec文件, 并进行验证



  • 3.1、在与JKCIOBaseDemo同目录下创建文件 JKCIOBase.podspec


cd 进入到JKCIOBase
  • 提示:JKCIOBase 是第一个文件夹,也就是 JKCIOBase与JKCIOBaseDemo所在的文件夹
  • 3.2、创建spec文件


pod spec create JKCIOBase


image.png


3.3、修改spec文件,下面是我修改的内容


Pod::Spec.new do |s|
   s.name         = "JKCIOBase"
   s.version      = "0.0.2"
   s.summary      = "JKCIOBase."
   s.description  = "JKCIOBase是CIO时代的基础组件,后续还会继续增加"
   s.homepage     = "https://gitee.com/JKWC/JKCIOBase"
   s.license      = "MIT"
   s.author             = { "JoanKingWC" => "JoanKingWC@163.com" }
   s.ios.deployment_target = "8.0"
   s.source       = { :git => "https://gitee.com/JKWC/JKCIOBase.git", :tag => "#{s.version}" }
   s.source_files  = 'JKCIOBase/**/*.{h,m}'
   s.requires_arc = true
end


提示:

1、s.summary 要比 s.description

2、s.homepage写JKCIOBase在码云的首页


image.png


3、s.sourceJKCIOBase的代码地址即可


image.png


4、 s.source_files 不要写错,这里的路径是以 spec所在的目录开始寻找的,也就是以 JKCIOBase.podspec所在的目录开始寻找, JKCIOBase与 JKCIOBase.podspec同级目录,取JKCIOBase下所有文件夹与 .h.m文件


s.source_files  = 'JKCIOBase/**/*.{h,m}'   // ** 代表所有文件

5、如果依赖什么库,就写上依赖,如下,依赖 sqlite3,代码如下


s.library = "sqlite3"
  • 3.4、远程验证spec文件是否符合规则
pod spec lint JKCIOBase.podspec
  • 提示:如果报错就看下我在远程公有库博客里面对于验证spec文件有问题的处理


四、创建JKCIOBase版本,并提交代码代码到JKCIOBase的远程仓库



  • 4.1、 cd JKCIOBase.podspec所在的目录


cd JKCIOBase.podspec所在的目录
  • 4.2、创建版本 tag: 要与 JKCIOBase.podspec里面的版本号保持一致


git tag '0.0.1'
  • 4.3、提交版本号


git push origin 0.0.1
  • 提示:如果你提交tag失败了,请关联仓库,后面加你的仓库地址,切记是代码仓库地址,不是远程spec仓库地址


git remote add origin https://github.com/JoanKing/JKCIOBase.git
  • 如果我们想推送到其他的分支,可以移除之前的分支,假如我们自己的分支叫 feature,那么查看是不是 feature,如果不是就删除掉,有关这一点不懂的可以下方评论
// 查看当前的分支
git branch
// 查看自己的remote端名字
git remote -v
//  如果不是我们的分支,删除之前的  分支名 项目关联,下面以 origin 为例
git remote rm origin
// 添加关联
git remote add feature https://github.com/JoanKing/JKGCDTimer.git


  • 4.4、提交本地JKCIOBase的内容
    打开Xcode,在 Source Control 里面 commit 选择同时提交到远程 JKCIOBase仓库


image.png

目录
相关文章
|
5月前
|
iOS开发
iOS使用.framework类型的静态库
iOS使用.framework类型的静态库
39 1
|
5月前
|
开发工具 iOS开发
iOS制作.framework静态库
iOS制作.framework静态库
47 1
|
5月前
|
iOS开发 Perl
iOS使用.a类型的静态库
iOS使用.a类型的静态库
39 1
|
5月前
|
开发工具 iOS开发
iOS制作.a类型的静态库
iOS制作.a类型的静态库
36 1
|
5月前
|
开发工具 iOS开发 Perl
iOS使用SDK静态库
iOS使用SDK静态库
51 0
|
5月前
|
XML JSON API
IOS网络编程:介绍一下 Alamofire 库。
IOS网络编程:介绍一下 Alamofire 库。
122 3
|
12月前
|
安全 物联网 API
iOS开源库总结
iOS开源库总结
42 0
|
前端开发 API Android开发
Android侧滑踩坑记(仿IOS侧滑finish页面基于Slidr库)
Android侧滑踩坑记(仿IOS侧滑finish页面基于Slidr库)
259 0
|
Web App开发 存储 网络协议
ios 组件化之Cocoapods私有库详解以及问题解决方案
ios 组件化之Cocoapods私有库详解以及问题解决方案
ios 组件化之Cocoapods私有库详解以及问题解决方案
|
开发工具 iOS开发 Perl
iOS开发 - undefined symbols for architecture x86_64,大多数都是缺少静态库,缺少静态库分下面几种
iOS开发 - undefined symbols for architecture x86_64,大多数都是缺少静态库,缺少静态库分下面几种
174 0
iOS开发 - undefined symbols for architecture x86_64,大多数都是缺少静态库,缺少静态库分下面几种