Xcode多个子工程结合联编开发SDK

Xcode版本:Version 14.3 (14E222b)

这是啥?

chat:
Xcode 多个子工程结合联编可以用于开发 SDK,这种开发方法是在一个主工程中包含多个子工程,每个子工程代表 SDK 中不同的模块,每个子工程都可以独立编译。通过在主工程中设置这些子工程作为依赖项,自动将所有子工程编译成一个完整的SDK框架,从而方便SDK的使用。

使用多个子工程可以简化开发流程和管理,通过独立的子工程,可以分别测试和调试子部件,易于单元测试和代码维护。而通过联编这些子工程,可以将每个模块的工程合并成一个大的二进制文件,而不是需要单独的库。

这种方法可以极大的提高开发效率,也可以降低维护成本,特别是在团队开发中很实用。

大概意思就是说我们在写项目的时候,比如我们要写一个教务系统,有教师端和学生端两个不同端口,但是他们之间有很多功能都是重复的,为了减少工作量,我们可以使用多个子工程联合开发SDK。它可以让我们在一个项目里调用另一个项目的东西

新建一个Workspace

打开Xcode,File->new->Workspace
Xcode多个子工程结合联编开发SDK_第1张图片
给它起个名,我叫它MyWorkspace。
然后把它存在自己想要的位置上,我把它存在了桌面上。
Xcode多个子工程结合联编开发SDK_第2张图片
桌面就多出来了我刚才创建的东西
Xcode多个子工程结合联编开发SDK_第3张图片

给Workspace里面加项目

第一种方法,直接在workspace里创建一个项目

我们打开刚才创建的Workspace
File->new->project
Xcode多个子工程结合联编开发SDK_第4张图片
给他起个名
Xcode多个子工程结合联编开发SDK_第5张图片
注意把它Add to:MyWorkspace
Group:MyWorkspace
Xcode多个子工程结合联编开发SDK_第6张图片
然后在刚才的MyWorkspace文件里就能看到我新建的MyAppOne
Xcode多个子工程结合联编开发SDK_第7张图片

第二种方法,创建一个project然后将它添加到MyWorkspace中

打开Xcode->File->new->Project->iOS->AppXcode多个子工程结合联编开发SDK_第8张图片
给他起个名
Xcode多个子工程结合联编开发SDK_第9张图片
然后创建它,打开它
Xcode多个子工程结合联编开发SDK_第10张图片
然后打开我们的MyWorkspace
File->Add File To…
Xcode多个子工程结合联编开发SDK_第11张图片
然后选择我们刚才创建的工程的.xcodeproj
Xcode多个子工程结合联编开发SDK_第12张图片

自定义一个SDK工程添加到Workspace,实现联编

打开Myworkspace->File->new->project
Xcode多个子工程结合联编开发SDK_第13张图片
选择iOS->Staci Library
Xcode多个子工程结合联编开发SDK_第14张图片
给他起个名,我起了MySDK
Xcode多个子工程结合联编开发SDK_第15张图片
然后Add to:MyWorkspace
Group:MyWorkspace
Xcode多个子工程结合联编开发SDK_第16张图片
然后我们就能看到三个不同的项目在一个Workspace里了
Xcode多个子工程结合联编开发SDK_第17张图片

如何使用?

比如我们现在的AppOne要用到MySDK里面的东西

先给MySDK里写一个方法

//

#import <Foundation/Foundation.h>

@interface MySDK : NSObject
- (void)MyFristSDKAction;
@end




#import "MySDK.h"

@implementation MySDK
- (void)MyFristSDKAction {
    NSLog(@"MyFristSDKAction~~~~~~~~~~~~~~");
}

@end

将MySDK的.a文件添加到MyAppOne中

MyAppOne->General->Frameworks,Libraries,and Embedder Content
点击+
Xcode多个子工程结合联编开发SDK_第18张图片
选择libMySDK.a
Xcode多个子工程结合联编开发SDK_第19张图片
然后可以看到这个东西已经被添加进来了
Xcode多个子工程结合联编开发SDK_第20张图片

设置Build Settings里面的Library Search Paths路径

MyAppOne->Build Settings->All
搜索seaXcode多个子工程结合联编开发SDK_第21张图片
这个就是需要的东西
Xcode多个子工程结合联编开发SDK_第22张图片
我们需要在Library Search Paths和User Header Search Paths中添加东西
点击这一行,然后出现了一个加号,然后点击加号
Xcode多个子工程结合联编开发SDK_第23张图片
将MySDK.h的路径粘贴上去
Xcode多个子工程结合联编开发SDK_第24张图片
User Header Search Paths也是一样
Xcode多个子工程结合联编开发SDK_第25张图片
如下就是添加成功了
Xcode多个子工程结合联编开发SDK_第26张图片

使用它

我现在在AppOne的ViewController里试试使用它

//

#import "ViewController.h"
#import <MySDK/MySDK.h>
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    MySDK *sdk = [[MySDK alloc] init];
    [sdk MyFristSDKAction];
    // Do any additional setup after loading the view.
}


@end


我们运行MyAppOne试试
Xcode多个子工程结合联编开发SDK_第27张图片
可以看到在AppOne里成功调用了MySDK里的东西
Xcode多个子工程结合联编开发SDK_第28张图片
git地址

你可能感兴趣的:(xcode,macos,ide)