组件化——本地组件化

本地组件化主要是通过在工程中创建framework,利用cocoapodsworkspec进行本地管理,不需要将项目长传到git上,直接在项目中用framework进行调用。

1.创建主工程

image.png

集成cocoapods进行本地管理项目,并编辑好Podfile文件,然后安装

pod init
pod install
image.png

2.创建模块

1.选择File ->New ->Project ->iOS -> Framework

image.png

2.选择好WorkSpaceGroup,最好把Framework放在主工程根目录下,不然后面的Podfile执行会报错。
image.png

3.把创建好的FrameworkBuild Settings -> Mach-O Type修改为静态库Static Library
image.png

3.主工程调用Framework

1.在Capacity中新建一个文件Swim.swift

image.png

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

image.png

你可能感兴趣的:(组件化——本地组件化)