CocoaPods 私有庫(kù)配置

前言

現(xiàn)在的項(xiàng)目完全是用組件化的思路開(kāi)發(fā)的,也是借此機(jī)會(huì)親自實(shí)現(xiàn)了一把。
項(xiàng)目里的每個(gè)業(yè)務(wù)模塊都是使用cocoapods 私有庫(kù)開(kāi)發(fā),依賴下層開(kāi)發(fā)或者二次封裝的私有庫(kù)。這里先介紹一下我的私有庫(kù)使用案例。

私有庫(kù)創(chuàng)建

我項(xiàng)目里的功能模塊都是用的官方的私有庫(kù)模版。跑如下命令

pod lib create __ProjectName__

然后根據(jù)一系列提示定制你的私有庫(kù)配置.

編輯 .podspec 文件

  • s.name 就是你私有庫(kù)的名稱
  • s.version 你的私有庫(kù)版本
  • s.summary 簡(jiǎn)單的介紹
  • s.description 描述,要比上面一項(xiàng)文字長(zhǎng)一點(diǎn)哦
  • s.source 代碼, git 地址,以及版本(或指定分支)
  • s.ios.deployment_target 支持iOS 版本
  • s.source_files 私有庫(kù)的源文件 'Pods/Classes/**/*' , ** 表示匹配一層或多層目錄,*匹配任何類型文件.
  • s.public_header_files 暴露的頭文件
  • s.resource_bundles 資源文件存放路徑
  • s.frameworks 私有庫(kù)所需要引用的系統(tǒng)庫(kù)
  • s.vendored_libraries 引用第三方靜態(tài)庫(kù) , 自己引入的.a文件
  • s.dependency 依賴的其他第三方pod庫(kù)
  • s.pod_target_xcconfig 指定target 添加配置

下面給出我的一個(gè) podspec 文件樣例

Pod::Spec.new do |s|
  s.name             = 'musicXML'
  s.version          = '0.1.6'
  s.summary          = 'musicxml for piano to play'
  s.description      = 'draw music sheet and play sound according to musicXML'
  s.homepage         = 'https://gitlab.oneitfarm.com/SpecPods/MusicXML'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'yourName' => 'your@email.com' }
  s.source           = { :git => 'your git address', :tag => s.version.to_s } #指定version
  s.ios.deployment_target = '8.0'
  s.source_files = ['Pod/Classes/**/*','Pod/musicFramework/**/*.{cpp}']
  s.resource_bundles = {
    'musicXML' => ['Pod/Assets/*.xib','Pod/Assets/*.png',
                   'Pod/Assets/*.dls','Pod/Assets/*.xcassets'
                  ]
  }
  s.xcconfig = { 'HEADER_SEARCH_PATHS' => 'Pod/MusicFramework/**/*.h'}
  s.public_header_files = 'Pod/Classes/**/*.h'
#  s.vendored_frameworks = 'Pod/MusicFramwork.framework'
  s.frameworks = 'UIKit', 'MapKit','AVFoundation','AudioToolbox','CoreAudio','CoreBluetooth'
  s.vendored_libraries = 'Pod/libraries/*.a'
  s.dependency 'MBProgressHUD'
  s.dependency 'CIRouter','0.0.3'
  s.dependency 'CIProgressHUD','0.2.0'
  s.dependency 'Moya','8.0.5'
  s.dependency 'Moya/RxSwift','8.0.5'
  s.dependency 'RxSwift','3.6.1'
  s.dependency 'SwiftyJSON','3.1.4'
  s.dependency 'CIUtilS'
  s.pod_target_xcconfig = { 'SWIFT_VERSION' => '3.2' }
end

添加該項(xiàng)目到你的倉(cāng)庫(kù)

pod repo add __ProjectName__ Project_Git_Address

驗(yàn)證私有庫(kù)

pod lib lint ProjectName.podspec

跑上面的命令時(shí)可能會(huì)遇到各種報(bào)錯(cuò)

  • warning 導(dǎo)致失敗,添加 --allow-warnings
  • SomePod not Found 依賴的其他私有庫(kù)未找到,添加 --sources="SomePod's Git Address,https://github.com/CocoaPods/Specs.git"
  • --verbose 添加這個(gè)選項(xiàng)會(huì)有更多的打印,主要是為了看錯(cuò)誤

推送

當(dāng)本地lint成功后,就可以將該版本推到的你倉(cāng)庫(kù)中

pod repo push __PodName__ --allow-warnings --allow-warnings

注意,lint 命令中添加的參數(shù),push 時(shí)也要添加

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容