天天看點

iOS-本地私有庫搭建以及遠端庫制作

spec簡介

檢視本地pod倉庫

~/.cocoapods/repos
           

Spec檔案:描述架構資訊

pod setup: 将遠端倉庫的.spec檔案拉取到本地

pod install: 先從本地找到.spec檔案

eg: pod install AFNetWorking, 系統會從本地倉庫找到AFNetworking的spec描述檔案,如果本地沒找到,就會從遠端倉庫拉取相應的檔案到本地。

--------------------------------------------本地私有庫制作--------------------------------------------

操作方法:

打開終端,

1.在桌面建立PrivateStorage,切換到該目錄下:

cd  /Users/huangkunpeng/Desktop/PrivateStorage
           

2.建立私有庫名稱’HKPUtils’

pod lib create HKPUtils
           

3.選擇問題答案:

what platform do you want to use? 選擇iOS
What language do you want to use? 選擇ObjC
Would you like to include a demo application with your library?選擇YES
Which testing frameworks will you use? [ Specta / Kiwi / None ] 選擇None
Would you like to do view based testing? [ Yes / No ] 選擇No
What is your class prefix? 設定類的字首(這裡我填寫HKP)
           

項目檔案夾介紹

Development Pods (本地私有庫,開發時候用)

ReplaceMe.m (自定義的類放在ReplaceMe.m所在的Classes檔案夾裡面,然後把ReplaceMe.m删掉)

Example for HKPUtils (本地調試運作的demo)

iOS-本地私有庫搭建以及遠端庫制作
iOS-本地私有庫搭建以及遠端庫制作

添加本地私有庫到主工程

1.當編譯成功後,本地就有了私有庫。然後切換到主工程,把私有庫添加到主工程。

2.将 pod ‘HKPUtils’, :path => ‘…/’ 拷貝到主工程的 Podfile中,同時修改“…/”路徑,路徑為檔案在你項目中的路徑。

注意:pod底層源碼是通過Ruby實作。

編譯本地私有庫不通過原因

情景:假如現在要對項目中的網絡庫進行元件化,因為網絡庫是用了AFN,而且引用了其他的本地私有庫,并且在Podfile中使用了use_frameworks!,結果編譯失敗。

原因:use_frameworks! :

如果使用use_frameworks! ,就打包成framework,在pod->header找不到頭檔案。

如果不使用use_frameworks!,會把以下代碼編譯成靜态庫。

target 'HKPUtils_Example' do
  pod 'HKPUtils', :path => '../'

  target 'HKPUtils_Tests' do
    inherit! :search_paths

    
  end
end
           

解決方法:注釋掉use_frameworks!

--------------------------------------------華麗分隔線-------------------------------------------------------------------------------

遠端庫制作

本地私有庫搭建完,進入遠端庫制作階段。

1.進入到項目目錄根路徑

cd  項目目錄根路徑
           

2.送出到緩沖區

git add .
           

3、送出代碼

git commit -m '初始化HKPUtils'
           

4、遠端連接配接

git remote add origin https://{填寫你的代碼倉庫位址}
           

5、 強制送出

git push origin master -f
           

送出完代碼後,修改HKPUtils.podspec

關鍵要修改為遠端倉庫位址:

s.source           = { :git => 'https://github.com/huangkunpeng/HKPUtils.git', :tag => s.version.to_s }

           

還有s.homepage ,s.author,s.source_files等資訊

根據自己的情況修改資訊,如下圖:

iOS-本地私有庫搭建以及遠端庫制作

6、驗證上一步編輯的 HKPUtils.podspec檔案

pod lib lint 
           

7.打版本号

git tag 0.1.0
git push --tags
           

将podspec檔案送出到本地的私有索引庫

檢視本地已存在的索引庫

pod repo
           

如果不存在‘HKPUtils’,就執行以下指令。否則跳過這步

pod repo add HKPUtils https://{填寫遠端倉庫位址}
           

将HKPUtils私有庫的描述檔案HKPUtils.podspec送出到遠端倉庫中

pod repo push HKPUtils HKPUtils.podspec
           

參考資料

iOS開發 - CocoaPods遠端私有庫從0到1