一:创建功能模块
1、首先创建文件夹,文件夹下面创建一个workspace工程,再创建4个project工程
2、然后打开workspace文件,找到左下角的 ➕ ,
选择“Add Files to “xxx”…, 选择添加模块的xcodeproj文件即可。
Pasted Graphic 2.png Pasted Graphic 3.png
TestBasis组件:
将工具类直接拖放到TestBasis项目中,再创建TestBasis.podspec文件,引入对应的具体类,因为所有功能模块都依赖这个组件,所以pod install 后就会引入到pod中。
二:创建项目的podspec文件
pod spec create 《spec文件名不加后缀 》
spec文件的格式,网上搜索查阅
如果不同的podspec之前出现依赖关系,例如demo三个功能模块依赖TestBasis模块,写法为:
a.dependency 'TestBasis’ #模块名
或者依赖base具体的小模块的写法为:
a.dependency 'TestBasis/TestBasis/BaseSDK‘ #模块名/模块别名/别名小类…
引用Development Pods模块类:
import 模块名 #否则无法调用
我创建了4个spec,每个podspec文件相当于一个模块。一个基础base模块,3个功能模块
为何要将功能模块单独创建一个podspec而不是在一个里面?
因为当主项目pod子模块时,会以一个podspec文件为一个模块,如果功能模块都放在一个podspec里面,那么他们在主项目中属于在一个模块下。但是在功能模块的workspace中,功能模块是独立的在不同的模块中,这就会导致kCTMediatorParamsKeySwiftTargetModuleName 对应的value(模块名称)出现不确定的问题。
创建好的podspec文件后,打开workspace,同导入组件的方法,将podspec导入到workspace中。
三:创建Podfile文件
1)终端中,cd 到项目总目录
2)接着上一步,终端输入 vim Podfile
3)键盘输入 i,进入编辑模式,输入
4)输入内容:
workspace 'ydRoute.xcworkspace' #项目包含了一个名为ydRoute的workspace
platform :ios, '11.0'
inhibit_all_warnings!
use_frameworks!
install! 'cocoapods', :deterministic_uuids => false
source 'https://github.com/dongMan/dxjRouter.git'
source 'https://github.com/CocoaPods/Specs.git'
target 'TestA' do project 'TestA/TestA.xcodeproj'
pod 'TestBasis', :path => "TestBasis.podspec" #pod ‘模块名/模块小名/模块小小名…‘, :path => “模块.podspec"
end
5)然后按Esc
6)按住shift键的同时按住冒号键(:),然后输入wq
7)在当前工程目录下输入 pod install
这时候install很难一次成功,很多问题都是出在podspec引入的结构、依赖关系不对,根据提示修改。。。
四:上传项目到git
1、在git创建space,复制ssh地址
2、打开终端,cd到项目根目录
cd 需要上传的项目根目录
3、初始化本地仓库
git init
4、添加目标文件至本地仓库
git add .
5、提交
git commit -m “提交注释”
6、关联远程仓库,其中origin后面是github上需要关联的仓库网址。
git remote add origin ssh地址
7、git push origin master
以上步骤就是创建组件模块的全部,接下来再创建主工程就可以了,在主工程podfile中pod对应模块即可。
网友评论