Xcode6 创建静态库

同一工程下的分层项目:使用静态库来创建,通过 .a 文件来连接工程之间的联系

File-->New-->Project  选择 CoCoa Touch Static Library (静态库)

填写名称 LibraryDemo

创建完成的目录

在 LibraryDemo.h 里面写入可以测试的代码 

#import <Foundation/Foundation.h>
@interface LibraryDemo : NSObject
-(void)printHelloWorld;
@end

LibraryDemo.m 代码

#import "LibraryDemo.h"
@implementation LibraryDemo
-(void)printHelloWorld{
   NSLog(@"HelloWorld");
}
@end

以上是 LibraryDemo 工程的代码

现在要准备做些设置,此时的静态库还没有准备

选择工程 LibraryDemo 1 --> TARGETS --> 2 LIbraryDemo -->3 Build Phases 

 接下来,点击4 "+" 号 选择 New Headers Phase

 选择 Hearders 点击" + "

选择我们需要对外的头文件(LibraryDemo.h) 

添加进来,后再把 LibraryDemo.h 文件拖到 Public

然后,我们编译下 LibraryDemo 工程.

编译成功 , Succeeded

我们创建一个 MyAppDemo 工程

New --> Project --> Application --> 选择 SingleViewApplication 模板

 

MyAppDemo--> TARGETS --> 选择 MyAppDemo --> Build Phass 选择 Link Binary With Libraries

添加,我们刚才 LibraryDemo 工程的.a 文件

工程下面就会出现 libLibraryDemo.a 文件

选择 ViewController.m 我们来测试下代码

这里出现了,头文件无法提示,说明我们头文件并没有在 MyAppDemo 工程下

接下来我们设置MyAppDemo

选择 TARGETS -->MyAppDemo 

在 BuildSettings 搜索 User Header Search Paths 

在里面添加 $(BUILT_PRODUCTS_DIR) 并设置 recursive

完成后

现在代码可以检索到了

这是我们 LibraryDemo 工程下的文件,并且运行可以打印出 HelloWorld

静态库创建完成.

那么接下来,我们来看看,静态库之间如何关联并在工程上使用

我们按照 LibraryDemo 的步骤创建一个 LibraryDemo2

创建完成的工程目录结构

设置LibraryDemo2 工程 已在上面步骤讲述过,这里不在陈述

设置 BuildSettings 添加 搜索头文件$(BUILT_PRODUCTS_DIR)

接下来,修改 LibraryDemo2.h 代码

然后我们在 LibraryDemo2.m 重写 LibraryDemo.h 的 printHelloWorld

 

好了,我们再编译下.

并把libLibraryDemo2.a 文件添加如图

注意:如果 LibraryDemo2 文件找不到,请确认,你是否编译过 LibraryDemo2 或 是否编译出错.

现在我们修改下 ViewController.m 代码,检测下是否运行正常

现在的项目分层是:

MyAppDemo   

LibraryDemo2

LibraryDemo

MyAppDemo 做表现层可以分成两层 iPhone / iPad 

LibraryDemo2 可以做业务层

LibraryDemo 是最底层.可以做数据访问层

 

原文地址:https://www.cnblogs.com/Overbord/p/4463224.html