美文网首页项目优化
iOS 制作一个pod私有库

iOS 制作一个pod私有库

作者: 落夏简叶 | 来源:发表于2021-01-18 15:42 被阅读0次

    期望:用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私有库

        本文链接:https://www.haomeiwen.com/subject/yxavaktx.html