本地組件化主要是通過在工程中創(chuàng)建framework
蜓席,利用cocoapods
的workspec
進(jìn)行本地管理魏割,不需要將項(xiàng)目長傳到git
上,直接在項(xiàng)目中用framework
進(jìn)行調(diào)用忌堂。
1.創(chuàng)建主工程
image.png
集成
cocoapods
進(jìn)行本地管理項(xiàng)目颂暇,并編輯好Podfile
文件,然后安裝
pod init
pod install
image.png
2.創(chuàng)建模塊
1.選擇File
->New
->Project
->iOS
-> Framework
image.png
2.選擇好
WorkSpace
和Group
窗骑,最好把Framework
放在主工程根目錄下女责,不然后面的Podfile
執(zhí)行會(huì)報(bào)錯(cuò)。image.png
3.把創(chuàng)建好的
Framework
的Build Settings -> Mach-O Type
修改為靜態(tài)庫Static Library
image.png
3.主工程調(diào)用Framework
1.在Capacity
中新建一個(gè)文件Swim.swift
image.png
2.在
Build Phases
-> Headers
-> Public
中將新建的文件添加為public
创译,這樣主工程才能訪問該文件image.png
3.在主工程抵知,選擇
target
-> Linked Binary With Libraries
中添加Capacity
,只需要build
主工程软族,Framework
能夠自動(dòng)聯(lián)編image.png
image.png
4.主項(xiàng)目調(diào)用先
import Capacity
刷喜,然后調(diào)用如下image.png
4.使用cocoapods
管理三方依賴
假設(shè)需要在Capacity
中封裝網(wǎng)絡(luò)層代碼,需要用到三方庫Alamofire
互订,在Podfile
中進(jìn)行如下修改
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
inhibit_all_warnings!
use_frameworks!
#配置workspace路徑
workspace 'Fish.xcworkspace'
#######第三方依賴########
#公有
def workspace_pods
pod 'SwiftyJSON'
end
#主工程
def project_only_pods
pod 'SnapKit'
end
#網(wǎng)絡(luò)
def network_layer_pods
pod 'Alamofire'
end
########組件###########
target 'Capacity' do
project 'Capacity/Capacity.xcodeproj'
workspace_pods
network_layer_pods
end
target 'Fish' do
# Comment the next line if you don't want to use dynamic frameworks
# Pods for Fish
workspace_pods
project_only_pods
network_layer_pods
end
執(zhí)行下pod install
image.png