公司的框架代码大多数时候是需要保密的,而手动的复制导入比较麻烦,这时候我们可以创建私有 Pod 来方便我们的日常开发工作,本文是我创建私有 Pod 的笔记。
Cocoapods 提供了 pod lib create [pod name] 来创建私有库工程,但是有个 embedded dylibs/frameworks are only supported on iOS 8.0 and later 的问题。 意思是只有部署 iOS 8 以上的应用才能使用它,所以要支持 iOS 8 以下的应用的 Pod 我们还是得手动创建,详细步骤如下:
target 'AJFrameDevApp' do
pod 'AJFrame', :path => '../'
end
$ cd ~/Documents/AJFrame/AJFrameDevApp/
$ pod install --no-repo-update --verbose
测试
开发完成以后,可以创建一个测试工程来测试私有 Pod 是否能正常工作,具体而言,通常是在创建一个远程仓库,把私有 Pod 的代码推送上去,然后创建一个新的工程,让它安装这个私有 Pod ,然后写些测试代码,测试它能否正常工作。
1234567891011121314151617
// Remote
$ cd /Git
$ git init --bare AJFrame.git
// Local
$ cd ~/Documents/AJFrame
$ git init
$ git add .
$ git commit
$ git tag <tagname>
$ git remote add origin <url>
$ git push -u origin master --tags --verbose
// Edit dependency project's Podfile, add a similary line
pod 'AJFrame', :git => 'ssh://192.168.1.100:/git/ICW/Git/AJFrame.git', :tag => '2.0.0'
$ pod install --no-repo-update --verbose
$ write code and test
发布
发布是可选的,但是当我们有其他的 Pod 想依赖开发的这个私有 Pod 时就变成必须的,所以我们还是得会发布一个私有 Pod。具体步骤如下:
12345678910111213
// Create a Private Spec Repo
$ cd /Git
$ git init --bare Specs.git
// Add your Private Repo to your CocoaPods installation
$ pod repo add aijian-specs ssh://192.168.1.105:/git/ICW/Git/Specs.git --verbose
// Check your installation is successful and ready to go
$ cd ~/.cocoapods/repos/aijian-specs
$ pod repo lint .
// Add your Podspec to your repo
pod repo push aijian-specs AJFrame.podspec
在工程中使用它时,编辑 Podfile, 加入如下内容:
123
source ssh://192.168.1.105:/git/ICW/Git/Specs.git
pod 'AJFrame', '~> 2.0.0'
$ launchctl load -w ~/Library/LaunchAgents/com.dongmeiliang.update-pod-repo.plist
// Check plist has been install successfully
$ launchctl list | grep 'com.dongmeiliang.update-pod-repo'
s.dependency 如何依赖私有 Pod?
Create a Private Spec Repo
1234
$ cd /opt/git
$ mkdir Specs.git
$ cd Specs.git
$ git init --bare
Add your Private Repo to your CocoaPods installation
123
$ pod repo add artsy-specs git@github:artsy/Specs.git
$ pod repo add aijian-specs ssh://192.168.1.105:/git/ICW/Git/Specs.git --verbose
Check your installation is successful and ready to go:
12
$ cd ~/.cocoapods/repos/artsy-specs
$ pod repo lint .
Add your Podspec to your repo
1
pod repo push artsy-specs ~/Desktop/Artsy+OSSUIFonts.podspec
Your private Pod is ready to be used in a Podfile. You can use the spec repository with the source directive in your Podfile as shown in the following example: