一.首先将资源文件打包成bundle 新建工程:File -> New -> Project... -> OS X -> Framework & Library -> Bundle 我们必须借助于OS X,因为iOS框架中没有创建Bundle的模板 填写项目名称 保存位置 其实本无需这么麻烦,bundle的本质是一个目录,我们完全可以创建一个文件夹,把需要封装的资源文件拷贝至该目录下,将其改成后缀名为bundle即可,然后就可以使用NSBundle提供的接口访问其内部…
一.新建bundle 前2篇文章介绍了iOS 最新framework和.a静态库制作及使用全解   iOS 工程套子工程,主工程和framework工程或.a library静态库工程联调 我现在是在主工程的子工程里进行,当然你在创建静态库工程(子工程)的时候也可以.前面我是懒得再建工程了,接着现成主工程套子工程的项目. 1.按下图步骤操作…
问题描述 一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的. #if TARGET_IPHONE_SIMULATOR #define SIMULATOR 1 #elif TARGET_OS_IPHONE #define SIMULATOR 0 #endif 但是宏是预编译时发生作用的,那么在静态库中是否还能够使用宏定义来区分模拟器与真机? 分析思路 宏定义确实是预编译时发生作用的,但是静态库编译出来的.a文件通常是分为模拟器与真机两个的,及时通过lipo合并为fat.a文件,实际运…
Xcode7 中创建静态库:.a 和 .framework 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking (2)闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现 主要分为:静态库.动态库 二.静态库和动态库 1.静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .…
上一篇 我们演示了了如何创建自己的静态库,最终生成多个.a文件,根据需要引用工程就可以直接使用静态库了,但是有个很麻烦的问题,模拟器用的库和真机的不是同一个,当我们切换的时候需要更换静态库,有两种方式可以改善这个问题 一.合并静态库 lipo –create Release-iphoneos/libsqlcipher.a Release-iphonesimulator/libsqlcipher.a –output libsqlcipher.a 合并后的.a库就可以通用了 二.配置工程库路径 配置…
YHDeveloperTools iOS项目开发常用功能静态库 查看源码 功能方法: 1.字符检查 [NSString checkStringWithType:Email andTargetString:@"1311" resultBlock:^(BOOL result, NSString *message) { NSLog(@"result =%@ message = %@",result?@"验证成功!":@"验证失败!"…
问题: 之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的.可是突然有个想法.由于有非常多參数的配置是在一个plist文件里的.尽管也知道这是一个plist文件,可是想想和图片资源还是有一定差别的.所以就尝试着是否能把plist打进静态库中. 分析: 1. 创建了一个简单的生成静态库的功能,然后公开了一个接口.用来输出读取plist文件的结果. 2. 创建一个简单的project,来使用上一步生成的.a文件,然后调用那个公开的接口. 3. 结果是无法读取,输出为nul…
最近在开发项目时编译三方.a时出现了冲突,原因是存在duplicate symbol. <1>模拟器编译时,应用的即时通讯模块采用的三方库(容联云),和视频监控模块采用的三方库(海康威视)之间有冲突,无法编译通过. <2>真机编译时,假如对other linker flags设置为-ObjC,海康威视自身的两个.a文件存在冲突,假如不设置,CorePlot框架运行时会出现“selector not recognized”然后应用崩溃. 我真是头都大了啊…… 可以看到在针对模拟器架构…
众所周知音乐是iOS的重要组成播放,无论是iPod.iTouch.iPhone还是iPad都可以在iTunes购买音乐或添加本地音乐到音乐 库中同步到你的iOS设备.在MediaPlayer.frameowork中有一个MPMusicPlayerController用于播放音乐库中的 音乐. 下面先来看一下MPMusicPlayerController的常用属性和方法: 属性 说明 @property (nonatomic, readonly) MPMusicPlaybackState play…
Class myClass = NSClassFromString("StaticLibyClassName"); StaticLibyClassName是从静态库中实例化一个Class,需要在bulid settings中的Other Linker Flags中添加“-ObjC"标识.否则 myClass 为nil. 还有种坑爹的情况,Build Phases 中没有对应的类.m 文件,当从外部拖入文件时候,虽然勾选了 copy,编译也没有报告错误,但...不说了,加进对应…