GitHub私有库居然免费了,很开心的把原来的pod库迁移了过来,并写了一个教程。
创建并设置一个私有的Spec Repo
- 首先我们在github上建立一个自己的仓库 LocalPod(仓库名字任意)
- 在本地创建Spec Repo1pod repo add LocalPod https://github.com/davidlin7876/LocalPod.git
进入 ~/.cocoapods/repos 目录此时就能看到我们自己的pod仓库了1open ~/.cocoapods/repos
如果有其他合作人员共同使用这个私有Spec Repo的话在他有对应Git仓库的权限的前提下执行相同的命令添加这个Spec Repo即可。
创建PodLib
用github建立一个私有的仓库,git clone到本地
跳转到一个用来保存自己库的文件夹下来创建一个lib(推荐单独创建一个专门用来保存自己的库),并在该目录执行
1$ pod lib create NEGCFoundation
执行后正常情况下会有一个交互:
- lib使用的语言swif/ObjeC
- 是否创建一个demo
- 选择什么测试框架 [ Specta / Kiwi / None ]
- 是否进行UI测试
- 类的前缀
然后就会在该目录创建一个lib
- 添加相关要生成lib的文件到Pod文件夹:(libName)/(libName)/Classes, 当然还要删除ReplaceMe.m文件(只要在提交前删除掉就好)
创建lib所对应的podspec文件-(针对已存在的lib)
- 在lib文件夹下执行1pod spec create NEGCFoundation https://github.com/davidlin7876/NEGCFoundation.git
配置podspec与验证
配置MyLibrary.podspec(ruby文件)
12345678910111213141516171819# 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-warningsPod::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 = trues.dependency "Reachability", "~> 3.2"s.dependency "FMDB", "~> 2.7.2"end完成上面主要配置(并非所有配置)后,验证一下这个文件是否可用。执行
1pod lib lint --verbose --skip-import-validation --allow-warnings NEGCFoundation.podspec本地测试与提交
123456git add .git commit -m "new version"git push origin master# 打上新taggit tag -m "release 0.1.0" "0.1.0"git push --tags #推送tag到远端仓库
向私有的Spec Repo中提交自己的podspec
- 提交podspec到自己的Spec Repo1pod repo push LocalPod NEGCFoundation.podspec --verbose --allow-warnings
如果是公开库用:1pod trunk push NEGCFoundation.podspec --verbose --skip-import-validation --allow-warnings
如果遇到错误 [!] You need to register a session first.1pod trunk register davidlin7876@163.com 'David Lin'
- 搜索自己的lib1pod search NEGCFoundation
到这里一个属于自己的pod库就大功告成了
在自己项目中使用
在Podfile文件中加入查找源1234#我们自己的私有spec仓库的地址source 'https://github.com/davidlin7876/LocalPod.git' #官方仓库的地址source 'https://github.com/CocoaPods/Specs.git'