iOS 制作静态文件类库

第一步:创建工程:File —> New —> Targets —> Framework & Library —> Cocoa Touch Static Library  填写名称MakeStaticLib点击完成
 
第二步:创建新工程:File —> New —> OS X  —> Framework & Library —> Bundle 填写名称Resource点击完成,添加图片进去,编译,然后拷贝出生成的Resource.bundle文件,放到制作静态库工程中备用。
 
第三步:把需要打包到静态库里面的文件都丢到工程中去,调试保证能编译过去不报错。
 
第四步:在静态库工程中添加UIUtils类,添加几个方法。代码如下:
 
#define MYBUNDLE_NAME @ "Resource.bundle"
#define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME]
#define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]
 
NSString* getMyBundlePath( NSString * filename)
{
    NSBundle *libBundle = MYBUNDLE;
    if (libBundle && filename) {
        NSString *s = [[libBundle resourcePath] stringByAppendingPathComponent:filename];
        return s;
    }
    return nil ;
}
 
第五步:添加静态文件(.a)的关联头文件(.h)选择MakeStaticLib工程中的TARGETS中的MakeStaticLib —> Build Phases —> Copy File 点击“+”号,把你需要暴露的头文件添加进去。
 
第六步:点击当前的编译工程选项(选择模拟器旁边的编译工程选项)选择到MakeStaticLib,点击Edit Scheme —> Run —> info —> Build Configuration 选择Release。
 
第七步:选择Xcode的工具栏上的 Product  —> Build , 选择工程文件下的Products文件夹下面找到静态文件(.a)右击选择 Show in Find。
 
第八步:把Find 下面的 静态文件(.a)和 include 文件下面的所有头文件(.h)以及Resource.bundle文件拷贝到你新建的文件夹中,一般格式都是:StaticFile 包含include和Lib这两个文件夹,分别来存放静态文件(.a)和头文件(.h)以及Resource.bundle文件。至此已经完成了打包步骤。
 
 
注意事项:
 
1.如果你在静态库工程中使用了category,那么你可能会碰到链接问题,解决办法就是需要同时在生成静态库的工程和使用静态库的工程中使用“-all_load”编译选项,即在对应target的Build Settings中得Other Linker Flags 选项添加“-all_load”。注意:使用静态库的工程中是一定要加该编译选项的!
 
2.如果要使自己的静态库尽可能多的支持iOS的系统版本,应该在“iOS Deployment Target”这个选项中选择自己所需的iOS版本。
 
3.适配32位和64位设备,在新建的静态库工程,Build Setting中设置Build Active Architecture Only为NO,Valid Architectures添加armv7、armv7s。使用lipo -info  xxxx.a来查看静态包的详细信息,lipo -create 模拟器.a  真机.a -output 目标地址/最终.a  来生成模拟器和真机的通用静态文件。
posted @ 2015-01-30 17:34  心中的空白之地  阅读(214)  评论(0)    收藏  举报