去年10月的學習筆記,更新複習一下~git
官方文檔:CocoaPods Guidesgithub
Podfile 文件:描述工程的依賴庫,能夠理解爲是一份「標準」。
Podfile.lock 文件:記錄和追蹤已生成的 Pod 版本,裏面有以前 pod install 時使用的各個庫的版本以及依賴的第三方庫版本。能夠理解爲是一份「歷史記錄」。xcode
pod install
:從新下載並安裝 pods ,版本號從 Podfile.lock 文件中獲取,lock 文件中有記錄則安裝記錄版本(不檢查更新),無記錄則安裝 Podfile 指定版本的 podspod update
:無視 Podfile.lock 鎖定的版本號,查找並更新到知足 Podfile 中指定版本號要求範圍的最新版本 pods
pod update [PODNAME]
,若無 PODNAME 則默認更新 Podfile 中所有 Pods擴展學習:iOS裏的動態庫和靜態庫緩存
class Install < Command
include Project
# ...
def run
verify_podfile_exists!
run_install_with_update(false)
end
end
複製代碼
#初始化 Installer 對象
def run_install_with_update(update)
installer = Installer.new(config.sandbox, config.podfile, config.lockfile)
installer.update = update
installer.install!
end
複製代碼
#install 方法
def install!
prepare // 1.準備工做
resolve_dependencies // 2.解決依賴衝突
download_dependencies // 3.下載依賴文件
determine_dependency_product_types // 4.決定依賴庫的類型
verify_no_duplicate_framework_names // 5.驗證沒有重名的framework
verify_no_static_framework_transitive_dependencies // 6.驗證靜態庫的傳遞依賴
verify_framework_usage // 7.驗證framework的使用
generate_pods_project // 8.生成工程
integrate_user_project // 9.整合用戶項目
perform_post_install_actions // 10.執行 install 後的行爲
end
複製代碼
def download_dependencies
UI.section 'Downloading dependencies' do
create_file_accessors // 3.1 準備沙盒文件訪問器
install_pod_sources // 3.2 下載安裝Pods依賴庫源文件
run_podfile_pre_install_hooks // 3.3 執行Pods依賴庫的pre_install的Hook函數
clean_pod_sources // 3.4 根據Config和Installers參數清理Pods的源文件
end
end
複製代碼
def generate_pods_project
UI.section 'Generating Pods project' do
prepare_pods_project // 8.1 準備Pods工程
install_file_references // 8.2 安裝文件引用
install_libraries // 8.3 安裝庫
set_target_dependencies // 8.4 爲Target設置依賴
run_podfile_post_install_hooks // 8.5 執行Podfile的post_install代碼塊
write_pod_project // 8.6 執行Project類的Save方法保存配置
share_development_pod_schemes // 8.7 共享依賴庫的Target Scheme
write_lockfiles // 8.8 修改Pods工程的LockFile文件
end
複製代碼
pod 源碼:GitHub - CocoaPods/CocoaPods: The Cocoa Dependency Manager.
源碼探究方法參考:pod install和pod update背後那點事 | Startry Blogruby
pod update [PODNAME]
/pod update
,使用 pod update
應慎重。經常使用參數ide
pod cache list [NAME]
:列出本地 pods 緩存記錄pod cache clean [NAME]
:刪除本地 pods 緩存記錄緩存地址:~/Library/Caches/CocoaPods/函數
pod lib create 'xxxxxx'
pod spec create 'xxxxxx'
給項目添加 Podspec 文件pod lib lint xxxxxx.podspec
post
pod trunk push xxxxxx.podspec
查詢是否上傳成功:pod search xxxxxx
加入其餘開發者:pod trunk add-owner 'xxxxxx' '郵箱'
學習
推薦閱讀: CocoaPods 結構詳解:我所理解的 CocoaPods ui