前言:在iOS項目中,通常會使用到CocoaPods作為一個第三方庫的依賴管理工具,可以簡化對組件的依賴、更新的過程,本文將介紹在iOS項目中多Target企業級項目的Podfile文件編寫格式
一、podfile介紹
先簡單介紹一下podfile文件,podfile文件主要用來指定工程中依賴了那些組件。主要包含了依賴的組件名、組件版本、組件地址等。添加的一些第三方組件可以通過修改podfile文件,然后進行pod install
進行引入至項目中;更新已有的第三方庫,可以修改podfile文件,然后進行pod update
進行修改,也可以指定對應的版本號
二、podfile文件書寫規范
此處先貼代碼,在代碼大多數地方都進行了標注處理,講了具體代碼的含義和用法
# 依賴庫文件倉庫鏈接
source 'https://github.com/CocoaPods/Specs.git'use_frameworks!
platform :ios, '13.0'
inhibit_all_warnings!
# OC組件庫Module化
use_modular_headers!####### Debug
eval IO.read('podext.rb')
# 能否進行開發 開發環境-true 封包打包-false
@enable_develop = true
######### 基礎公共組件
def basePod# 拉取最新版本pod 'SnapKit'pod 'JXBanner'# 拉取指定版本pod 'Alamofire', '5.4.4'end# 業務組件
def businessPod# 開發組件 developmentPod1pod 'developmentPod1', :git=>'https://github.com/author/developmentPod1.git',:branch=>'feature/0.0.1',:dev=>'..'# 拉取指定版本 pod 'developmentPod2', '0.0.2'pod 'developmentPod3', '0.0.3'pod 'developmentPod4', '0.0.1'end#正式版 只有生產環境
target 'projectName' dobasePodbusinessPod
end#內部調試版本
target 'projectNameDebug' dobasePodbusinessPodpod 'LookinServer'
end# hook 配置, 在 preparing 階段后,install 之前
pre_install do |installer|end# hook 配置,在 pod install 之后,可用于修改工程配置等
post_install do |installer|
# 用于解決Signing for "xxx" requires a development team. select a development team in the signing & capabilities editor報錯 該錯誤為Pod庫中包含Test的Target,需要設置Team ID
#
# installer.generated_projects.each do |project|
# project.targets.each do |target|
# target.build_configurations.each do |config|
# config.build_settings["DEVELOPMENT_TEAM"] = "TeamID"
# end
# end
# end
end
三、podfile文件部分代碼講解
1.OC組件庫Module化:
現在很多常見常用的第三方組件是用OC進行編寫的,但是現在很多新業務、新項目都采用Swift開發,這就會面臨一個OC組件庫進行Module化,方便Swift代碼進行調用使用,所以在podfile文件中添加了use_modular_headers!
。具體的技術細節講解可參考網易云音樂編寫的Swift混編Module化實踐
2.組件區分
在podfile文件中分出了兩個組件(基礎組件和業務組件),基礎組件通常為公司已經積累許久的內部基礎組件庫,業務組件通常為當前業務正在開發和使用的組件庫。這樣在平時更新組件庫的版本時會更為便捷,大多變更的均為業務組件庫版本號
# 基礎公共組件
def basePod# 拉取最新版本pod 'SnapKit'pod 'JXBanner'# 拉取指定版本pod 'Alamofire', '5.4.4'end# 業務組件
def businessPod# 開發組件 developmentPod1pod 'developmentPod1', :git=>'https://github.com/author/developmentPod1.git',:branch=>'feature/0.0.1',:dev=>'..'# 拉取指定版本 pod 'developmentPod2', '0.0.2'pod 'developmentPod3', '0.0.3'pod 'developmentPod4', '0.0.1'end
3.target區分
在podfile文件中分出了正式環境和開發環境兩個target,當然在正式開發的時候可以還有更多的環境區分,這邊舉例僅以兩個環境進行舉例。在不同的環境擁有著不同的作用和功能,所以有時候需要引入不同的測試庫,比如開發環境需要引入LookinServer進行UI查看
4.podext.rb文件
當你運行該podfile文件時,可能會報錯找不到podext.rb文件,這個是個ruby文件用于一些組件拉取方法和避免發生拉取報錯,如果你需要該文件,可以關注并私信我
參考資料:我所理解的CocoaPods
如果該文章對你有所幫助,可以點贊、收藏并關注一下!后續會持續更新更多技術內容