CocoaPods私有庫創建遇到的問題

一、前言

在iOS開發中,爲了滿足企業內部的一些組件化需求,往往需要創建一些公用的代碼,這些公用代碼往往是不希望被公開的,此時一般可以選擇submodule或者CocoaPods庫的形式。

如果選用submodule,直接上傳到自己的私有遠程代碼倉庫就能達到目的。對於CocoaPods庫的使用,則需要創建自己的私有庫。

二、創建私有庫遇到的問題

私有庫的創建這裏不再贅述,在互聯網上已經有許多博客你可以進行參考,當然你也可以查看官方文檔

1.私有庫的dependency找不到

假如你已經創建好私有庫A,並想在私有庫B中使用私有庫A,在庫B的.podspec文件中你需要制定依賴:

s.dependency 'pod projectName(A)', '~> version'

校驗sepc可用性時,執行以下命令:

pod sepc lint 文件名.podspec

此時由於你當前工程B依賴的工程是私有庫,於是會報錯:

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

原因:

校驗podspec文件時會到遠程podspec庫查找相關依賴,默認只會到官方specs庫校驗,此時需要指定遠程specs庫去校驗。

解決:

  1. 指定pod spec文件校驗地址

     pod sepc lint 文件名.podspec --sources='http://[privateLibName]/cocoaspecs.git,https://github.com/CocoaPods/Specs.git'
    
  2. 引用當前私有庫的podFile中指定source爲私有庫地址

    source http://[privateLibName]/cocoaspecs.git'
    source 'https://github.com/CocoaPods/Specs.git'
    

2.將本地podspec推送到遠程私有spec庫時因爲警告失敗

當你想把本地.podspec文件推送到遠程specs倉庫時,你需要執行:

Pod repo push 本地spec庫名 本地.podsepc文件

如果.podspec文件存在警告時不能成功push。

解決:

Pod repo push 本地spec庫名 本地.podsepc文件 --allow-warnings

不過爲了嚴謹,最好把產生的警告解決掉再推送到遠程倉庫,以免對你的同事造成困擾。

更多相關指令你都可以用–help查看:

pod repo push --help

參考

  1. https://github.com/CocoaPods/CocoaPods/issues/2543

  2. http://guides.cocoapods.org/making/private-cocoapods.html

  3. http://guides.cocoapods.org/syntax/podfile.html#source

發佈了42 篇原創文章 · 獲贊 21 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章