美文网首页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