iOS组件化开篇(Cocoapods远程库和本地私有库制作)

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请Email我....... https://blog.csdn.net/Deft_MKJing/article/details/85229447

目录

Git基本操作

Cocoapods发布自己的框架

1.安装cocoapods

2.使用cocoapods

3.cocoapods发布自己的框架

Cocoapods本地私有库


前言

自己的工具库和框架以前都是直接在模块里面操作的,没有做成私有化或者cocoapods管理,有必要操作一番,就有了以下的笔记

1.git基本使用

2.cocoapods发布自己的库给银河系的大佬diss

3.pod本地私有库

Git基本操作

1.git init  初始化本地仓库

2.git add . 增加文件到暂缓区

3.git status 查看文件状态

4.git commit -m "xxx" 从暂缓区提交到本地仓库

5.git tag '0.0.1' 打标签

6.git tag 查看标签

7. git tag -d 0.0.1        然后 git push origin :0.0.1 删除标签

8.git remote add origin  仓库地址   管理远程仓库地址

9.git push -u origin master  推倒远程仓库,以后默认git push即可

10.git pull origin master  或者第一次用 git pull --rebase origin master  从远程仓库拉

1.github创建远程仓库如下

按照上面选择之后会默认创建仓库如下

2.本地Xcode创建一个新的工程

就放在桌面新建一个新的工程,然后cd到目录操作如下

以上步骤已经把change提交到暂缓区了

以上步骤push之前需要需要手动remote关联刚才创建的远程仓库。由于之前没有push过,而且仓库已经存在,也有相关的文件,所以需要先pull下来,不然会报错,而且要记得加上--rebase

最后push到仓库,然后打上tag即可

刷新远程仓库如下

这里下面的代码就是我们本地仓库推上来的,如果我们要制作库用pod install安装,就是release里面的代码了。

根据最上面的介绍,也可以自己删除tag标签,注意tag标签只是一个记录,上传标签只是上传了这条记录,并不是上传代码

git tag -d 0.0.1        然后 git push origin :0.0.1 删除标签

Cocoapods发布自己的框架

1.安装cocoapods

安装

2.使用cocoapods

2.1.pod search 关键字, 搜素自己需要安装的库,这里的搜索是根据最近一次本地仓库更新的文件进行查找,如果没有找到指定版本或者库,可以执行 pod repo update来更新本地仓库,或者删除本地检索文件,重新从远程拉

rm ~/Library/Caches/CocoaPods/search_index.json

2.2.安装所需框架

执行pod init创建Podfile文件,一般都是工程一级目录下面

platform :ios, '9.0'

target 'test' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  pod 'AFNetworking'

  target 'testTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

这里的use_frameworks目的是让库按那种形式,默认是静态库的方式打进包里面,打开的话就是framework动态链接的形式存在,

2.3:这里安装的AF

执行
pod install

安装完成,打开即可使用

pod install和 pod update区别?
pod install第一次会根据Podfile文件安装,有了Podfile.lock文件后会根据.lock文件安装。
pod update是根据Podfile文件进行安装第三方框架。
团队开发中一般都是使用pod install,除非大家一起使用pod update升级本地库。

3.cocoapods发布自己的框架

上面的都是铺垫,基本上都会,下面介绍下如何发布自己写好工具到Cocoapods

1.根据上面git的使用创建第一个项目,并且关联到github,然后自己创建一个简单的类作为工具库发布用,MKJTool目录如下

2.podspec的创建

pod spec create MKJTool

用Xcode打开,这里用我这个简洁版本的即可,网上那些太乱了

Pod::Spec.new do |s|
s.name         = 'MKJTool'
s.version      = '0.0.2'
s.summary      = 'MKJTool'
s.homepage     = 'https://github.com/DeftMKJ/balabala'
s.license      = 'MIT'
s.authors      = {'Mikejing' => '[email protected]'}
s.platform     = :ios, '6.0'
s.source       = {:git => 'https://github.com/DeftMKJ/balabala.git', :tag => s.version}
s.source_files = 'MKJTool/**/*.{h,m}'
s.requires_arc = true
end

这里介绍下我这几个的,网上介绍的太多太杂,用这一坨发布基本的足够了

  • s.name:名称,pod search搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
  • s.version:版本号,to_s:返回一个字符串  就是我们项目中刚才打的tag
  • s.author:作者
  • s.homepage:项目主页地址
  • s.summary: 项目简介
  • s.source:项目源码所在地址
  • s.license:许可证
  • s.platform:项目支持平台
  • s.requires_arc: 是否支持ARC
  • s.source_files:需要包含的源文件  这里最好放在spec的同级目录,然后指定目录下所有h和m文件
  • s.public_header_files:需要包含的头文件
  • s.ios.deployment_target:支持的pod最低版本

其他一些非必要字段

  • s.social_media_url:社交网址
  • s.resources:资源文件
  • s.dependency:依赖库,不能依赖未发布的库

3.打上0.0.2tag提交

mikejingdeMacBook-Pro:BlogLibTest MKJ$ git add .
mikejingdeMacBook-Pro:BlogLibTest MKJ$ git commit -m "publish"
mikejingdeMacBook-Pro:BlogLibTest MKJ$ git push -u origin master
mikejingdeMacBook-Pro:BlogLibTest MKJ$ git tag '0.0.2'
mikejingdeMacBook-Pro:BlogLibTest MKJ$ git tag
0.0.1
0.0.2
mikejingdeMacBook-Pro:BlogLibTest MKJ$ git push --tags
Enter passphrase for key '/Users/MKJ/.ssh/id_rsa': 
Total 0 (delta 0), reused 0 (delta 0)
To github.com:DeftMKJ/balabala.git
 * [new tag]         0.0.2 -> 0.0.2

4.注册Cocoapods发布权限

首先执行

pod trunk me

如果看自己的注册信息和框架,那么已经注册过了,没有的话就要执行

pod trunk register [email protected] 'password' --verbose

之后这个邮箱会收到一个邮件,验证即可,虽有在执行pod trunk me查询即可

有权限之后看下我们编写的spec时候可以正常发布,一般情况下写错了就不能发布了,所以预先看下是否合格

pod spec lint MKJTool.podspec  --verbose

之后会执行一坨东西,如果最后看到以下输出说明OK了,不然你就跟着error改就好

5.发布

pod trunk push MKJTool.podspec 

 

6.测试自己的cocoapods

pod search MKJTool

这个时候一般是搜索不到的,因为发布到网上,本地没更新,我们可以如下操作删除本地json文件

mikejingdeMacBook-Pro:BlogLibTest MKJ$ rm ~/Library/Caches/CocoaPods/search_index.json
mikejingdeMacBook-Pro:BlogLibTest MKJ$ pod search MKJTool

几分钟左右就可以看到了

7.以上发布的主要命令

git tag "0.0.1"

git push --tags

pod trunk register [email protected] 'password' --verbose

pod trunk me

pod spec create MKJTool //编辑 MKJTool.podspec

pod spec lint MKJTool.podspec

pod trunk push MKJTool.podspec

rm ~/Library/Caches/CocoaPods/search_index.json

pod search MKJTool

8.新建个项目使用pod install 安装刚才发布的库

Podfile如下

#Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'T1' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  pod 'MKJTool'

  target 'T1Tests' do
    inherit! :search_paths
    # Pods for testing
  end

end

pod install安装成功使用如下

Cocoapods本地私有库

本地仓库无非就是存储在本地,本地作为服务器,让其他项目一起使用这个工具

1.新建工程,目录还是一样

2.创建上面目录的podspec

这里由于和上面发布到网上不同,这个是本地库,会有一些区别

Pod::Spec.new do |s|
s.name         = 'LibTool'
s.version      = '0.0.1'
s.summary      = 'Tool'
s.homepage     = 'https://github.com/DeftMKJ/TestLibMKJ'
s.license      = 'MIT'
s.authors      = {'Mikejing' => '[email protected]'}
s.platform     = :ios, '6.0'
s.source       = {:git => '', :tag => s.version}
s.source_files = 'LibTool/**/*.{h,m}'
s.requires_arc = true
end

source里面git不需要写了,其他还是根据具体信息名称填写

随后创建Podfile文件

platform :ios, '9.0'

target 'Test' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for Test
  pod 'LibTool', :path=> '../'
  pod 'AFNetworking'

  target 'TestTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

这里有两个例子,一个是本地的一个是AF,本地的后面跟的是podspec的目录,这样cocoapods就会根据本地路径查找工具安装,会在对应的path下面查找LibTool.podspec文件进行安装

装了本地库,项目的结构会变成这样多了一个Development Pods

OK,私有库和远程发布Demo就非常简单的完成了

开了个篇,未完待续。。。。。。

参考文章

组件化文章一

发布文章

发布到Cocoapods

猜你喜欢

转载自blog.csdn.net/Deft_MKJing/article/details/85229447