本地组件化主要是通过在工程中创建framework
,利用cocoapods
的workspec
进行本地管理,不需要将项目长传到git
上,直接在项目中用framework
进行调用。
1.创建主工程
image.png集成
cocoapods
进行本地管理项目,并编辑好Podfile
文件,然后安装
pod init
pod install
image.png
2.创建模块
1.选择File
->New
->Project
->iOS
-> Framework
2.选择好
WorkSpace
和Group
,最好把Framework
放在主工程根目录下,不然后面的Podfile
执行会报错。image.png
3.把创建好的
Framework
的Build Settings -> Mach-O Type
修改为静态库Static Library
image.png
3.主工程调用Framework
1.在Capacity
中新建一个文件Swim.swift
2.在
Build Phases
-> Headers
-> Public
中将新建的文件添加为public
,这样主工程才能访问该文件image.png
3.在主工程,选择
target
-> Linked Binary With Libraries
中添加Capacity
,只需要build
主工程,Framework
能够自动联编image.png
image.png
4.主项目调用先
import Capacity
,然后调用如下image.png
4.使用cocoapods
管理三方依赖
假设需要在Capacity
中封装网络层代码,需要用到三方库Alamofire
,在Podfile
中进行如下修改
# 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
#网络
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
执行下pod install
网友评论