入门
我们将使用pod lib create
引导过程来创建整个pod 。那么让我们从初始命令开始:
pod lib create MyLibrary
注意:要使用您自己的pod-template,您可以添加参数
--template-url=URL
,其中URL是包含兼容模板的git repo。
第二个注意:您可以按return键选择默认(带下划线)选项。
Objective-C或Swift
你问的第一个问题是你想要构建一个pod的语言。对于这两个选择,CocoaPods会将你的库设置为一个框架。
制作演示应用程序
该模板将为您的库生成一个Xcode项目。这意味着您无需在Xcode中创建新项目。
如果您想要一个示例项目pod try MyLib
或需要让您的库的测试在应用程序内运行(交互测试,自定义字体等),那么您应该说是。一个好的指标是 这个Pod应该包含截图吗? ,如果是的话,你应该有一个演示。
选择测试框架
你应该测试你的库。测试可确保使用您库的人员的稳定性。在开源库中,这意味着人们可以在知道他们没有打破隐含期望的情况下进行更改。我们建议使用测试框架,而不是依赖Apple的XCTest,但包括在内。在Objective-C中,我们选择了两个流行的测试框架; Specta / Expecta和Kiwi。如果您无法决定,请使用Specta / Expecta。
Specta / Expecta
Objective-C&Cocoa的轻量级TDD / BDD框架。
Kiwi
Kiwi是一个用于iOS开发的行为驱动开发库。目标是提供一个易于设置和使用的BDD库。
主要区别在于Kiwi是Stubs / Mocks / Expectations的一体化方法,而Specta / Expecta是通过不同Podspecs的模块化方法。我们为您的测试框架提供了所有必要的包含和设置,MyLib-Tests.pch
以便您不必将它们包含在每个文件中。
在Swift中,我们只提供Quick / Nimble的选择,因为它看起来是主要的测试库。
基于视图的测试
根据您所构建的内容库,你可能会发现快照基于测试是验证结果的聪明的方式在你的角度不同的 动作 。我们建议使用FBSnapShotTestCase,如果您使用的是Specta / Expecta,那么我们会包含一个Pod来改进语法。
Objective-C的前缀
要结束Objective-C项目,我们想知道您的类前缀。这意味着我们可以使CocoaPods生成的所有类都适合您的样式,所有从Xcode内部生成的类都将以您的前缀开头。我们知道Apple正在弃用前缀,但实际上它们仍然在Objective-C代码库中占有一席之地。
Pod Lib创建模板
随着问题的结束,我们运行pod install
新创建的项目。我们来看看结果:
$ tree MyLib -L 2
MyLib
├── .travis.yml
├── _Pods.xcproject
├── Example
│ ├── MyLib
│ ├── MyLib.xcodeproj
│ ├── MyLib.xcworkspace
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Pods
│ └── Tests
├── LICENSE
├── MyLib.podspec
├── Pod
│ ├── Assets
│ └── Classes
│ └── RemoveMe.[swift/m]
└── README.md
我们试图将根文件夹中的数量最小化,您将看到以下文件:
-
.travis.yml
- travis-ci的设置文件。 -
_Pods.xcproject
- 您的Pod迦太基支持项目的符号链接 -
LICENSE
- 默认为麻省理工学院许可证。 -
MyLib.podspec
- 您库的Podspec。 -
README.md
- 降价中的默认README。 -
RemoveMe.swift/m
- 单个文件以确保最初编译工作。
和以下文件夹:
-
Pod
- 这是您放置库的地方 -
Example
- 这是生成的演示和测试包
将您的库放在一起
CocoaPods将立即打开您的Xcode项目; 从那里你可以编辑CocoaPods生成的所有文件。让我们看一下Xcode的扩展版本:
- 您可以编辑Podspec元数据,这样您就可以更改README和Podspec。
- 这是演示库,如果你没有对它说“是”,你将会错过这个。
- 以下是您之前选择的框架的存根测试规范。
- 这是Development Pods部分,实际上您可以在库中工作。请参阅下面的详细信息。
- 最后,Pods用于设置项目。
这里值得一提的是,因为这会经常捕获人,所以Swift库需要声明它的类,public
以便在示例库中看到它们。
开发Pods
开发Pod与普通CocoaPods的不同之处在于它们是符号链接文件,因此对它们进行编辑将更改原始文件,因此您可以从Xcode内部处理您的库。您的演示和测试需要使用该#import <MyLib/XYZ.h>
格式包含对标头的引用。
[!] Note:
由于发展豆荚实现细节,当你添加新的/现有的文件Pod/Classes
或Pod/Assets
或更新podspec,你应该运行pod install
或pod update
。
添加Travis CI
该模板包含一个.travis.yml
文件,该文件将运行项目中包含的默认测试。如果您在GitHub上有一个开源仓库,请在Travis CI 上打开您的个人资料并打开该库。
部署您的库
所以你已经准备好了你的库。首先,您应该检查Podspec是否正确提示,因为您无法部署错误。这可以通过两种方法完成,pod lib lint
并且pod spec lint
。它们之间的区别在于pod lib lint
不访问网络,而是pod spec lint
检查外部仓库和相关标签。
如果您要将Open Source库部署到trunk,则不能发出CocoaPods警告。你可以有Xcode警告。您应该继续使用trunk指南开始向公众部署。
如果您要部署到私有Specs仓库,则需要添加该仓库。请参阅Private Specs Repos上的指南以进行设置。如果要部署到现有的私有仓库,请使用此命令进行部署:
pod repo push SPEC_REPO *.podspec --verbose
完成👍
原文:https://guides.cocoapods.org/making/using-pod-lib-create.html