framework加载失败
在真机运行,如果出现错误“dyld: Library not loaded: @rpath/XX.framework/XX,..... Reason: image not found”
- 这是因为framework没拷贝到ipa里面,导致运行是找不到库,需要在General->Frameworks and Embedded Content中将framework设置为“Embed & Sign”
framework需要签名才能用
在真机运行,如果出现错误“dyld: Library not loaded: @rpath/XX.framework/XX,Reason: no suitable image found.....Code has to be at least ad-hoc signed”
- 这是因为framework还没签名,需要在生成framework的工程里,设置Signing(跟ipa签名一样操作)
- 如果framework不是自己生成的,也可以在重签名后使用。
framework版本不一致
在真机运行,如果出现错误“dyld: Library not loaded: @rpath/XX.framework/XX,..... Reason: Incompatible library version: XXX requires version 1.0.0 or later, but XXX provides version 0.0.0”
- 这是因为项目配置的framework跟实际链接的framework版本不一致,需要检查项目目录Frameworks文件夹下的framework是否是最新的,如果framework A依赖framework B,B重新生成后,A也需要重新生成。
framwork嵌套的签名问题
当前的项目可以给引入的 framework 进行签名, 但是不可以给 framework 中嵌套的framework签名, 所以如果你的动态库嵌套其他的动态库, 需要在你构建动态库的时候给他签名, 但是这种签名之后就无法被其他 team 使用, 所以这种嵌套签名无效,解决方法是在项目中同时引入所有的framework,并由项目统一签名。