iOS 制作一個pod私有庫

期望:用XXPrivateRepos作為一個私有倉庫,用來管理一些小的組件(或稱模塊)(如:XXUI

一 、 在github上添加一個私有倉庫(這里報紅是因為已經創建才截的圖)

  • 遠程創建一個私有倉庫
image.png
  • 本地創建私有倉庫
    先用cd ~/.cocoapods/repos查看cocoapods現有的倉庫
    image.png

現在我們再添加一個倉庫 XXPrivateRepos。

pod repo add XXPrivateRepos https://github.com/shine93/XXPrivateRepos.git

添加完畢后文件夾下就多了一個目錄。


image.png

二 、創建一個庫,打標簽

  1. 在github上創建一個私有庫XXUI作為一個小組件。

    image.png

  2. 終端cd到保存私有庫的目錄下, pod lib create XXUI

    image.png

  3. 回答制作庫的幾個問題

  • 答完之后自動打開了此project
    image.png
  • 本地目錄下多了相關的文件


    image.png
  • 用自己需要的文件替換掉這個ReplaceMe.swift文件,替換后工程目錄中添加的文件沒有立刻顯示出來,ReplaceMe.swift文件會報紅
    image.png
  • cd到Example文件夾下,pod install之后,工程目錄正常
    image.png
image.png
  • 修改XXUI.podspec文件。(這里依然沒有依賴任何別的庫,如果有,則需要添加s.dependency

    image.png

  • 提交代碼和遠程庫關聯起來,并打上標簽(標簽和XXUI.podspec文件里面的s.version保持一致)

    image.png

    image.png

    提交完代碼后可以看到庫的相關信息了。
    image.png

    打tag:
    image.png

    image.png

  • lint 代碼
    先本地lint


    image.png

    遇到問題,但并沒有錯誤log打印

[!] XXUI did not pass validation, due to 1 warning (but you can use --allow-warnings to ignore it).
You can use the --no-clean option to inspect any issue.
解決:
pod lib lint --allow-warnings

再遠程lint
pod spec lint --allow-warnings

三 、推送要加入的庫.podspec到git私有倉庫中

  • 推送XXUI.podspecXXPrivateRepos倉庫中: pod repo push XXPrivateRepos XXUI.podspec
  • 開始我的倉庫是空的,推送時出現了以下錯誤
    image.png

    解決:在XXPrivateRepos創建了一個README.md文件
    image.png
  • 再次推送pod repo push XXPrivateRepos XXUI.podspec成功
    image.png

    本地文件夾多了這個庫相關的文件:
    image.png

    遠程倉庫:
    image.png
  • pod search XXUI
    image.png

四 、創建一個demo,pod使用這個私有倉庫

  • 創建一個XXTestPrivateRepo demo
  • 創建Podfile文件
    image.png

    不加那個souce:
    image.png

加上source后:


image.png
  • demo目錄


    image.png
  • 使用此Label


    image.png
import UIKit
import XXUI

class ViewController: UIViewController {

    @IBOutlet weak var nameLabel: InsetLabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        nameLabel.layer.cornerRadius = 5
        nameLabel.layer.masksToBounds = true
        nameLabel.textInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10)
    }
}

  • 效果:


    image.png

參考:
我的制作庫系列之: iOS制作一個pod公開庫文檔
我的制作庫系列之: iOS 制作本地庫Development Pods
cocoapods制作庫的文檔
cocoapods制作Private Pods文檔
cocoapods制作公開Pods文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容