iOS创建多工程并且相互引用

业务需求模拟

公司需要开发一款学习类的app,针对不同的用户层级开放两个用户端:学生端、老师端。

项目分析

方法一(普通版)
新建俩个项目,一个是学生app,老师app
在开发的过程中,你会发现这俩个app有很多公共的模块,比如登录模块,用户中心模块.........
当你在学生端写完登录模块的时候,然后手动拷贝登录模块的代码到老师端,接着进行开发

-----来自菜鸟的阐述


方法二(改进版)
新建俩个项目,一个是学生app,老师app
把公共的模块组件化,在学生app,老师app分别我pod引用,省略了手动拷贝的操作。当公共组件更新的时候,分别在两个app项目端进行更新。

-----来自不那么菜的菜鸟的阐述


方法三(进阶版)
新建一个工作组workspace,在这个工作组上面新增学生project和老师project,两个工程公用一个工作组。同时工作组pod公共组件,俩project公用一套公共模块,这样可以及时更新。

-----来自具有逼格的老鸟的阐述


项目启动

方法一就不多做介绍了,

方法二中提及的公共组件的封装,欢迎去看我上一篇文章提到的公共组件封装的文章,以下是连接:
公共组件的封装

如果你已经看完了方法二中提及的文章,下面开始进行方法三的具体操作了。

1.创建工作组workspace

本地创建一个“MyProject”的文件夹
接着打开Xcode,File->New->Workspace

创建在“MyProject”的文件目录下,保存。

image.png

打开MyWorkspace工作组

image.png

打开之后你会发现是一个空的工作台


image.png

再接着让我们来创建两个用户端吧。
File->New->Project

image.png

保存在myworkspace工作组下

image.png

此时你会发现工作台下面有一个“StudentProject”的项目了


image.png

现在我们来看下项目结构

image.png

再接着创建“TeacherProject”
步骤如上,保存路径的时候 注意


image.png

创建之后 我们再来看看工作台

image.png

大功告成
一个工作台下面包含了两个工程。

image.png

将自制公共组件和第三方SDK导入项目中,俩工程都能调用公共组件模块和第三方SDK

首先打开终端,cd到“MyProject”目录下,创建Podfile文件


image.png

接着输入

source 'https://github.com/jiangxiaobin1011/JSpecs.git'    //自制组件库索引
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'   
workspace 'MyWorkspace.xcworkspace'    //工作台路径
project 'StudentProject/StudentProject.xcodeproj'     //主工程路径

def commonPods
     pod 'AFNetworking', '~> 3.1.0'        //共有第三方库申明
end

target 'StudentProject' do
  project 'StudentProject/StudentProject.xcodeproj'
  pod 'Masonry', '~> 1.0.2'   
  commonPods             
  pod 'JCategoryKit'      //自制组件库引用
end

target 'TeacherProject' do
  project 'TeacherProject/TeacherProject.xcodeproj'
  commonPods     
end

ps:拷贝的时候记得删掉“//+提示内容” ,不然pod识别不了

好了 接下来打开myworkspace

image.png

想要引用pod里的文件,记得在工程 buildsetting的user headr里面添加“$(PODS_ROOT)”

image.png

进阶:

尽量让两个工程不要互相依赖,互相解耦,这样的话 其中任何一个项目都能作为一个独立的项目隔离出来。也就是所谓的工程组件化

关于工程组件化的思想 推荐大家去看这篇文章

工程组件化

完结撒花,此处应该有掌声

你可能感兴趣的:(iOS创建多工程并且相互引用)