使用Pod Lib創(chuàng)建

入門

我們將通過使用 pod lib create 來創(chuàng)建一個完整的 pod 來引導(dǎo)過程。 所以讓我們從最初的命令開始:

pod lib create MyLibrary

注意:要使用您自己的pod-template,您可以添加參數(shù)--template-url = URL,其中URL是包含兼容模板的git repo。
第二個注意:您可以按回車鍵選擇默認(rèn)(帶下劃線)選項。

Objective-C 或者 Swift

你被問到的第一個問題是你想要創(chuàng)建一個 pod 的語言。對于這兩種選擇,CocoaPods都會將你的庫設(shè)置為一個框架。

制作演示應(yīng)用程序

該模板將為您的庫生成一個Xcode項目。 這意味著您不必在Xcode中創(chuàng)建新項目。

如果你想為 pod 嘗試一個 MyLib 的示例項目,或者需要讓你的庫的測試在應(yīng)用程序中運行(交互測試,自定義字體等), 一個很好的指標(biāo), 是這個 Pod 應(yīng)該包含屏幕截圖; 如果是這樣,那么你應(yīng)該有一個演示。

選擇測試框架

你應(yīng)該測試你的 Library .測試可以確保當(dāng)你的 Library 被人使用時的穩(wěn)定性. 在開放源代碼庫中,這意味著人們可以在知道自己沒有違背隱含期望的情況下進(jìn)行更改. 我們推薦使用測試框架,而不是緊緊依賴Apple的XCTest.在Objective-C中,我們包含兩種流行測試框架的選擇; Specta / Expecta和Kiwi . 如果您不能決定,請使用Specta / Expecta.

  • Specta/Expecta : Objective-C和Cocoa的輕量級TDD / BDD框架。GitHub repo
  • Kiwi : Kiwi是iOS開發(fā)的行為驅(qū)動開發(fā)庫。 目標(biāo)是提供一個安裝和使用起來非常簡單的BDD庫。GitHub repo

主要區(qū)別在于Kiwi是一種對存 Stubs/Mocks/Expectations 的一體化方法,而Specta / Expecta是通過不同Podspecs的模塊化方法。 我們在MyLib-Tests.pch中包含了所有必要的包含和設(shè)置,以便您不必將它們包含在每個文件中。

在Swift中,我們只提供Quick / Nimble選項,因為這看起來是主要的測試庫。

基于視圖的測試

根據(jù)您建立的庫,您可能會發(fā)現(xiàn)基于快照的測試是驗證視圖上不同操作結(jié)果的智能方法。 我們建議使用FBSnapShotTestCase,如果您使用的是Specta / Expecta,那么我們會包含一個Pod來改進(jìn)語法。

Objective-C的前綴

為了包裝一個Objective-C項目,我們想知道你的類的前綴。 這意味著我們可以讓所有由CocoaPods生成的類都適合您的樣式,并且從Xcode內(nèi)部生成的所有類都將以您的前綴開頭。 我們知道Apple不贊成使用前綴,但實際上它們在Objective-C代碼庫中仍然占有一席之地。

Pod Lib創(chuàng)建模板

隨著問題的結(jié)束,我們在新創(chuàng)建的Project上運行pod安裝。 讓我們看看結(jié)果:

$ 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

我們已盡量減少根文件夾中的數(shù)量,您將看到以下文件:

  • .travis.yml - a setup file for travis-ci.
  • _Pods.xcproject - a symlink to your Pod's project for Carthage support
  • LICENSE - defaulting to the MIT License.
  • MyLib.podspec - the Podspec for your Library.
  • README.md - a default README in markdown.
  • RemoveMe.swift/m - a single file to to ensure compilation works initially.

和以下文件夾:

  • Pod - 這是你放置你的 Library 的類的地方
  • Example - 這是生成的Demo&Testing包

把 Library 放在一起

CocoaPods會馬上打開你的Xcode項目; 從那里你可以編輯由CocoaPods生成的所有文件。 我們來看看Xcode的擴(kuò)展版本:

image.png
  • 您可以編輯您的Podspec元數(shù)據(jù),這可以讓您更改自述文件和Podspec。
  • 這是演示庫,如果你沒有對它作出肯定的回答,你會錯過這個。
  • 這是您之前選擇的框架的一個殘缺測試規(guī)范。
  • 這是 Development Pods 部分,實際上您可以在 Library 工作。 請參閱下面的詳細(xì)信息。
  • 最后在設(shè)置項目時使用Pods。

在這里值得一提的是,因為這經(jīng)常吸引人們,所以Swift庫需要將它的類聲明為public,以便在示例庫中看到它們。

Development Pods

Development Pod與普通的CocoaPods不同,它們是符號鏈接的文件,所以編輯它們會改變原始文件,所以你可以在Xcode中使用你的庫。 您的演示和測試需要使用#import <MyLib / XYZ.h>格式包含對標(biāo)題的引用。

注意:由于Development Pod的實現(xiàn)細(xì)節(jié),當(dāng)您將新的/現(xiàn)有的文件添加到Pod / Classes或Pod / Assets或更新您的podspec時,應(yīng)該運行pod install或pod update。

添加Travis CI

該模板包含一個.travis.yml文件,該文件將運行項目中包含的默認(rèn)測試。 如果你在GitHub上有一個開源的 repo,打開Travis CI上的個人資料并開啟庫。

部署 Library

所以你已經(jīng)準(zhǔn)備好了 Library。 首先,您應(yīng)該檢查 Podspec 是否正確刪除,因為您無法部署錯誤。 這可以用兩種方法完成,即 pod lib lint 和 pod spec lint。 它們之間的區(qū)別在于 pod lib lint 不訪問網(wǎng)絡(luò),而 pod spec lint 檢查外部回購和相關(guān)標(biāo)簽。

如果您將開源庫部署到 trunk,則不能有 CocoaPods 警告。 盡管你可以有 Xcode 警告。 您應(yīng)該繼續(xù)使用 trunk guide
開始部署給公眾。

如果您正在部署到私人Specs repo,您需要添加 repo。 查看 Private Specs Repos 的指南來設(shè)置。 如果要部署到現(xiàn)有的Private Repo,請使用以下命令來部署:

pod repo push SPEC_REPO *.podspec --verbose
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容