iOS CocoaPods 私有库 steps and tips
这篇文章记录了下cocoapods私有库的一些steps和tips.
- 如何创建私有仓库
- 如何创建私有库
- 如何更新发布私有库
- 如何使用私有库
如何创建私有仓库
steps
先随便在网上创建一个仓库, 然后在本地添加那个那个仓库.
pod repo add PHSpecs http://pagit.paic.com.cn/PHiOSFootstone/PHSpecs.git
如何创建私有库
steps
pod lib create VenderName
创建模板的时候会问你要用什么语言, 要不要自带测试框架什么的.
生成的模板结构如下:
$ tree VenderName -L 2
VenderName
├── Example #demo APP
│ ├── VenderName
│ ├── VenderName.xcodeproj
│ ├── VenderName.xcworkspace
│ ├── Podfile #demo APP 的依赖描述文件
│ ├── Podfile.lock
│ ├── Pods #demo APP 的依赖文件
│ └── Tests
├── LICENSE #开源协议 默认MIT
├── Pod #组件的目录
│ ├── Assets #资源文件
│ └── Classes #类文件
├── VenderName.podspec #第三步要创建的podspec文件
└── README.md #markdown格式的README
9 directories, 5 files
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
tips
- 引用静态库:’(.ios).library’。去掉头尾的lib,用”,”分割
spec.libraries = 'xml2', 'z'
- 引用公有framework:’(.ios).framework’. 用”,”分割. 去掉尾部的”.framework”
spec.frameworks = 'UIKit','SystemConfiguration', 'Accelerate'
- 引用自己生成的framework:’(.ios).vendored_frameworks’。用”,”分割
路径写从.podspec所在目录为根目录的相对路径 ps:这个不要省略.framework
spec.ios.vendored_frameworks = 'Pod/Assets/*.framework'
- 引用自己生成的.a文件, 添加到Pod/Assets文件夹里. Demo的Example文件夹里也需要添加一下, 不然找不到
spec.ios.vendored_libraries = 'Pod/Assets/*.a'
在提交到私有仓库的时候需要加上--use-libraries
如何更新发布私有库
steps
git add -A && git commit -m "Release 1.0.0"
git tag '1.0.0'
--
git push origin master
. --- --
---
---
tips
提交到私有仓库的之前可以先验证一下, 有问题就修复它, 验证过了在提交
. --
打好tag, 推到git里去后, 才可以
在测试的项目里的Podfile里引用这个库, 然后 pod update VenderName --no-repo-update
, 测试通过了, 在提交到私有仓库里
pod 'VenderName', :podspec => '/Users/heaven/Desktop/work/VenderName/VenderName.podspec'
还可以指定引用某个分支的代码
pod 'VenderName', :git => 'https://github.com/PHiOSFootstone/VenderName.git', :branch => 'develop'
提交到私有仓库的时候还可以忽略警告类的错误, 愣是要提交. 在后面加上 --allow-warnings
pod repo push PHSpecs VenderName.podspec --allow-warnings
如果有添加新的文件, 需要更新下引索, demo里才可以识别
pod update VenderName --no-repo-update
- 资源用bundle, 添加到Pod/Assets文件夹里. Demo的Example文件夹里也需要添加一下, 不然找不到
s.resources = "Pod/Assets/*"
[UIImage imageNamed:@"VenderName.bundle/pic1.png"]
如何使用私有库
steps
pod repo add PHSpecs http://pagit.paic.com.cn/PHiOSFootstone/PHSpecs.git
source 'https://github.com/CocoaPods/Specs.git'
# ...相关库
source 'http://pagit.paic.com.cn/PHiOSFootstone/PHSpecs.git'
# ...私有库
pod 'VenderName'
tips
使用的时候还可以通过直接指定地址 + tag or 分支 or commit 的方式来引入, 这样就可以不用走发布流程了. 也不需要添加源了.
pod 'VenderName', :git => 'http://pagit.paic.com.cn/PHiOSFootstone/VenderName.git', :tag => '0.7.0'
pod 'VenderName', :git => 'http://pagit.paic.com.cn/PHiOSFootstone/VenderName.git', :branch => 'develop'
pod 'VenderName', :git => 'http://pagit.paic.com.cn/PHiOSFootstone/VenderName.git', :commit => '082f8319af'
查看私有仓库
cd ~/.cocoapods/repos/