做了几个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”;
搞定收工。龙年大吉!!!