在开发项目的过程中,会使用到全局的宏定义,公共开发的组件,供项目内部使用,随着业务的不断增长,可以封装的公共组件越来越多,那么有没有好的方式来统一管理这些组件呢,这就是我今天要和大家分享的内部库的创建和使用。好了,直接进入到今天的主题,如何创建和管理内部库。
创建内部公共功能组件库
我会以自己项目中使用到的一个逆时针进度条来举例,说明如何去创建和使用一个内部公共功能的组件库.具体操作步骤如下:
使用gitee创建一个项目,并clone到本地
截屏2021-03-22 上午11.31.08.png
进入到项目根目录下,创建Frameworks文件夹,进入到Frameworks文件夹下,创建PSPublibs文件夹,然后在PSPublibs文件夹下分别创建PSPublibs.podspec,LICENSE,src,assets文件夹.接下来分别介绍这四个文件夹的用途
PSPublibs.podspec
PSPublibs.podspec是PSPublibs库的Pod描述文件,用于描述该Pod库的一个特定版本信息。它存放在CocoaPods的中心Repo供使用者查找和使用。
随着这个
Pod库的迭代,CocoaPods的中心Repo会为每个特定的Pod版本存放一个对应的podspec文件。每个podspec文件都包括Pod对应Repo的URL、源码存放的位置、所支持的系统平台及其系统最低版本号,以及Pod的名字、版本号和描述等信息。
PSPublibs.podspec中的相关配置如下
Pod::Spec.new do |s|
s.name = 'PSPublibs.podspec'
s.version = '1.0.0'
s.summary = '项目中自用的公共组件'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
Contains the decomponents for Design System.
DESC
s.homepage = 'https://gitee.com/nbns/pspubliclib'
s.license = 'MIT'
s.author = 'MIT'
s.source = { :path => '.' }
s.ios.deployment_target = '13.0'
s.source_files = 'src/**/*'
# s.resources = 'assets/**/*'
end
LICENSE
LICENSE是许可证文件,如果是开源库,我们必须严格选择一个许可证,这样才能方便其他开发者使用我们的库。
src
所有源代码文件都存放在
src文件夹下面
assets
存放图片、
Xib和Storyboard等资源文件
将封装好的内部组件库拖至src文件夹下,按照对应组件的名称分类成不同的文件夹
截屏2021-03-22 下午12.00.01.png
使用pod lib lint库检测内部库配置文件是否正确
- 需要注意的是,
CocoaPods对内部库的检测存在一个Bug, 会显示下面的警告:
Missing primary key for `source` attribute
由于我们创建的是内部库,所以可以忽略这个警告,只要没有其他错误信息就可以了。
到这里,内部组件库的创建就已经完成了,接下来,看看如何在项目中使用内部库
使用内部公共功能组件库
由于是内部组建库,所以需要我们创建的项目和
Frameworks在同一层级
- 创建一个
Xcode项目,保证该项目和Frameworks在同一层级,文件目录如下:
截屏2021-03-22 下午12.18.42.png
-
cd到该目录文件,创建pod文件,具体如下:
platform:'ios',13.0
target 'pspubliclib'do
pod 'PSPublibs', :path => './Frameworks/PSPublibs', :inhibit_warnings => false
end
- 执行
pod install命令,待下载完成后,打开项目,查看本地组件库是否可以引用到,如果可以引用到,就可以了.
至此,内部库的创建和使用都已经讲解完了,如果有问题,欢迎到评论去留言。











网友评论