建立私有的pod库

GitHub私有库居然免费了,很开心的把原来的pod库迁移了过来,并写了一个教程。

创建并设置一个私有的Spec Repo

  1. 首先我们在github上建立一个自己的仓库 LocalPod(仓库名字任意)
  2. 在本地创建Spec Repo
    1
    pod repo add LocalPod https://github.com/davidlin7876/LocalPod.git

进入 ~/.cocoapods/repos 目录此时就能看到我们自己的pod仓库了

1
open ~/.cocoapods/repos

如果有其他合作人员共同使用这个私有Spec Repo的话在他有对应Git仓库的权限的前提下执行相同的命令添加这个Spec Repo即可。

创建PodLib

  1. 用github建立一个私有的仓库,git clone到本地

  2. 跳转到一个用来保存自己库的文件夹下来创建一个lib(推荐单独创建一个专门用来保存自己的库),并在该目录执行

    1
    $ pod lib create NEGCFoundation

执行后正常情况下会有一个交互:

  • lib使用的语言swif/ObjeC
  • 是否创建一个demo
  • 选择什么测试框架 [ Specta / Kiwi / None ]
  • 是否进行UI测试
  • 类的前缀

然后就会在该目录创建一个lib

  1. 添加相关要生成lib的文件到Pod文件夹:(libName)/(libName)/Classes, 当然还要删除ReplaceMe.m文件(只要在提交前删除掉就好)

创建lib所对应的podspec文件-(针对已存在的lib)

官方教程

  1. 在lib文件夹下执行
    1
    pod spec create NEGCFoundation https://github.com/davidlin7876/NEGCFoundation.git

配置podspec与验证

  1. 配置MyLibrary.podspec(ruby文件)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # pod lib lint NEGCFoundation.podspec --verbose --skip-import-validation --allow-warnings
    # pod trunk push NEGCFoundation.podspec --verbose --skip-import-validation --allow-warnings
    # pod repo push LocalPod NEGCFoundation.podspec --verbose --skip-import-validation --allow-warnings
    Pod::Spec.new do |s|
    s.name = "NEGCFoundation"
    s.version = "0.0.1"
    s.summary = "NetEase Game Center foundation framework."
    s.homepage = "https://github.com/davidlin7876/NEGCFoundation"
    s.license = { :type => "MIT", :file => "LICENSE" }
    s.author = { "David Lin" => "davidlin7876@163.com" }
    s.platform = :ios, "9.0"
    s.source = { :git => "https://github.com/davidlin7876/NEGCFoundation.git", :tag => "0.0.1" }
    s.public_header_files = "NEGCFoundation/NEGCFoundation.h", "NEGCFoundation/**/*.{h}"
    s.source_files = "NEGCFoundation/NEGCFoundation.h", "NEGCFoundation/**/*.{h,m}"
    s.frameworks = "Foundation", "QuartzCore", "UIKit", "CoreGraphics"
    s.requires_arc = true
    s.dependency "Reachability", "~> 3.2"
    s.dependency "FMDB", "~> 2.7.2"
    end
  2. 完成上面主要配置(并非所有配置)后,验证一下这个文件是否可用。执行

    1
    pod lib lint --verbose --skip-import-validation --allow-warnings NEGCFoundation.podspec
  3. 本地测试与提交

    1
    2
    3
    4
    5
    6
    git add .
    git commit -m "new version"
    git push origin master
    # 打上新tag
    git tag -m "release 0.1.0" "0.1.0"
    git push --tags #推送tag到远端仓库

向私有的Spec Repo中提交自己的podspec

  1. 提交podspec到自己的Spec Repo
    1
    pod repo push LocalPod NEGCFoundation.podspec --verbose --allow-warnings

如果是公开库用:

1
pod trunk push NEGCFoundation.podspec --verbose --skip-import-validation --allow-warnings

如果遇到错误 [!] You need to register a session first.

1
pod trunk register davidlin7876@163.com 'David Lin'

  1. 搜索自己的lib
    1
    pod search NEGCFoundation

到这里一个属于自己的pod库就大功告成了

在自己项目中使用

在Podfile文件中加入查找源

1
2
3
4
#我们自己的私有spec仓库的地址
source 'https://github.com/davidlin7876/LocalPod.git'
#官方仓库的地址
source 'https://github.com/CocoaPods/Specs.git'

------本文结束感谢阅读------