1.建议framework里只包含头文件和源文件,而资源文件,如nib或image,最好单独制作成bundle。这样做得原因有二:
- 减小framework的大小
- 资源文件的路径会发生改变,放在bundle中路径更明确,直接在framework中可能会找不到,反正我当时做framework时就出现了资源路径不正确而找不到nib文件的问题,当时的解决方式直接纯代码处理,没用xib方式
2.framework中使用category后,使用framework的app必须在Build Settings –> Linking-> Other Linker Flags 中加上-all_load ,对于这个问题,这里解释的很清楚: http://zhenby.com/blog/2012/08/13/zai-jing-tai-ku-zhong-shi-yong-category/?utm_source=tuicool
3.编译出Framework是,需要把 GenerateDebugSymbols =NO,project与target都要设置下,否则会出现很多 warning:
类似 warning: (armv6) /Users/myuser/Library/Developer/Xcode/DerivedData/ ….build/Objects-normal/armv6/ImageRequest.o unable to open object file
4.ios static library 为什么代码只有700k,最终编译出来的有3.4m。
原因
- 选择的是debug模式,改成release模式后,估计能够降低很多
- ios static library 是静态库,包含了所有的引用到的代码,因此多出来的大小,是引用的代码的大小。所以改成release以后,大小也不是固定的,取决你所引用代码的多少。
5.公开了public的类,但public类中引用了private的类,于是打包好之后,对外会报错,说找不到那个private类。 可以把 import “private.h” 放到 public 的.m中,这样就不会报错了。