zoukankan      html  css  js  c++  java
  • [CocoaPods]制作CocoaPod

    创建自己的CocoaPod非常简单。如果你已经有一个单独的组件,那么你就是最重要的。本指南概述了整个过程,本节中的其他指南更适合更高级用户。

    我们建议让CocoaPods在这里努力工作。Running pod lib create [pod name]将为您设置一个经过深思熟虑的库结构,使您可以轻松地包含文件并快速入门,我们为此提供了指南如果您想了解整个过程的最新演练,请继续推进到主干,请查看tutsplus的第三方教程

    Pod文件

    CocoaPod和通用开源库之间只有一些区别。除了实际来源之外,最重要的是.podspecLICENSE没有代码许可,我们不接受库进入主干。有关选择哪种许可证的信息,我们建议您阅读有关CodingHorrortl; dr Legal的文章

    发展

    您可以从系统上的文件夹中处理库。

    或者,您可以使用以下:path选项从应用程序项目开始工作

    pod 'Name', :path => '~/code/Pods/'

    测试

    您可以通过将pod映射到其目录的文件来测试Podfile的语法,这不会测试linting的下载方面。

    1 $ cd ~/code/Pods/NAME
    2 $ pod lib lint

    在向全世界发布新Pod之前,最好测试一下您是否可以将您的pod成功安装到Xcode项目中。您可以通过以下几种方式执行此操作:

    将podspec推送到存储库,然后使用Podfile创建一个新的Xcode项目,并将您的pod添加到文件中,如下所示:

    pod 'NAME', :git => 'https://example.com/URL/to/repo/NAME.git'

    然后运行

    1 pod install
    2 -- or --
    3 pod update

    或者,如果您有单独的Xcode项目用于单元测试,则可以将Podfile用于此项目,该项目引用您的开发podspec

    1 xcodeproj 'NAMETests'
    2 workspace '../NAME'
    3 
    4 pod 'NAME', :path => '../'

    释放

    准备好发布后,您需要制作相应的标签。首先快速运行,pod lib lint然后创建标签并推送它。

    发布工作流程类似于以下内容。

    1 $ cd ~/code/Pods/NAME
    2 $ edit NAME.podspec
    3 # set the new version to 0.0.1
    4 # set the new tag to 0.0.1
    5 $ pod lib lint
    6 
    7 $ git add -A && git commit -m "Release 0.0.1."
    8 $ git tag '0.0.1'
    9 $ git push --tags

    提交开源代码

    推送标签后,您可以使用以下命令:

    pod trunk push NAME.podspec

    将您的库发送到Specs仓库。有关获取此设置的详细信息,请参阅使用中继进行设置

    提交私人密码

    推送标签后,您可以使用以下命令:

    pod repo push [repo] NAME.podspec

    将您的库发送到指定的私有规格仓库。有关获取此设置的详细信息,请参阅Private CocoaPods

    库版本控制

    遗憾的是,开发人员通常不会很好地解释版本号或为某些版本号分配情感价值。

    但是,作为版本的任意修订对于库管理器而言不是一个好主意,而不是正确的版本号(请参阅语义版本控制)。让我们解释一下,在理想世界中,我们更喜欢人们与之互动:

    • “我想开始使用CocoaLumberjack,现在的版本将很好。”因此,开发人员在没有版本要求的情况下添加了对lib的依赖,并且pod install将使用最新版本:
    1  pod 'CocoaLumberjack'
    • 一段时间到未来,开发者想要更新的依赖关系,并为此再次运行安装命令,现在安装的是最新版本的lib的版本,在那个时候

    • 在某些时候,dev在客户端工作上完成(或者更新版本的lib更改API并且不需要更改),因此开发人员向依赖项添加了版本要求。例如,考虑到lib的作者遵循semver指南,您可以在某种程度上相信在“1.0.7”和“1.1.0”之间不会进行API更改,而只会修复错误。因此,开发人员可以指定允许任何 “1.0.x” ,而不是要求特定版本,只要它高于“1.0.7”:

    pod 'CocoaLumberjack', '~> 1.0.7'

    关键是开发人员可以通过简单地pod install再次运行来轻松跟踪新版本的依赖项,如果他们必须手动更改所有内容,他们可能会做得更少。CocoaPods使用不太严格的语义版本形式,因为它不会强迫您使用X.Y.Z,您可以使用X.Y版本。

    CocoaPods版本细节

    CocoaPods使用RubyGems版本来指定pod规范版本。RubyGems的版本管理策略描述用于解释版本号的规则。RubyGems的版本说明符介绍如何正确地使用比较运算符指定依赖的版本。

    遵循RubyGems中建立的模式,也可以在CocoaPods中指定预发布版本。例如,可以通过指定版本1.2的预发行版1.2-beta3在此示例中,依赖项说明符~> 1.2-beta将匹配1.2-beta3

    谷歌有一个关于它是如何工作的精彩视频:“CocoaPods和Squiggly Arrow的案例(Route 85)”

  • 相关阅读:
    Logstash中如何处理到ElasticSearch的数据映射
    Filebeat+Logstash+ElasticSearch+Kibana搭建Apache访问日志解析平台
    Log stash学习笔记(一)
    Plupload设置自定义参数
    优先队列的基本算法(使用二叉堆构建优先队列)
    用OC基于数组实现循环队列
    循环队列的基本算法
    用OC基于链表实现链队列
    链队列的基本算法
    用OC实现一个栈:结合单链表创建动态栈
  • 原文地址:https://www.cnblogs.com/strengthen/p/10639115.html
Copyright © 2011-2022 走看看