开发IOS程序时我们使用的是Objective-c语言,Objective-c语言有.h .m文件组成。静态库可以将.m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法。IOS静态库适合去制作第三方提供的SDK。

下面讲解如何在Xcode5上生成静态库。

1、点击Xcode创健一个新的工程。选择Framework&Library,再选择Cocoa Touch Static Library。直接next去建立一个工程,工程名称自己定义好。



IOS <wbr>使用Xcode5制作静态库详解


2、我们添加一个弹出提示框的方法,简化弹出的代码,将主要的码代放到这个类实现,


#import 
@interfaceMyAlertView: UIAlertView<</span>UIAlertViewDelegate>
//只弹出提示文字的确定按扭,不执行代理方法
//@param   mesageString   提示的肉容。
+ (void)showMesage:(NSString *)mesageString;

@end


#import "MyAlertView.h"

@implementationMyAlertView

//只弹出提示文字的确定按扭,不执行代理方法
//@param   mesageString   提示的肉容。
+ (void)showMesage:(NSString *)mesageString
{
  
  UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:nil
                                            message:mesageString
                                           delegate:nil
                                   cancelButtonTitle:@"确定"
                                   otherButtonTitles:nil];
  [alertView show];
  [alertView release];   
}

@end



3、生成静态库

创健好方法后,现在我们开始制作静态库。静态库的制作方法可分为两种:第一种为在真机上使用的静态库,第二种为在模拟器中使用的静态库。这两种方法制作起来有点小区别,一定要注意。

我们开始从模拟器入手。

如图,先选择模拟器iPhone6.0,如果你的Xcode5没有下载ios6的话只能选择ios7。然后Build工程,构建工程完毕后libSDKLib.a静态库文件就生成了出来。

注意未编译前为红色:

IOS <wbr>使用Xcode5制作静态库详解

编译后为黑色:

IOS <wbr>使用Xcode5制作静态库详解


打开我们的工程文件找到刚才生成的文件,这样在模拟器中使用的静态库就生成好了。

IOS <wbr>使用Xcode5制作静态库详解

4、静态库的调用

调用静态库的方法如下:创健一个新的工程,调用我们刚才生成好的静态库,

将我们生成的静态库和生成静态中用到类的头文件导入到新健的工程中:

IOS <wbr>使用Xcode5制作静态库详解


调用的方法如下




#import
#import"MyAlertView.h" //导入头文件

@implementation

- (void)viewDidLoad
{
  [superviewDidLoad];
  
  //直接调用静态库中的方法
  [MyAlertView showMesage:@"静态库测试"];
}


@end






运行结果

IOS <wbr>使用Xcode5制作静态库详解


到这一步我们已经将静态库顺利的应用在模拟器当中,


5.生成真机模式下的静态库

我们再次回到制作静态库的工程当中,如图打开工程后编译环境选择IOSDevice,然后构建构成即可完成。

IOS <wbr>使用Xcode5制作静态库详解

打开工程文件,在Debug-iphoneos/ libMyAlertView.a 就是可以在真机上编辑的静态库。

IOS <wbr>使用Xcode5制作静态库详解


模拟器静态库只能运行在模拟器上而真机静态库也只能运行在真机上,这样就比较麻烦,通过下面的步骤将两个静态库合成一个,这样在模拟器和真机上都能用了。


6、合并.a文件,制作通用静态库

这一步在终端进行

命令如下:

lipo -create/Users/jim/Desktop/MyAlertView/Build/Products/Debug-iphoneos/libMyAlertView.a /Users/jim/Desktop/MyAlertView/Build/Products/Debug-iphonesimulator/libMyAlertView.a  -output /Users/jim/Desktop/libMyAlertView.a

 
  
将/Users/jim/Desktop/MyAlertView/Build/Products/Debug-iphoneos/libMyAlertView.a /Users/jim/Desktop/MyAlertView/Build/Products/Debug-iphonesimulator/libMyAlertView.a 替换成你的路径。
将/Users/jim/Desktop/libMyAlertView.a替换成合并后的路径。

这样合并后的静态库就可以在模拟器和真机上运行了。