pod 私有庫

如何創(chuàng)建私有 CocoaPods 倉庫

制作 CocoaPods 依賴庫

cocoapods本地的類庫更新方法

使用私有Cocoapods倉庫的中高級用法

自定義podspec,資源問題解決

1.podspec文件:

Pod::Spec.new do |s|
  s.name         = "HHO2View"
  s.version      = "0.1.2"
  s.summary      = "HHO2View."
  s.description  = "纖細(xì)描述,哈哈哈哈"
  s.homepage     = "https://github.com/huanghuacaiCoder/HHO2View"
  s.license      = "MIT"
  s.author             = { "huanghuacai" => "285210549@qq.com" }
  s.platform     = :ios, '9.0'
  s.source       = { :git => "https://github.com/huanghuacaiCoder/HHO2View.git", :tag => "#{s.version}" }
  s.source_files  = "Classes/**/*.{h,m}"
  s.resource  = "Classes/HHImage.bundle"
  s.preserve_paths = "Classes/**/*.a"
  s.vendored_libraries = "Classes/**/*.a"
  s.requires_arc = true
  s.dependency 'AFNetworking', '~> 2.3'
  s.dependency 'CocoaAsyncSocket', '~>7.5.0'
  s.subspec 'Category' do |cs|
      cs.source_files = 'Classes/Category/**/*.{h,m}'
  end
end

2.podspec文件介紹

* name      類庫的名稱
* version   指定版本
* license   開源協(xié)議
* description  簡單描述
* homepage   個(gè)人主頁
* author 作者信息
* source  指定git地址
* platform 指定iOS版本
* requires_arc  指定支持arc
* vendored_frameworks 本地的frameworks
* frameworks 指定需要使用的系統(tǒng)frameworks
* preserve_paths 本地的.a庫
* vendored_libraries: 第三方.a文件
* source_files 指定類庫中的源碼
需要在source_files中指定要發(fā)布的源代碼文件,這個(gè)項(xiàng)目的源代碼都是在pod-library目錄下面,因此我指定了獲取pod-library目錄下的所有的.h和.m文件
如果你需要使用swift就需要指定目錄下面的.swift文件,如果有c++源代碼的還需要指定.mm文件。
* resources 指定的資源在調(diào)用類庫的項(xiàng)目中可以直接調(diào)用,和調(diào)用項(xiàng)目內(nèi)的資源一樣。
* resource_bundles 把需要調(diào)用的資源編譯到bundle來調(diào)用,

3.podfile文件:

target 'Test1' do

source 'https://github.com/huanghuacaiCoder/HHSpecs.git'

source 'https://github.com/CocoaPods/Specs.git'  #官方倉庫的地址

  use_frameworks!

  pod ‘HHO2View’ 

end

4.常用終端命令

生成公私鑰對:ssh-keygen

查看第三方框架倉庫源:pod repo

本地下載私有倉庫索引:pod repo add REPO_NAME SOURCE_URL

pod spec create 描述文字名稱

pod init 生成一個(gè)podfile文件

在cocoapods注冊  pod trunk register 18811108252@163.com 'huanghuacai' --verbose

pod trunk push testLib.podspec

驗(yàn)證podspec也可手動(dòng)執(zhí)行命令pod spec lint XPRACSignal.podspec

更新pod到最新版本   sudo gem install cocoapods

git tag '0.0.1'
git push --tags
git push origin master

pod lib lint

pod repo push HHSpecs HHO2View.podspec

5.遇到的問題:

1).當(dāng)前工程依賴的工程是私有庫,pod lib lint于是會報(bào)錯(cuò):

 ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `XXX (~> 0.1.0)` depended upon by `ZZZ`) during validation.

原因
校驗(yàn)podspec文件時(shí)會到遠(yuǎn)程podspec庫查找相關(guān)依賴,默認(rèn)只會到官方specs庫校驗(yàn),此時(shí)需要指定遠(yuǎn)程specs庫去校驗(yàn)。

解決
指定pod spec文件校驗(yàn)地址

pod lib lint  --sources='私有索引庫路徑,https://github.com/CocoaPods/Specs.git'

2).依賴一個(gè)庫,pod lib lint時(shí)報(bào)錯(cuò)

 - NOTE  | xcodebuild:  /var/folders/fr/dlrxq7_j6t1fgl072c_dwssm0000gn/T/CocoaPods/Lint/App/main.m:3:9: fatal error: could not build module 'ZOiOSTools'

解決辦法

pod lib lint xxx.podspec --use-libraries

注意:push的時(shí)候必須要也要加這個(gè)后綴,否則也會報(bào)該錯(cuò)誤

 pod repo push Specs ZOiOSTools.podspec --use-libraries

3).如果代碼代碼中有過期的API,那么pod lib lint時(shí)會報(bào)警告
解決辦法有兩種,第一種去解決警告,第二種

pod lib lint --allow-warnings

pod repo push Specs ZOiOSTools.podspec --use-libraries --allow-warnings

4).Returned an unsuccessful exit code. You can use --verbose for more information.

pod lib lint --verbose

5). fatal error: 'UIKit/UIKit.h' file not found 出現(xiàn)與這個(gè)類似的錯(cuò)誤是因?yàn)樵趐odspec文件中沒有加

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

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

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