1.证书引起的错误
控制台错误截图
Error Domain=NSCocoaErrorDomain Code=3587 "dlopen_preflight(/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting): no suitable image found. Did find:
/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting: mmap() error 1 at address=0x0C319000, size=0x00828000 segment=__TEXT in Segment::map() mapping /var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting" UserInfo={NSLocalizedRecoverySuggestion=请尝试重新安装软件包。, NSFilePath=/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting, NSLocalizedFailureReason=软件包已损坏或丢失必要的资源。, NSLocalizedDescription=未能载入软件包“TBConfMeeting”,因为它已损坏或丢失必要的资源。, NSDebugDescription=dlopen_preflight(/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting): no suitable image found. Did find:
/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting: mmap() error 1 at address=0x0C319000, size=0x00828000 segment=__TEXT in Segment::map() mapping /var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework/TBConfMeeting, NSBundlePath=/var/containers/Bundle/Application/6A1B4708-5FEE-4993-9FBD-8D2083A190CA/Ecm.app/TBConfMeeting.framework}
在动态库内容没有问题的情况下,大多是由于没有对动态库签名导致的。iOS 8以后,苹果支持使用自定义的动态库,但不能上架到AppStore。我们的是企业级项目,不上架没关系。
先查看一下你的动态库内容
解决办法:在生成动态库时选择一个Team进行签名即可。
2.Swift版本引起的错误(注意:下图问题不一定是由于swift版本引起的,我遇到的问题就是swift版本引起了下面的问题)
解决方法:把下面的设置为YES
详细说明我的问题:在之前,也就是Xcode7.3,动态库是swift2.3写的。通过loadAndReturnError加载是没有问题的,因为Xcode7.3对应的就是swift2.3。swift3.0是Xcode8才推出来的,所以就没问题。而现在,Xcode升级到的8.2,而swift也升到了3.0;但是,这个动态库还是swift2.3,同时:工程设置里使用的是最新的swift版本,所以就会出现这个问题。