CocoaPods是當前 Swift 和 Objective-C 工程中較為流行的依賴管理工具,通過一份 Podfile 和幾條基本命令就能幫助開發者優雅地管理工程依賴。大多數時候只是利用 CocoaPods 安裝或更新特定版本的庫,但是如何創建pod了?項目中的可執行文件,xib和圖片等資源文件該如何通過pod進行管理了?
下面將介紹如何制作CocoaPods依賴庫,以及過程中遇到的坑點。
1. 制作 CocoaPods 依賴庫
可通過 命令:pod lib create projectName
按提示進行創建,也可通過以下步驟1-5進行創建。
- github/coding上創建一個項目:PrivateProject
- 本地創建一個項目PrivateProject : ~/**/PrivateProject
- 本地項目和遠程倉庫關聯:git remote add origin [地址]
- 添加開源許可文件 echo MIT>FILE_LICENSE
- 創建.podspec 的描述文件。名稱必須和依賴庫名保持一致 pod spec create [庫名]
- 提交到github
git commit -m "..."
git tag 0.0.1 tag一定要和podspec中的version一致
git push origin master --tags --tags為了把剛才添加的tag提交上去
- 把私有庫添加到私有的repo中
pod repo push [repo] NAME.podspec
成功后pod search [私有Pod源倉庫名字] 就能搜索到
編輯.podspec
s.name = "AICUserCenterModule" #名稱,pod search 搜索的關鍵詞
s.version = "0.0.1" #版本
s.summary = "AICUserCenterModule" #簡介,pod search 搜索的關鍵詞
s.homepage = "https://github.com/hanlihui/AICUserCenterModule" #主頁地址
s.license = { :type => "MIT", :file => "LICENSE" } #許可證
s.author = { "hanlihui" => "806236860@qq.com" } #作者
s.platform = :ios, "7.0" #平臺
s.source = { :git => "https://github.com/hanlihui/AICUserCenterModule.git", :tag => "#{s.version}" } #Git倉庫地址
s.source_files = "AICUserCenterModule/AICUserCenterModule/**/*.{h,m}" #需要包含的源文件
s.resources = "AICLoginModule/AICLoginModule/**/*.{xib,nib,storyboard,png}" #需要包含的圖片,xib等資源文件
s.dependency = "AICProtocolManager" #依賴庫
s.requires_arc = true #是否要求ARC
注:
- 在podspec中 利用 source_files 你可以指定要編譯的源代碼文件
- 使用 s.resources = "AICLoginModule/AICLoginModule/*/.{xib,nib,storyboard,png}" 包含需要的圖片,xib等資源文件。這些資源文件會被直接拷貝到client target的mainBundle里,就實現了把xib,圖片等資源打包進應用程序的目的。但容易引起命名沖突。
- Cocoapods加入新屬性resource_bundles,實例如下
s.resource_bundles = { 'AICLoginModule' => ['AICLoginModule/**/*.{xib,nib,storyboard,png}'] }
顯式的對bundle加了分組。
2. 創建私有Pod源倉庫
- 到GitHub/Coding上開一個repo,作為私有Pod源倉庫
- 本地添加私有源。命令:pod repo add [私有Pod源倉庫名字] [私有Pod源的repo地址]
- 查看私有源:cd ~/.cocoapods/repos
參考資料
Private Pods