plist文件无法打包进.a静态库中

Posted zhchoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了plist文件无法打包进.a静态库中相关的知识,希望对你有一定的参考价值。

问题:

之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的。可是突然有个想法。由于有非常多參数的配置是在一个plist文件里的。尽管也知道这是一个plist文件,可是想想和图片资源还是有一定差别的。所以就尝试着是否能把plist打进静态库中。

分析:

1. 创建了一个简单的生成静态库的功能,然后公开了一个接口。用来输出读取plist文件的结果。

2. 创建一个简单的project,来使用上一步生成的.a文件,然后调用那个公开的接口。

3. 结果是无法读取,输出为null。

4. 后面又尝试将plist文件拖到Target的Build Phases下的Compile Sources中。由于这个以下的文件都是会编译进.a文件里的;

5. 反复2和3,结果还是不行。

结论:

plist文件是资源文件,无法打进.a中。还是那句话,不管是 .a 静态库还是 .framework 静态库。终于须要的都是:二进制文件 + .h + 其他资源文件。

解决方法:

1. 直接将plist文件和.a一起拖入到自己的project中;

2. 将plist文件拖入到资源束bundle中。

补充一个创建bundle的简单方法:新建一个目录,改动扩展名为 .bundle 就可以,右击bundle文件,显示包内容,就能够往bundle文件里放东西。

建议:自己制作的静态库中要用到的图片资源。不建议直接以png的后缀名方式拖到项目中使用,而是推荐使用放到bundle文件里。这样能够避免静态库的图片名和使用静态库的项目中存在的图片产生冲突。


以上是关于plist文件无法打包进.a静态库中的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之JSON转PLIST(把存储json格式的文件转换成plist文件)

Jenkins 自动打包后打一个tag并同步到origin

iOS 新建的项目用老版本Xcode 打包上架出现的问题

信息.plist。如何指定多个可执行文件?

说说plist如何做企业分发

iOS自动打包问题汇总