做了几个App之后,想把工作过程中的一些公共部分抽取出来,便于以后复用,提高效率。

今天试了一下在 Xcode 中使用静态库的方法,发现还有点小麻烦啊,特将过程记录一下,省得以后忘了。


运行环境:Xcode 4.3 Build 4D1002


1. 准备工作:

1) 创建一个名为:StaticLibTest 的 workspace;

2) 创建一个名为:CallLibApp 的 Single View Application;

3) 创建一个名为:MyLib 的 Cocoa Touch Static Library,Group 选择 StaticLibTest;


2. Lib 设置:

1) Scheme 中选择“MyLib > iOS Device”,然后编译;

此时在 Products 文件夹中的 libMyLib.a 由红变黑;

2) 进入命令行

1. cd /Users/xxx/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos  
2. lipo -info libMyLib.a

输出:


1. Non-fat file: libMyLib.a is architecture:armv7



3) 选中 MyLib.h,在 Target Membership 中选中 Mylib,并将属性修改为 Public,重新编译;

此时在 Debug-iphoneos 文件夹中会增加一个 usr/local/include 的文件夹,其中存放着 MyLib.h 文件;

4) 在 MyLib 的工程属性中,选择 Targets - MyLib - Build Settings 然后选中“Public Headers Folder Path”将属性修改为:“$(TARGET_NAME)”,如下图所示:

5) 重新编译,此时在 Debug-iphoneos 文件夹中会增加一个名为 MyLib 的文件夹,MyLib.h 存放在其中,这样方便应用程序调用。



说明:以上设置只要按照蓝色字体的三个步骤就可以了,其他部分仅供参考。


3. App 设置:

1) 在 App 的 Targets - Build Phases - Link Binary With Libraries 中增加 libMyLib.a 的静态库;

下面到了关键的步骤了,呵呵,就是如何让 App 能够找到 .h 文件。

2) 在 App 的 Build Settings 中找到 “User Header Search Paths”,双击,并输入:$(BUILT_PRODUCTS_DIR) 如下图所示:

记得要勾上“Recursive”;


搞定收工。龙年大吉!!!


做了几个App之后,想把工作过程中的一些公共部分抽取出来,便于以后复用,提高效率。

今天试了一下在 Xcode 中使用静态库的方法,发现还有点小麻烦啊,特将过程记录一下,省得以后忘了。


运行环境:Xcode 4.3 Build 4D1002


1. 准备工作:

1) 创建一个名为:StaticLibTest 的 workspace;

2) 创建一个名为:CallLibApp 的 Single View Application;

3) 创建一个名为:MyLib 的 Cocoa Touch Static Library,Group 选择 StaticLibTest;


2. Lib 设置:

1) Scheme 中选择“MyLib > iOS Device”,然后编译;

此时在 Products 文件夹中的 libMyLib.a 由红变黑;

2) 进入命令行

1. cd /Users/xxx/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos  
2. lipo -info libMyLib.a

输出:

1. Non-fat file: libMyLib.a is architecture:armv7



3) 选中 MyLib.h,在 Target Membership 中选中 Mylib,并将属性修改为 Public,重新编译;

此时在 Debug-iphoneos 文件夹中会增加一个 usr/local/include 的文件夹,其中存放着 MyLib.h 文件;

4) 在 MyLib 的工程属性中,选择 Targets - MyLib - Build Settings 然后选中“Public Headers Folder Path”将属性修改为:“$(TARGET_NAME)”,如下图所示:

5) 重新编译,此时在 Debug-iphoneos 文件夹中会增加一个名为 MyLib 的文件夹,MyLib.h 存放在其中,这样方便应用程序调用。



说明:以上设置只要按照蓝色字体的三个步骤就可以了,其他部分仅供参考。


3. App 设置:

1) 在 App 的 Targets - Build Phases - Link Binary With Libraries 中增加 libMyLib.a 的静态库;

下面到了关键的步骤了,呵呵,就是如何让 App 能够找到 .h 文件。

2) 在 App 的 Build Settings 中找到 “User Header Search Paths”,双击,并输入:$(BUILT_PRODUCTS_DIR) 如下图所示:

记得要勾上“Recursive”;


搞定收工。龙年大吉!!!