最近在為公司的項目做組件化,考慮到CocoaPods的方便性,便打算將組件上傳到CocoaPods,網上相關的文章資源也挺多,但是在實際動手操作的時候還是存在問題,并且網上也沒有搜到這個問題的解決方案。這個問題就是如何在自己的CocoaPods項目中引用其他CocoaPods庫,接下來,我會將搭建過程給大家列舉出來,方便大家借鑒。
第一步 安裝CocoaPods
這一步網上教程挺多的,自行搜索。
第二步 創建GitHub倉庫
建議創建空白倉庫,避免與CocoaPods創建出來的文件存在文件沖突,創建倉庫后不需要做額外操作。
第三步 創建CocoaPods項目
使用以下終端命令行創建一個CocoaPods項目
pod lib create 項目名
該命令將會要求你輸入一些指令來完成創建,輸入完成將會在當前文件夾下創建一個CocoaPods項目
第三步 提交GitHub倉庫
CocoaPods創建出來的文件夾包含了.git文件,所以我們只需要在此文件夾下執行git remote就可以關聯我們的GitHub倉庫
cd ./上一步創建出來的CocoaPods項目文件夾
// 關聯GitHub倉庫
git remote add origin 你的倉庫地址(.git結尾的)
// 提交到遠程倉庫,依次執行以下命令
git add .
git commit -m "提交描述"
git push -u origin master
等待上傳完成就可以進行下一步操作
第四步 編寫podspec文件
打開Example目錄下的 .xcworkspace工程,在這里編寫podspec文件
Pod::Spec.new do |s|
s.name = 'kevintest'
s.version = '0.1.0'
s.summary = '這里是你的項目描述'
s.description = '這里是你的項目描述,需要長一點'
s.homepage = '這里是你的GitHub項目主頁'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'kevin' => '673729631@qq.com' }
s.source = { :git => 'https://github.com/kevin930119/kevintest.git(這里填寫你的GitHub項目地址)', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
# 這里是最終需要編譯出來的代碼文件目錄,一般不需要改動,記得把代碼文件拉到這個文件夾就行
s.source_files = 'kevintest/Classes/**/*'
# 這里存放的是資源文件
# s.resource_bundles = {
# 'kevintest' => ['kevintest/Assets/*.png']
# }
# 這里推薦這么寫,將該目錄下的.h文件暴露出來
s.public_header_files = 'kevintest/Classes/**/*.h'
# 以下,如果不需要可以不寫
# 這里是此三方庫需要依賴的系統動態庫
s.frameworks = 'UIKit', 'MapKit'
# 這里是此三方庫需要依賴的系統靜態庫
s.library = 'resolv', 'iconv', 'stdc++', 'c++', 'sqlite3'
# 此三方庫需要依賴的其他CocoaPods倉庫,可以依賴多個
s.dependency 'AFNetworking', '~> 2.3'
s.dependency 'Masonry'
end
第五步 安裝pod依賴庫
這一步其他網上資源都沒有說,如果不執行這一步的話,即使你podspec文件依賴了其他pod倉庫,在編寫自己的代碼的時候會出現引用不了的情況,并且有一點需要注意的,如果這里不修改的話,即使安裝了pod依賴庫,一樣會出現引用不了的情況。
命令行CD進Example文件夾
cd ./Example
可以看到該文件夾目錄結構是這樣的
劃重點了,坑就在這里了,需要修改一下Podfile
執行pod命令進行依賴庫安裝
pod install
// 或
pod update
/* 兩個命令的區別在于
pod install會直接安裝Podfile里面的三方庫,而pod update會首先執行更新pod索引文件的操作,一般情況,直接使用pod install會快很多
*/
第六步 編寫自己的代碼文件
接下來就是編寫自己的代碼了,這里需要注意的是,新建的代碼文件必須存放在Classes文件夾下,記得Targets選擇自己的項目哦,因為在之前的podspec文件中我們已經指定了該文件夾為源代碼文件夾,如果不想存放在這里,可以在podspec里面修改
然后就可以在我們自己的CocoaPods項目中引用其他第三方倉庫了(▽)
第七步 檢查項目是否編譯通過
// CD到項目主目錄
cd ..
// 執行命令
pod lib lint
查看問題并解決,再次執行,如果沒問題就可以執行下一步
第八步 上傳到GitHub并打tag
git add .
git commit -m "提交描述"
git push
// 然后開始打tag,tag就是在podspec文件里面的版本號
git tag '0.1.0'
// 推送tag到遠程倉庫
git push --tags
第九步 上傳到CocoaPods
注冊trunk
pod trunk register 673729631@qq.com 'kevin' --verbose
然后去郵箱里面點擊驗證地址,成功后就可以繼續下一步了
上傳podspec文件
pod trunk push 項目名.podspec --allow-warnings
成功后就可以使用自己的CocoaPods倉庫了。