制作cocopod

制作cocopod

创建自己的CocoaPod非常简单。如果您已经有一个单独的组件,那么就已经准备就绪了。本指南是整个过程的概述,本节中的其他指南则是更高级用户的更深入的了解。

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

CocoaPod和通用开源库之间只有几个区别。除了实际来源外,最重要的是.podspec和LICENSE。没有代码许可证,我们不接受将库加入主干。有关选择哪种许可证的信息,建议您阅读有关CodingHorror或tl; dr Legal的本文。

<发展

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

或者,您可以使用以下:path选项在应用程序项目中工作:

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

<测试

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

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

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

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

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

然后跑

pod install-- or --pod update

另外,如果您有一个单独的Xcode项目用于单元测试,则可以为此项目使用一个Podfile,该Podfile引用您的开发podspec

xcodeproj'NAMETests'workspace'../NAME'pod'NAME',:path=>'../'

<发布

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

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

$ cd~/code/Pods/NAME$ edit NAME.podspec# set the new version to 0.0.1# set the new tag to 0.0.1$ pod lib lint$ git add -A&&git commit -m"Release 0.0.1."$ git tag'0.0.1'$ git push --tags

提交开源代码

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

pod trunk push NAME.podspec

将您的资料库发送到Specs仓库。有关获取此设置的更多信息,请参见使用Trunk获取设置。

提交私人密码

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

pod repo push [repo] NAME.podspec

将您的资料库发送到命名的专用规格存储库。有关获取此设置的更多信息,请参见Private CocoaPods。

<库版本控制

不幸的是,经常会有一个问题,即开发人员不能很好地解释版本号或无法为某些版本号赋予情感价值。

但是,对于库管理器来说,将任意版本作为版本不是一个合适的版本号不是一个好主意(请参阅语义版本控制)。让我们解释一下,在理想的世界中,我们希望人们如何与之交互:

“我想开始使用CocoaLumberjack,当前版本现在可以使用。” 因此,开发人员在没有版本要求的情况下添加了对lib的依赖,而pod installs将使用最新版本:

pod'CocoaLumberjack'

一段时间到未来,开发者想要更新的依赖关系,并为此运行重新安装命令,现在安装的是最新版本的lib的版本,在那个时候

在某个时候,开发人员完成了客户端工作(或更新版本的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使用RubyGems版本来指定pod规范版本。该RubyGems的版本管理策略描述用于解释版本号的规则。该RubyGems的版本说明符介绍如何正确地使用比较运算符指定依赖的版本。

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

Google播放了一段很棒的视频,介绍了它是如何工作的:“ CocoaPods和波浪形箭头的情况(85号公路)”。

<记录Pod

现在,获取有关记录Pod的信息的最佳位置是NSHipster在Obj-C和Swift文档上的博客文章。推送大约15分钟后,CocoaDocs将根据您Podspec的公共API发行一个appledoc / jazzy解析代码。可在CocoaDocs开发人员README上找到有关CocoaDocs的更多信息。

<我在哪里可以问问题?

我们有多种支持途径,按照我们喜欢的顺序排列。

堆栈溢出,获取一些互联网积分。这减轻了CocoaPods开发团队的压力,使我们有时间进行项目工作,而不是提供支持。使用Stack Overflow的优点之一是,其他人可以轻松获得答案。

CocoaPods邮件列表,该邮件列表主要用于相关项目的公告,并偶尔用于支持。

<<外部资源

为什么您的podspec失败了


 使用CocoaPods构建


制作可可豆

你可能感兴趣的:(制作cocopod)