使用 pod lib create 创建库

入门

我们将使用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框架。

GitHub仓库

Kiwi

Kiwi是一个用于iOS开发的行为驱动开发库。目标是提供一个易于设置和使用的BDD库。

GitHub仓库

主要区别在于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的扩展版本:

  1. 您可以编辑Podspec元数据,这样您就可以更改README和Podspec。
  2. 这是演示库,如果你没有对它说“是”,你将会错过这个。
  3. 以下是您之前选择的框架的存根测试规范。
  4. 这是Development Pods部分,实际上您可以在库中工作。请参阅下面的详细信息。
  5. 最后,Pods用于设置项目。

这里值得一提的是,因为这会经常捕获人,所以Swift库需要声明它的类,public以便在示例库中看到它们。

开发Pods

开发Pod与普通CocoaPods的不同之处在于它们是符号链接文件,因此对它们进行编辑将更改原始文件,因此您可以从Xcode内部处理您的库。您的演示和测试需要使用该#import <MyLib/XYZ.h>格式包含对标头的引用。

[!] Note:由于发展豆荚实现细节,当你添加新的/现有的文件Pod/ClassesPod/Assets或更新podspec,你应该运行pod installpod update

添加Travis CI

该模板包含一个.travis.yml文件,该文件将运行项目中包含的默认测试。如果您在GitHub上有一个开源仓库,在Travis CI 上打开您的个人资料并打开该库。

/assets/images/pod_lib_create/travis-ci.png

部署您的库

所以你已经准备好了你的库。首先,您应该检查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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343