iOS中 Framework静态库的创建和使用遇到的那些坑 韩俊强的博客
2017-05-19 14:13
274 查看
前言网上关于Framework制作的教程数不胜数,然而都过于陈旧,最新的也是使用Xcode7的教程,而且有些设置也只给出步骤,并没有给出原因,而且按照有些教程制作出的framework还有些问题,所以我把自己制作framework的过程记录下来,并且使用的是最新的Xcode8环境。本次制作framework,包含AFN,FMDB第三方,.a文件,xib,Bundle文件,还有Category分类,几乎制作和使用framework遇到的所有坑都被我遇到了,所以,此篇博客在我这属于干货,特此分享给大家,以免再走弯路!
制作篇:将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。
然后将Link With Standard Libraries关闭,我想可能是为了避免重复链接
选择工程文件>target第一项>Build Setting>搜索linking,然后几个需要设置的选项都显现出来,首先是Dead Code Stripping设置为NO,网上对此项的解释如下,大致意思是如果开启此项就会对代码中的”dead”、”unreachable”的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,将此项关闭也未曾不可。
使用到.a文件怎么办呢?两处都要加,不然实质没打包进去!!
加第三方如:AFN,FMDB该怎么办?记住:增加第三方拖包进去后,不要加framework依赖库,只加tdb依赖库,确保通过编译!温馨提示:在加tdb时,用该加lib链接库,如下图:第一步:
第二步:快捷键shift + command + G
第三步:Go并选择相应lib库:如sqlite.3.0tdb就因该选择libtclsqlite3.dylib
================================================================================================================
1.解决分类(使用)iOS 程序引入framework 类别报错unrecognized selector sent to class
2、bundle带来的打包失败
解决办法:
将bundle中plist文件中的Optimization删除
合成真机和模拟器错误:
原因:其中一个framework是合成过的,不能再合成了!
3. framework推荐如下设置:Mach-O Type > Static Library;( 静态库,如果需要提审 Appstore 的话不允许使用动态库的)
Dead Code Stripping > NO;(是否消除无效代码)
Link With Standard Libraries 默认是YES,如果没有特殊要求的话,默认就可以。(设为 NO 要配置Other Linker Flags)
Enable Bitcode > NO;(支持旧库)
最终制作好的framework要:删掉info.plist,移出 framework。
[align=center] 更多:每周更新关注新浪微博!iOS开发者交流群:446310206
[/align]
相关文章推荐
- iOS中 视频直播功能-流媒体的使用(详解)韩俊强的CSDN博客
- iOS中 CocoaPods Mac App的安装和使用 韩俊强的博客
- iOS中崩溃调试的使用和技巧总结 韩俊强的博客
- iOS中 视频直播功能-流媒体的使用(详解)韩俊强的CSDN博客
- iOS中.a和.framework静态库的创建与.bundle资源包的使用详解
- iOS开发中 关于阿里云服务器的使用与安全策略 韩俊强的博客
- ios .a静态库和framework静态库的创建以及使用
- iOS中 CocoaPods Mac App的安装和使用 韩俊强的博客
- [swift]iOS开发:使用rar解压库Unrar4iOS遇到的那些坑,另附上自己的一个简易版的本地沙盒文件浏览器
- iOS中崩溃调试的使用和技巧总结 韩俊强的博客
- iOS中 Realm的学习与使用 韩俊强的博客
- iOS创建.a和.framework静态库,以及Bundle资源文件的使用
- iOS开发中 经常遇到的坑,看我就够了! 韩俊强的博客
- iOS中 Realm的学习与使用 韩俊强的博客
- iOS中 视频直播功能-流媒体的使用(详解)韩俊强的CSDN博客
- ios 创建自定义UIView作为控件来使用
- Ubuntu使用svn命令行创建分支 遇到svn: SSL is not supported错误
- ios 开发中静态库创建与使用
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!
- 使用Markdown和ASP.NET MVC3创建基于文本的博客