在制作iphone静态库中并不能包含资源文件,虽然我们将资源文件(.png文件)拷贝到静态库工程中,但实际上这些.png是不会添加到target的,也就是说编译结果中并不包含这些资源,因此如果此时调用静态库,所有的资源(字符串、图片)都是缺失的。
我们可以把资源建立成单独的束(Bundle)。
新建工程“ Mac OS X -> Framework & Library -> Bundle ”,命名为:yhyLibraryBundle。
然后把上面.png文件拷进Resouces中去。编译,生成yhyLibraryBundle.bundle文件。
返回静态库工程,新建一个类:Utils 。
编辑Utils.h:
[pre]
- #define MYBUNDLE_NAME @ "yhyLibraryBundle.bundle"
- #define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME] #define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]
- NSString * getMyBundlePath( NSString * filename);
[/pre]编辑Utils.m:
[pre]
- #import "Utils.h"
- NSString* getMyBundlePath( NSString * filename) {
- NSBundle * libBundle = MYBUNDLE ; if ( libBundle && filename ){
- NSString * s=[[libBundle resourcePath ] stringByAppendingPathComponent : filename]; NSLog ( @"%@" ,s);
- return s; }
- return nil ; }
[/pre]函数getMyBundlePath可以取得束yhyLibraryBundle中具体资源的绝对文件路径,如:
[pre]
- /Users/kmyhy/Library/Application Support/iPhone Simulator/4.2/Applications/8213652F-A47E-456A-A7BB-4CD40892B66D/yhyLibTest.app/ yhyLibraryBundle.bundle/Contents/Resources/radio.png
[/pre]同时,修改CheckButton.m中的代码,导入Utils.h头文件,把其中获取图片的代码由imageNamed修改为imageWithContentsOfFile,如:
[pre]
- [ icon setImage :[ UIImage imageWithContentsOfFile : getMyBundlePath ( checkname )]];
[/pre]即通过绝对路径读取图片资源。
在运行生成.a文件之后不能通用模拟器和真机,通用的做法为:
可以使用命令行工具lipo将适用于真机与模拟器的静态库合二为一,操作如下
user#lipo -create /ospath/libname.a /simulatorpath/libname.a -output /allInOnelibName.a 即可
用如下命令可以看到合并后静态库支持的cpu架构信息
user#lipo -info /allInOnelibName.a
Architectures in the fat file: /Users/ipi/Desktop/libDemoLib_1.a are: armv7 i386
**这种做法缺点:通用静态库太大
相关推荐
在iphone中制作,使用,调试静态库。
iOS 静态库自动打包,使用 shellcmd 脚本如何写 # 获取脚本所在目录 filepath=$(cd "$(dirname "$0")"; pwd)"/" cd $filepath cd .. # 工程target,主要配置这个target即可 targetname="SafeToolSDK" # 工程目录...
绝对物有所值,公司内部资料。教你如何在iphone中添加静态库
基于iOS12.4(36.0.1)_CMCC_cn_iPhone 版本的IPCC修改的,iphone6可用的支持广电4G的IPCC文件。语音、数据、短信均可用。下载后直接把文件后缀名修改为.ipcc,使用i4刷入后,开下飞行就可以了。
iPhone 应用界面设计资源,非常好啊哈哈
iPhone11的48.0 IPCC文件(提取自IOS15.1)
由于lame只有源文件,需要自己生成可以给iphone使用的静态库,所以弄了这个脚本可以一键生成lame静态库。 你需要做的是: 1、http://sourceforge.net/projects/lame/files/lame/3.99/ 下载lame的最新版本解压 2、...
iphone文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子
iphone备份文件
iphone6分层psd文件,
方便查看iphone文件的软件方便查看iphone文件的软件方便查看iphone文件的软件
iPhone3,1 4.1 shsh文件
iphone 声音资源iphone 声音资源iphone 声音资源iphone 声音资源
使用UIImagePickerController从IPhone照片库或照相机获取图像的例子。
包含大部分Axure+iPhone手机机型的元件库,手机外壳元件库
Axure iphone/ipad资源库,解压后有4个rplib文件,分别是iphone及ipad的UI库
iphone4s 6.1.3 shsh文件
iphone43.1各版本SHSH文件,强降果粉的必备!
iPhone 7-15.7 shsh文件
iOS开发读取plist文件、iphone中plist文件的读写存,整理的简单的例子,新人看一下有帮助。该资源也是整理别人的资料,希望给大家带来帮助!