【iOS】利用CocoaPods建立私有庫進行元件化開發
阿新 • • 發佈:2019-01-11
之前使用CocoaPods管理過第三方庫,前面也有翻譯文章介紹過CocoaPods的配置方法,隨著專案越來越大,很多公司會使用CocoaPods進行元件化開發,下面利用一個demo介紹一下。
什麼是庫
先說下什麼是庫,庫分為靜態庫和動態庫兩種:
- 1、動態庫是在執行時實時部署,而靜態庫必須在編譯時連線到程式碼。
- 2、動態庫載入到記憶體可以重複使用,而靜態庫每次import都要引用一次。
- 3、自定義的動態庫只能部署在iOS8以上系統。
庫有三種格式:
- 1、.a:純程式碼靜態庫
- 2、.dylib:純程式碼動態庫
- 3、.framework:可以包含資源,程式碼和資源。可以包含靜態庫和動態庫。
建立一個庫
1、建立framework:
2、隨便建一個類
3、在建立的類裡面新增兩個方法除錯用
4、在預設建立的類裡面匯入標頭檔案
5、然後我們看看Build Active Architecture Only 這個值。這個屬性設定為yes,是為了debug的時候編譯速度更快,它只編譯當前的architecture版本。而設定為no時,會編譯所有的版本。所以,一般debug的時候可以選擇設定為yes,release的時候要改為no,以適應不同裝置。很多第三方庫都是這樣設定的。
6、把標頭檔案公開,其他人可以引用到
7、在github上建立一個倉庫,把剛才的工程push上去
8、建立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、完成。