pod repo #查看本地索引庫(kù)
pod repo add 索引庫(kù)名稱(chēng) 索引庫(kù)地址 #添加本地索引庫(kù)
pod repo remove 索引庫(kù)名稱(chēng) #刪除本地索引庫(kù)
創(chuàng)建組件庫(kù)及上傳
pod lib create xxx(組件名) 例:pod lib create XNetwork
cd ../XNetwork #XNetwork.podspec上一級(jí)目錄
git init (文件里已git 不需要)
git add . (添加改變的文件)
git commit -m "提交描述"
git branch -M master
git remote add origin 遠(yuǎn)程私有庫(kù)SSH地址
git push --set-upstream origin master 或者 git push -u origin master
git tag '0.1.0'
git push --tags
#驗(yàn)證代碼的正確性:
#pod lib lint 用于驗(yàn)證本地的代碼
#pod spec lint 對(duì)本地和遠(yuǎn)程代碼都驗(yàn)證
#<組件名>.podspec 如果在項(xiàng)目根目錄下執(zhí)行不需要添加此參數(shù)
#--verbose 顯示詳細(xì)錯(cuò)誤原因
#--use-libraries 使用靜態(tài)庫(kù)或者是framework
#--allow-warnings 允許警告存在
#--skip-import-validation 跳過(guò)驗(yàn)證,這個(gè)是解上面問(wèn)題的關(guān)鍵
#cd到項(xiàng)目根目錄下
pod lib lint --use-libraries --allow-warnings
pod spec lint --use-libraries --allow-warnings
# pod trunk register 郵箱 '用戶(hù)名' --description='描述'
pod trunk register 郵箱名 '描述'
pod trunk me #此時(shí)可以看到已注冊(cè)信息
pod trunk push --use-libraries --allow-warnings 或者
arch -x86_64 pod trunk push xxx.podspec --allow-warnings
pod repo update
pod search xxx
項(xiàng)目引用
pod 庫(kù)名, :git => '庫(kù)地址'
三.組件化里swift和OC的相互使用
1.swift使用oc
在.podspec文件中必須有s.source_files = '庫(kù)名/Classes/**/*'
在.podspec文件中加入s.public_header_files = '庫(kù)名/Classes/public_header.h'
Pods組件庫(kù)Classes目錄下創(chuàng)建一個(gè)文件夾 xxx(可以直接在class文件夾下),在文件夾中新建一個(gè)xxx.modulemap文件,并把文件內(nèi)容設(shè)置成
module xxx [system] {
header "xxxxx.h"
export*
}
執(zhí)行一下pod install洲赵,就能在swift文件里使用OC了
2.oc中使用swift寫(xiě)法 需要使用的swift要公開(kāi)出來(lái)
@objc public class xxx(類(lèi)名) :xxx(繼承的父類(lèi)){
@objc public class xxx(方法名)(){
} #類(lèi)方法
@objc public xxx(方法名)(){
} #對(duì)象方法
}
在oc需要使用的類(lèi)中引用 #import <xxx(自己創(chuàng)建的庫(kù)名)/xxx(自己創(chuàng)建的庫(kù)名)-Swift.h>
四.其他問(wèn)題
error build: In /Users/xuliangkun/Desktop/TestLib/TestLib/Classes/SocketTools/Snappy/libSnappyLib.a(snappy-stubs-internal.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/xuliangkun/Desktop/TestLib/TestLib/Classes/SocketTools/Snappy/libSnappyLib.a' for architecture arm64
具體解決辦法:
在主項(xiàng)目和pod項(xiàng)目的PROJECT的Build Settings中允蜈,搜索Excluded Architecture ,添加 Any iOS Simulator SDK鸣戴,value填入 arm64
s.name = "LivePods" #工程的名字
s.version = "0.0.1" #工程的版本
s.summary = "Live Pods's summary" #工程的摘要
s.description = "Live Pods's description" #工程的描述
s.homepage = "https://github.com/jifengs/LivePods" #工程的首頁(yè)
s.license = "MIT" #工程的證書(shū)
s.author = { "xxx" => "xxx@126.com" } #工程的作者
s.ios.deployment_target = "10.0" #工程的編譯版本
s.source = { :git => "https://github.com/jifengs/LivePods.git", :tag => "#{s.version}" } #工程的git地址
s.source_files = "Classes", "Classes/**/*.{h,m}" #工程需要引入的文件
s.exclude_files = "Classes/Exclude" #工程不需要引入的文件
s.public_header_files = "Classes/**/*.h" #工程需要暴露出來(lái)的頭文件
s.resources = "Resources/*" #工程需要引入的資源文件(圖片,xib等)
s.resource_bundles = {'Resources' => 'XXX.framework/Resources/XXX.bundle'} #工程需要引入的bundle
s.frameworks = "ImageIO" #工程依賴(lài)的framework
s.vendored_frameworks = [] #工程依賴(lài)的第三方framework
s.libraries = "iconv", "xml2" #工程依賴(lài)的library
s.vendored_libraries = [] #工程依賴(lài)第三方的library
s.requires_arc = true #工程是否用arc規(guī)則
rm ~/Library/Caches/CocoaPods/search_index.json
最后編輯于 :2022.10.12 13:37:48
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者