iOS 制作一個(gè)pod私有庫

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

一 、 在github上添加一個(gè)私有倉庫(這里報(bào)紅是因?yàn)橐呀?jīng)創(chuàng)建才截的圖)

  • 遠(yuǎn)程創(chuàng)建一個(gè)私有倉庫
image.png
  • 本地創(chuàng)建私有倉庫
    先用cd ~/.cocoapods/repos查看cocoapods現(xiàn)有的倉庫
    image.png

現(xiàn)在我們?cè)偬砑右粋€(gè)倉庫 XXPrivateRepos

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

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


image.png

二 、創(chuàng)建一個(gè)庫,打標(biāo)簽

  1. 在github上創(chuàng)建一個(gè)私有庫XXUI作為一個(gè)小組件。

    image.png

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

    image.png

  3. 回答制作庫的幾個(gè)問題

  • 答完之后自動(dòng)打開了此project
    image.png
  • 本地目錄下多了相關(guān)的文件


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

    image.png

  • 提交代碼和遠(yuǎn)程庫關(guān)聯(lián)起來,并打上標(biāo)簽(標(biāo)簽和XXUI.podspec文件里面的s.version保持一致)

    image.png

    image.png

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

    打tag:
    image.png

    image.png

  • lint 代碼
    先本地lint


    image.png

    遇到問題,但并沒有錯(cuò)誤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

再遠(yuǎn)程lint
pod spec lint --allow-warnings

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

  • 推送XXUI.podspecXXPrivateRepos倉庫中: pod repo push XXPrivateRepos XXUI.podspec
  • 開始我的倉庫是空的,推送時(shí)出現(xiàn)了以下錯(cuò)誤
    image.png

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

    本地文件夾多了這個(gè)庫相關(guān)的文件:
    image.png

    遠(yuǎn)程倉庫:
    image.png
  • pod search XXUI
    image.png

四 、創(chuàng)建一個(gè)demo,pod使用這個(gè)私有倉庫

  • 創(chuàng)建一個(gè)XXTestPrivateRepo demo
  • 創(chuàng)建Podfile文件
    image.png

    不加那個(gè)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制作一個(gè)pod公開庫文檔
我的制作庫系列之: iOS 制作本地庫Development Pods
cocoapods制作庫的文檔
cocoapods制作Private Pods文檔
cocoapods制作公開Pods文檔

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

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

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