iOS开发的各位仁兄应该都有自定义Framework的经历,可能都遇到了真迹调试和模拟器调试直接崩溃的情况。真对这些问题,我大致的归类了几种可能的原因:
1.没有选择正确的Framework框架。Xcode默认的框架是armv7,arm64。但是这样的Framework运行在iPhone5c上就回崩溃。原因是iPhone5c采用的是armv7s的架构。所以真对这个问题就可以直接在Architectures选项里添加armv7s框架就可以了。
另外模拟器需要的是x86架构,所以目标设备选择的是模拟器,编译出来的架构只是支持x86。这个中Framework一旦被运行在真机上,肯定会崩溃的。想要编译出既支持真机又支持模拟器的framework,需要采用脚本合成的方法。这个网上比较成熟的方案很多,大家自行百度吧。有需要的推荐看看这个http://www.cocoachina.com/ios/20141126/10322.html
2. 工程里面没有正确的引用自定义framework。如果你是完全采用系统默认的配置生成framework的话,这样的framework是动态链接库。其他工程想要引用这样的framework的时候需要在Embedded Binaries选项里面添加自定义库,否则真机会出现崩溃的现象。
这时候有强迫症的同学说了,我就不想这么折磨麻烦的添加,就像和系统framework一样就添加在Linked Frameworks and Libraries 里面怎么办?答案是需要将Framework改为静态链接库就可以了,修改方法参见下图。修改好后就可以整齐的添加到系统framework的行列里了。