自己做自己的 CocoaPods 寫到一定程度之後,總會有幾個自己愛用語熟悉的 Lib,那就自己做一下屬於自己的 pod 套件吧! 新增 以下會用 OAPodTest 當作套件名稱範例,各位要做自己的套件請用自己的名稱捏! 由於 pod 套件可與 GitHub 綁定,讓他自動去抓上面的原始碼,所以請先開一個 GitHub repository! 這是我自己的 GitH…

自己做自己的 CocoaPods

寫到一定程度之後,總會有幾個自己愛用語熟悉的 Lib,那就自己做一下屬於自己的 pod 套件吧!

新增

以下會用 OAPodTest 當作套件名稱範例,各位要做自己的套件請用自己的名稱捏! 由於 pod 套件可與 GitHub 綁定,讓他自動去抓上面的原始碼,所以請先開一個 GitHub repository!

這是我自己的 GitHun Repository:https://github.com/oawu/OAPodTest

  • 先把 GitHub 上的專案 Clone 下來
  • 進入專案,然後執行指令 pod lib create OAPodTest,Pod 會自動去 https://github.com/CocoaPods/pod-template.git 複製一份 .podspec 樣式下來

依據步驟回答即可

  • What platform do you want to use?? [ iOS / macOS ]
    此 lib 是給哪種系統平台用?
    ➜ iOS
  • What language do you want to use?? [ Swift / ObjC ]
    此 lib 是主要哪種語言?
    ➜ Swift
  • Would you like to include a demo application with your library? [ Yes / No ]
    此 lib 裡面要不要給予 Demo 範例
    ➜ Yes
  • Which testing frameworks will you use? [ Quick / None ]
    測試框架,不知道用在哪XD
    ➜ None
  • Would you like to do view based testing? [ Yes / No ]
    不知道XD
    ➜ No

編輯與設定

  • 編輯 OAPodTest.podspec
  • 通常需要以下幾個項目:
    • s.name 名稱
    • s.version 版本
    • s.summary 簡述
    • s.description 描述
    • s.homepage GitHub 網址
    • s.license 授權
    • s.author 擁有者
    • s.source 原始碼
    • s.social_media_url 介紹的網頁
    • s.ios.deployment_target 版本限制
    • s.source_files 原始碼位置
    • s.frameworks 使用哪些框架

通常要該改的有 name、version、summary、description、social_media_url、ios.deployment_target、frameworks

撰寫範例

  • 打開 Example/OAPodTest.xcworkspace

    • 目錄 Example for OAPodTest 是提供範例的地方
    • 目錄 Pods/Development Pods/OAPodTest/ 下為 lib 的地方,ReplaceMe.swift 就是要你把 lib 放在這邊的意思,您可以自己更換名稱或新增其他檔案
  • ReplaceMe.swift 內容範例

public func testFunc(_ a: Int) -> String {
    return String.init(format: "Int: %d", a)
}
  • 編輯 Example for OAPodTest/ViewController.swift 在上面加入 import OAPodTest 即可使用 testFunc

部署

  • 首次部署記得檢查此 Git 有無設定 github 的 origin,沒有的話可以執行指令 git remote add origin https://github.com/oawu/OAPodTest.git 設定
  • 設定版號,修改 OAPodTest.podspec 內的 version,改為 0.0.1(此版本號碼您可自己設定)
  • 先做 git push 以及 tag 的 push
    • 全部加入並且丟到 origin,執行指令:git add -A && git ci -m 'Fix .podspec' && git ps master
    • 新增一個 Tag 名稱為 0.0.1,並且將 tag 也丟到 origin,執行指令:git tag 0.0.1 && git push --tags
  • 更新至 pod
    • 檢查 Github 頁面有無 0.0.1 的 tag
    • 丟上去,這邊會有點久,執行指令:pod trunk push OAPodTest.podspec
    • 如果有警告的情況,要忽略警告可以加上 --allow-warnings 參數,指令:pod trunk push OAPodTest.podspec --allow-warnings,通常你如果 .podspec 內容沒修改敘述之類的,他會警告你
    • 成功的話 理論上 https://cocoapods.org/pods/OAPodTest 可以直接有網頁看得到,或者可以用指令 pod trunk info OAPodTest 檢查是否有存在以及其線上相關版號資訊

成功資訊

取用

  • 測試有無存在,執行指令:pod trunk info OAPodTest
  • 開新的 ios Swift 專案名稱為 Test,並且做 pod init
  • 編輯 Podfile,加入 pod 'OAPodTest' 然後儲存
  • 執行安裝 pod 執行指令:pod install,然後執行 Test.xcworkspace
    • 可以檢查目錄 Pods/Pods/ 內應該可以看到 OAPodTest 目錄
    • 可以在 Test7/Test7/ViewController.swift 內寫個測試,檔案開頭加入 import OAPodTest 就可使用 testFunc

刪除

  • 執行指令:pod trunk delete OAPodTest 0.0.1,然後輸入 yes 即可
  • 刪除完後,可在用 pod trunk info OAPodTest 檢查資訊

相關參考

用 GitHub 架設 Blog - OA Wu's Blog
用 GitHub 架設 Blog
用 GitHub 架設 Blog 使用 GitHub 架設個人 Blog 不僅可以節省伺服器空間,同時也可以使用 Markdown 語法做文章管理,坊間也有很多類似的工具 octopress、pelican,但是最後決定自己做一套使用 PHP、以及 command line 建置出個人的部落格! 看到這標題我想板上很多大大們可能會覺的市面上已經很多資源了,沒想到還有人自…
CatMap - OA Wu's Blog
CatMap
CatMap 此作是我第一個比較完整的 iOS 的 App,主要利用基本的 iOS 元件製作照相上傳、分享、地圖功能,以下是我一些學習的筆記與心得! App 沒什麼主要方向,這就只是個到處模仿的小作品,一開始利用了 TableView,再經由客製化的 TableViewCell 去做出類似 Instagram、Facebook 的動態訊息頁,然後再利用 ImagePickerCon…
OAHUD - OA Wu's Blog
OAHUD
OAHUD 因為看到很多 GitHub 上的專案都寫 HUD,這幾天再研究一種東西,一開始我還不知道怎去下關鍵字 Google,不過找著找著 漸漸有方向了!所以就找了一些範例,以及 Google 找資料亂寫亂測,然後有了一點點心得,就來分享一下,如果有觀念不正確請各位指教! 簡略講解一下,首先我看了 MBProgressHUD 的做法,其中的 show…
雙北市行政區域範圍座標 - OA Wu's Blog
雙北市行政區域範圍座標
雙北市行政區域範圍座標 雙北市行政區域範圍座標,藉由大家一起來維護劃分出雙北市甚至於全台灣的行政區域、鄉鎮區域的範圍座標。 會實作出此專案主要目的是為了取得雙北市行政區域範圍座標,但因為 Google Maps JavaScript API 找不到可以取得行政區的範圍座標,故才自己畫完雙北市的範圍座標,並且藉此分享出來給大家使…
吳政賢個人簡歷OA WuLiveCoding.tw
OA Wu's Blog
開發心得
自己做自己的 CocoaPods