1. 程式人生 > >【iOS】利用CocoaPods建立私有庫進行元件化開發

【iOS】利用CocoaPods建立私有庫進行元件化開發

之前使用CocoaPods管理過第三方庫,前面也有翻譯文章介紹過CocoaPods的配置方法,隨著專案越來越大,很多公司會使用CocoaPods進行元件化開發,下面利用一個demo介紹一下。

什麼是庫

先說下什麼是庫,庫分為靜態庫和動態庫兩種:
- 1、動態庫是在執行時實時部署,而靜態庫必須在編譯時連線到程式碼。
- 2、動態庫載入到記憶體可以重複使用,而靜態庫每次import都要引用一次。
- 3、自定義的動態庫只能部署在iOS8以上系統。
庫有三種格式:
- 1、.a:純程式碼靜態庫
- 2、.dylib:純程式碼動態庫

.a和.dylib

  • 3、.framework:可以包含資源,程式碼和資源。可以包含靜態庫和動態庫。

建立一個庫

1、建立framework:
建立framework

2、隨便建一個類
建立一個類

3、在建立的類裡面新增兩個方法除錯用
新增方法

4、在預設建立的類裡面匯入標頭檔案
匯入標頭檔案

5、然後我們看看Build Active Architecture Only 這個值。這個屬性設定為yes,是為了debug的時候編譯速度更快,它只編譯當前的architecture版本。而設定為no時,會編譯所有的版本。所以,一般debug的時候可以選擇設定為yes,release的時候要改為no,以適應不同裝置。很多第三方庫都是這樣設定的。
Build Active Architecture Only

6、把標頭檔案公開,其他人可以引用到
公開標頭檔案

7、在github上建立一個倉庫,把剛才的工程push上去

8、建立podspec檔案
建立podspec檔案

建立好了

Pod::Spec.new do |spec|
spec.name         = 'nickCocoaPodsFrameWork'
spec.version      = '0.0.1'
spec.license      = 'MIT'
spec.homepage     = 'https://github.com/tonymillion/Reachability'
spec.authors            = { "nickzc" => "[email protected]" }
spec.summary      = '元件開發實驗'
spec.source       = { :git =>     'https://github.com/nickzc/nickCocoaPodsFrameWork.git', :tag => '0.0.1' }
spec.source_files = 'nickCocoaPodsFrameWork/**/*.{h,m}'
spec.platform    = :ios
end

10、驗證podspec檔案:

pod spec lint xl_test.podspec --allow-warnings

如果報錯了就去查詢錯誤原因。

11、新建一個程式,用cocoaPods安裝我們剛才寫的庫:
(1)執行 pod init命令
(2)profile檔案新增剛才建的庫

# Uncomment the next line to define a global platform for your project
 platform :ios, '8.0'

target 'TestCocoaPods' do

    pod 'nickCocoaPodsFrameWork', :git => 'https://github.com/nickzc/nickCocoaPodsFrameWork.git'

end

(3)pod install –no-repo-update
pod update –no-repo-update

12、完成。