美文网首页
workspace组件化

workspace组件化

作者: 咚咚嗒大人 | 来源:发表于2020-03-12 14:16 被阅读0次

一:创建功能模块
1、首先创建文件夹,文件夹下面创建一个workspace工程,再创建4个project工程

1__#$!@%!#__Pasted Graphic 1.png

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个功能模块

1__#$!@%!#__Pasted Graphic.png

为何要将功能模块单独创建一个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__#$!@%!#__Pasted Graphic.png

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对应模块即可。

参考文章:
https://www.jianshu.com/p/88a6d99cf953

相关文章

  • workspace组件化

    一:创建功能模块1、首先创建文件夹,文件夹下面创建一个workspace工程,再创建4个project工程 2、然...

  • [Blockly开发攻略2] 创建工作空间workspace

    1. 什么是Blockly的workspace workspace是Blockly中非常重要的对象,它是其他组件运...

  • IDEA RunDashboard设置

    categories: 设置tags: IDEA 在workspace.xml的RunDashboard组件下加入...

  • Xcode10.x工程适配的部分问题

    因为我们项目是一个Workspace,由若干个库组成(组件化比较碎),又涉及到海外和国内(存在很多差异性),整个项...

  • pod组件二进制开发示例

    建立组件工程 建立主workspace工程与组件的pod工程如(podLibTest) 多个模式共存 源码模式的p...

  • 封装组件-面向对象

    tab组件化tab组件化代码 图片曝光组件化图片曝光组件化代码 轮播组件化轮播组件化代码

  • Android组件化 - gradle配置(一)

    一、什么是组件化 什么是组件化呢? 组件化、插件化、模块化之间有什么区别呢? 组件化:每个组件都是独立的功能模块,...

  • Android:插件化

    插件化组件化 组件化与插件化的区别 组件化是Android自然提供的,例如分成lib,test组件。插件化是热更新...

  • iOS 组件化实战篇(私有库)

    前沿 本片文章主要讲解我们项目中为什么要组件化 组件化的好处 怎么使用组件化 怎么实现组件化 为什么要组件化 ...

  • iOS组件化

    iOS组件化 iOS组件化

网友评论

      本文标题:workspace组件化

      本文链接:https://www.haomeiwen.com/subject/iumujhtx.html