美文网首页iOS开发那些事
iOS开发-- 创建pod私有库

iOS开发-- 创建pod私有库

作者: balabalabala | 来源:发表于2017-04-26 10:27 被阅读182次

开个篇

作为一个iOS开发者对于Cocoapods都不陌生,在这里简单介绍一下Cocoapods。

Cocoapods一个非常好用的三方管理工具,使用一个名为Podfile的文本文件管理项目中引用到的三方库,解析库之间的依赖关系,获取源代码,然后在Xcode工作区中将其链接在一起构建项目。如果想深入了解Cocoapods点击传送门

根据上面的介绍我们知道Cocoapods作为iOS开发的三方管理器非常便利,那么我们怎么创建一个属于自己的工具类,怎么让它也支持pod集成进而让自己在其他项目中也可以便利的使用尼?

最近项目不太忙,自己尝试了一下在这跟大家分享一下也是记录一下自己的尝试过程,备忘。。。

创建过程

1.创建私有Spec Repo

Spec Repo 是所有的Pods的一个索引,是所有公开的Pods 的podspec 文件的一个仓库,其实就是一个部署在服务器的Git仓库,当你使用CocoaPods 后它会被Clone到本地的 ~/.cocoapods/repos 目录下。

1.在coding.net创建一个MySpecs的项目

2.添加你的私有Repo到你的CocoaPods

$pod repo add MySpecs https://git.coding.net/***/MySpecs.git

成功后会在~/.cocoapods/repos目录下就能看到MySpecs了,至此,第一步创建私有

Spec Repo就完成了。

2.创建Pod项目

1.在coding.net创建一个MyLib的项目

2.使用Cocopods提供的Using Pod Lib Create创建一个项目

cd到你要创建项目的文件夹下运行命令

$pod lib create MyLib

接着终端会向你提出几个问题根据自己的需求回答即可

成功后会在目录中创建好一个MyLib工程。

3.添加实现代码

在MyLib的Classes文件夹下添加自己想要存放的代码

4.开发模式下测试pod库的代码

打开MyLib项目中的Example文件夹编辑Podfile文件:

pod 'MyLib', :path => '../' # 指定路径

#pod 'MyLib', :podspec => '../MyLib.podspec'  # 指定podspec文件

5.提交Pod库到MyLib仓库

cd进入MyLib项目根目录然后,执行以下命令:

$ git add .

$ git commit -s -m "初始化MyLib 库"

$ git remote add origin git@git.coding.net:***/MyLib.git          #添加远端仓库

$ git push origin master    #提交到远端仓库

$ git tag -m "first release" "0.1.0" #打上标签,这个很重要

$ git push --tags    #推送tag到远端仓库

推送成功后Pod项目构建完成

同学们注意划重点了啊!(敲黑板)

3.最重要的一步构建podspec文件并提交到私有Spec Repo仓库

1.配置MyLibPod库的pod spec 文件

#

# Be sure to run `pod lib lint YunUeLib.podspec' to ensure this is a

# valid spec before submitting.

#

# Any lines starting with a # are optional, but their use is encouraged

# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html

#

Pod::Spec.new do |s|

#名称

s.name            = 'MyLib'

#版本号

s.version          = '1.0.0'

#简介

s.summary          = '个人私有库.'

# This description is used to generate tags and improve search results.

#  * Think: What does it do? Why did you write it? What is the focus?

#  * Try to keep it short, snappy and to the point.

#  * Write the description between the DESC delimiters below.

#  * Finally, don't worry about the indent, CocoaPods strips it!

s.description      = <<-DESC

TODO: Add long description of the pod here.

DESC

#主页,这里要填写可以访问到的地址,不然验证不通过

s.homepage        = 'https://coding.net/u/***/p/MyLib/git'

# s.screenshots    = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'

#开源协议

s.license          = { :type => 'MIT', :file => 'LICENSE' }

#作者

s.author          = { 'mr_six666' => 'a15042004750@sina.com' }

#项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS。

s.source          = { :git => 'https://git.coding.net/***/MyLib.git', :tag => '1.0.0' }

# s.social_media_url = 'https://weibo.com/Mr_Six666666'

#支持的平台及版本

s.ios.deployment_target = '8.0'

#代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则

s.source_files = 'YunUeLib/Classes/**/*'

#资源文件地址

# s.resource_bundles = {

#  'YunUeLib' => ['MyLib/Assets/*.png']

# }

#公开头文件地址

# s.public_header_files = 'Pod/Classes/**/*.h'

#所需的framework,多个用逗号隔开

# s.frameworks = 'UIKit', 'MapKit'

#依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency

# s.dependency 'AFNetworking', '~> 2.3'

end

更多配置请参考:官方文档

2.编辑完文件后,验证一下这个文件是否可用

cd到MyLib项目根目录,运行命令:

$ pod lib lint

当你看到终端输出:

-> MyLib (0.1.0)

MyLib passed validation.

表示验证通过,是一个符合CocoaPods规则的配置文件。

3.本地测试MyLib.podspec

打开MyLib项目中的Example文件夹编辑Podfile文件:

#pod 'MyLib', :path => '../' # 指定路径

pod 'MyLib', :podspec => '../MyLib.podspec'  # 指定podspec文件

cd到Example工程目录下运行命令:

pod update

打开Example项目工程,现在可以看到库文件都被加载到Pods子项目中了。

4.向Spec Repo提交pod spec

测试库文件没有问题我们就把MyLib.podspec提交到远程Spec Repo仓库中,就是本文开头说的MySpecs仓库

cd到MyLib项目根目录,运行命令

$ pod repo push MySpecs MyLib.podspec

提交成功后,这个组件库就添加到我们的私有Spec Repo中了,可以进入到~/.cocoapods/repos/MySpecs目录下查看。在远端仓库MySpecs仓库中也有了一次提交。

至此,我们的私有库已经构建完成,使用pod search命令就可以查到我们自己的库了.

运行命令 pod search MyLib

-> MyLib (0.1.0)

这个是我的私有库项目Demo.

pod 'MyLib', '~> 0.1.0'

- Homepage: *****

- Source: *******

- Versions: 0.1.0 [MySpecs repo]

四、使用制作好的Pod

在正式项目的Podfile 里添加

pod "MyLib", :git => 'https://git.coding.net/Reborn96/YunUeLib.git'

然后执行命令

pod update

然后打开项目可以看到,我们自己的库文件已经出现在Pods子项目中的Pods子目录下了。

相关文章

网友评论

  • 89459e326014:碰到了问题,作者亲自找到我的工位为我答疑,就没见过这么负责的作者。
  • 独乐乐:大佬 认识一下好吗

本文标题:iOS开发-- 创建pod私有库

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