之前使用CocoaPods管理過(guò)第三方庫(kù)曼追,前面也有翻譯文章介紹過(guò)CocoaPods的配置方法押赊,隨著項(xiàng)目越來(lái)越大抠刺,很多公司會(huì)使用CocoaPods進(jìn)行組件化開(kāi)發(fā)叶堆,下面利用一個(gè)demo介紹一下阱飘。
什么是庫(kù)
先說(shuō)下什么是庫(kù),庫(kù)分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)兩種:
- 1虱颗、動(dòng)態(tài)庫(kù)是在運(yùn)行時(shí)實(shí)時(shí)部署沥匈,而靜態(tài)庫(kù)必須在編譯時(shí)連接到代碼。
- 2忘渔、動(dòng)態(tài)庫(kù)加載到內(nèi)存可以重復(fù)使用咐熙,而靜態(tài)庫(kù)每次import都要引用一次。
- 3辨萍、自定義的動(dòng)態(tài)庫(kù)只能部署在iOS8以上系統(tǒng)棋恼。
庫(kù)有三種格式: - 1、.a:純代碼靜態(tài)庫(kù)
- 2锈玉、.dylib:純代碼動(dòng)態(tài)庫(kù)
- 3爪飘、.framework:可以包含資源,代碼和資源拉背∈ζ椋可以包含靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)。
創(chuàng)建一個(gè)庫(kù)
1椅棺、創(chuàng)建framework:
2犁罩、隨便建一個(gè)類
3齐蔽、在創(chuàng)建的類里面添加兩個(gè)方法調(diào)試用
4、在默認(rèn)創(chuàng)建的類里面導(dǎo)入頭文件
5床估、然后我們看看Build Active Architecture Only 這個(gè)值含滴。這個(gè)屬性設(shè)置為yes,是為了debug的時(shí)候編譯速度更快丐巫,它只編譯當(dāng)前的architecture版本谈况。而設(shè)置為no時(shí),會(huì)編譯所有的版本递胧。所以丛忆,一般debug的時(shí)候可以選擇設(shè)置為yes誊垢,release的時(shí)候要改為no,以適應(yīng)不同設(shè)備丑勤。很多第三方庫(kù)都是這樣設(shè)置的菜拓。
6是牢、把頭文件公開(kāi)痴荐,其他人可以引用到
7酱床、在github上創(chuàng)建一個(gè)倉(cāng)庫(kù),把剛才的工程push上去
8舷蒲、創(chuàng)建podspec文件
9、配置podspec文件文件友多,具體教學(xué)可以看https://guides.cocoapods.org/syntax/podspec.html和https://segmentfault.com/a/1190000012269307這兩個(gè)網(wǎng)址
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" => "chaokuzc@icloud.com" }
spec.summary = '組件開(kāi)發(fā)實(shí)驗(yàn)'
spec.source = { :git => 'https://github.com/nickzc/nickCocoaPodsFrameWork.git', :tag => '0.0.1' }
spec.source_files = 'nickCocoaPodsFrameWork/**/*.{h,m}'
spec.platform = :ios
end
10牲平、驗(yàn)證podspec文件:
pod spec lint xl_test.podspec --allow-warnings
如果報(bào)錯(cuò)了就去查詢錯(cuò)誤原因。
11域滥、新建一個(gè)程序纵柿,用cocoaPods安裝我們剛才寫的庫(kù):
(1)執(zhí)行 pod init命令
(2)profile文件添加剛才建的庫(kù)
# 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、完成启绰。
剛才自己寫的framework的地址:https://github.com/nickzc/nickCocoaPodsFrameWork.git