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文档

你可能感兴趣的:(iOS 制作一个pod私有库)