一同养成写作习惯!这是我参加「日新方案 4 月更文应战」的第15天,点击查看活动概况。
创立组件
运用CocoaPods
,可分为本地和长途两种方法搭建组件化工程
- 本地:经过项目中创立模块,利用
CocoaPods
的workspec
进行本地管理,不需要将项目上传git
,而是在项目的Podfile
中指定目录 - 长途:利用
CocoaPods
进行模块的长途管理,需要将项目上传git
。对公司项目而言,一般运用私有库
下面咱们以本地方法为例,搭建一个组件化工程
创立LGHomeModule
模块
pod lib create LGHomeModule
-------------------------
//对模块进行以下装备:
//工程类型
What platform do you want to use?? [ iOS / macOS ]
> iOS
//开发言语
What language do you want to use?? [ Swift / ObjC ]
> objc
//创立App测验项目
Would you like to include a demo application with your library? [ Yes / No ]
> yes
//供给frameworks的测验
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> none
//供给测验文件
Would you like to do view based testing? [ Yes / No ]
> no
//设置前缀
What is your class prefix?
> LG
装备完结后,生成以下工程:
进行组件的开发,真实的代码目录在Pods
项目的LGHomeModule
中,而LGHomeModule
是对组件进行测验运用
在组件中完结Home
模块的事务代码
在测验工程Example
目录下,履行pod install
打开工程,组件成功导入
三方和本地组件的依靠
三方结构
日常咱们开发的组件,有些功用会依靠于其他三方结构,此时咱们需要对其进行额外的装备
创立通用UI
组件LGCommonUIModule
pod lib create LGCommonUIModule
完结组件的事务代码,部分功用依靠于AFNetworking
、Masonry
结构
装备组件的Pod
文件,写入对三方结构的依靠
在测验工程Example
目录下,履行pod install
,解决三方结构的依靠问题
本地组件
除了三方结构的依靠,咱们的组件也会对基层的本地组件进行依靠,例如:分类和宏定义等
在LGCommonUIModule
插件中,对基层的公共组件LGMacroAndCategoryModule
进行依靠,并且代码中运用到插件中的分类和宏
在Pod
文件中,按照三方库的导入方法
s.dependency 'AFNetworking'
s.dependency 'Masonry'
s.dependency 'LGMacroAndCategoryModule'
s.prefix_header_contents = '#import "Masonry.h"','#import "UIKit+AFNetworking.h"','#import "LGMacros.h"'
- 如果公共组件在云端,当然不会有任何问题。但案例中,运用本地组件,这种导入方法一定会报错
导入本地组件,除了上述的装备之外,还需要在
Pods
项目中的Podfile
文件中,对公共组件的本地路径进行装备
以当前的Podfile
文件路径为根底,向上两层,找到LGMacroAndCategoryModule
本地组件
在测验工程Example
目录下,履行pod install
,解决本地组件的依靠问题