欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Xcode创建多个工程协同开发

程序员文章站 2022-06-22 12:24:24
今天研究了一下在Xcode中创建多个工程,达到模块化的目的的同时,实现多个相似项目的协同开发,最主要的是可以实现多工程连编。项目的效果如下: 接下来创建一个这样的项目,以及他们之间的通信 1.建一个文件夹MyProject(这是本人采用的文件夹) 2.在MyProject文件夹下创建一个工作空间My ......

今天研究了一下在Xcode中创建多个工程,达到模块化的目的的同时,实现多个相似项目的协同开发,最主要的是可以实现多工程连编。项目的效果如下:

Xcode创建多个工程协同开发

接下来创建一个这样的项目,以及他们之间的通信

1.建一个文件夹MyProject(这是本人采用的文件夹)

2.在MyProject文件夹下创建一个工作空间MyWorkSpace

3.在工作空间MyWorkSpace创建一个项目MyApp01添加到MyWorkSpace

4.创建静态库MyAccountSDK添加到MyWorkSpace工作空间下,实现联编。

1.创建一个工作空间MyWorkSpace

在Xcode里面,创建一个工作空间MyWorkSpace,并将其放下MyProject文件夹下(名字随便命名),具体如下:File->New->Workspace

Xcode创建多个工程协同开发

创建完工作空间MyWorkSpace后的工程如下:

Xcode创建多个工程协同开发

这样我们的工作空间就创建完毕了,接下来在MyWorkSpace工作空间下添加工程和静态库.a

2.在工作空间MyWorkSpace下添加工程MyApp01

在工作的空间的Xcode文件夹中,File->New->Project,然后注意要指定Workspace为你创建的MyWorkSpace工作空间下,这样MyApp01工程就添加到MyWorkSpace中了

Xcode创建多个工程协同开发

选择Single View App,然后输入工程名字

Xcode创建多个工程协同开发

输入工程名称,本项目使用MyApp01(名称随意),如下图

Xcode创建多个工程协同开发

将工程添加到MyWorkSpace工作空间下,如下图:

Xcode创建多个工程协同开发

3.使用第2步可以继续往MyWorkSpace中添加其他工程,下面不在赘述,工作空间MyWorkSpace又创建了MyApp02工程,这样实现了Xcode同时管理了两个工程,MyApp01和MyApp02,效果如下:

Xcode创建多个工程协同开发

 

4.建立一个静态库.a添加到MyWorkSpace工作空间下,实现连编

项目使用多工程的目的不在于可以创建多个项目,而是在于可以实现多个工程的连编。下面我们创建一个名为MyAccountSDK的静态.a库,然后将其添加到工作空间MyWorkSpace中

Xcode创建多个工程协同开发

选择Cocoa Touch Static Library

Xcode创建多个工程协同开发

步骤类似第2步骤,这里不在详细赘述

Xcode创建多个工程协同开发

创建后的项目结构如下:

Xcode创建多个工程协同开发

接下来在MyAccountSDK中MyAccountSDK类中创了一个类方法

+ (void)sayHelloWorldFromProjectName:(NSString *)projectName;

,然后分别在MyApp01和MyApp02工程中调用该类方法。

Xcode创建多个工程协同开发

此时在MyApp01的ViewController中导入MyAccountSDK类,并调用类方法+ (void)sayHelloWorldFromProjectName:(NSString *)projectName;编译你会发现报错,提示MyAccountSDK文件不存在

Xcode创建多个工程协同开发

解决办法:

Xcode创建多个工程协同开发

此时在编译,你会发现还会报错,提示没有找到sayHelloWorldFromProjectName方法

Xcode创建多个工程协同开发

解决办法如下:

Xcode创建多个工程协同开发

选择刚才添加到MyWorkSpace工作空间的静态库.a文件,即libMyAccountSDK.a

Xcode创建多个工程协同开发 

注意(在运行工程之前要先编译一个静态库.a)要不会报错,提示xxxx.a文件找不到,此时再次编译,你回奇迹般的运行起来了,下面是见证奇迹的时刻,运行结果如下:

 

Xcode创建多个工程协同开发

 

小结:

上述截图中调用MyAccountSDK类中的类方法sayHelloWorldFromProjectName时,细心的你会发现忘记传参数了,笔误啊,这里就不该截图了,望见谅,大家注意啊,否则会一直报错,如果项目中使用到了Framework时,需要在工程中Build Setting->Framework Search Path中配置Framework中所在的静态库.a路径,如下图:

Xcode创建多个工程协同开发

 

排版不是很美观,不喜勿喷啊!