问题:
之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的。但是突然有个想法,因为有很多参数的配置是在一个plist文件中的,虽然也知道这是一个plist文件,但是想想和图片资源还是有一定区别的,所以就尝试着能否把plist打进静态库中。
分析:
1. 创建了一个简单的生成静态库的功能,然后公开了一个接口,用来输出读取plist文件的结果。
2. 创建一个简单的工程,来使用上一步生成的.a文件,然后调用那个公开的接口。
3. 结果是无法读取,输出为null。
4. 后面又尝试将plist文件拖到Target的Build Phases下的Compile Sources中,因为这个下面的文件都是会编译进.a文件中的;
5. 重复2和3,结果还是不行。
结论:
plist文件是资源文件,无法打进.a中。还是那句话,无论是 .a 静态库还是 .framework 静态库,最终需要的都是:二进制文件 + .h + 其它资源文件。
解决方法:
1. 直接将plist文件和.a一起拖入到自己的工程中;
2. 将plist文件拖入到资源束bundle中。
补充一个创建bundle的简单方法:新建一个文件夹,修改扩展名为 .bundle 即可,右击bundle文件,显示包内容,就可以往bundle文件中放东西。
建议:自己制作的静态库中要用到的图片资源,不建议直接以png的后缀名方式拖到项目中使用,而是推荐使用放到bundle文件中。这样可以避免静态库的图片名和使用静态库的项目中存在的图片产生冲突。
原文地址:http://blog.csdn.net/guodong10518/article/details/44412147