便于多项目统一管理,现简单介绍一下Workspace的基本用法,在介绍之前先来说下使用Workspace的好处:
1.一个工程环境管理多个项目或抽取共有资源(静态库、图片资源文件及代码工具类等),方便代码修改、共用及同步。
2.可以像在同一个工程里一样,直接点击方法名就能查看引用库项目的代码。
3.运行主项目时,编译器会自动帮你编译库文件。
接下来该说Workspace的使用了
创建Workspace工程
Xcode ->File - >New ->Workspace,创建工程并命名为TestWorkspaceObj。
创建Workspace工程
添加管理项目
打开Xcode创建主项目MainTestObj,附属项目OtherTestObj,完成调用OtherTestObj公用方法、静态库/framework公用方法及共享其图片资源。
1、将MainTestObj及OtherTestObj添加到TestWorkspaceObj中。
TestWorkspaceObj添加MainTestObj
TestWorkspaceObj中主副项目
2、主项目MainTestObj 调用OtherTestObj公用方法
主项目#import "TestViewController.h",发现找不到该头文件,原因是主副工程未添加相互引用关系。
(操作步骤:在主项目MainTestObj->Build Settings 里找到Header Search Paths,添加一项$(SRCROOT)/../OtherTestObj(也可以直接将文件夹OtherTestObj拖到里面自动生成路径),并且设置为recursive。)添加路径成功后同时导入#import <OtherTestObj/TestViewController.h>#import <OtherTestObj/TestViewController.h>即可。
文件互引用
调用[TestViewController shareTestVc]
调用成功
3、主项目MainTestObj 共享OtherTestObj图片资源,这里采用bundle管理图片资源。
添加Bundle:macOS->Bundle->Next
改变Base SDK: 由macOS->iOS
添加tree.jpg
添加run script到build parses中
shell脚本添加指定bundle资源到主工程
添加单个bundle
cp -R -f $BUILT_PRODUCTS_DIR/xxx.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
如果有多个bundle
cp -R -f $BUILT_PRODUCTS_DIR/*.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
这样bundle就可以正常打包到app中了
视图加载图片资源
调试结果
4、主项目MainTestObj 共享StaticLaSource资源。
将StaticLaSource->libStaticLaSource.a添加MainTestObj->MainTestObj->Build Phases->Link Binary With Libraries中
设置路径 $(BUILT_PRODUCTS_DIR)
#import <StaticLaSource/StaticLaSource.h> 调用test生效5、主项目MainTestObj 共享FrameworkSource资源。
将testFramework->testFramework.framework添加MainTestObj->MainTestObj->Link Binary With Libraries中
将testFramework->testFramework.framework添加MainTestObj->MainTestObj->General->Embedded Binaries中
#import "teztFramework/teztFramework.h" 调用returnVaule生效
以上简单介绍一些基本用法,不足之处望指正!













网友评论