在框架iOS中嵌入框架

时间:2016-04-05 08:57:12

标签: ios frameworks xcode7

我有一个项目包含另一个目标(框架),它是主项目的依赖项。该框架需要它自己的框架,所以我已经使用carthage添加它们。该项目在模拟器上编译和运行正常,但是在物理设备上运行它时会出现以下错误:

dyld: Library not loaded: @rpath/Subframework.framework/Subframework
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONG-ID/MyApp.app/Frameworks/MyAppSDK.framework/MyAppSDK
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONG-ID/MyApp.app/Frameworks/MyAppSDK.framework/Frameworks/Subframework.framework/Subframework: mmap() error 1 at address=0x00798000, size=0x00060000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/LONG-ID/MyApp.app/Frameworks/MyAppSDK.framework/Frameworks/Subframework.framework/Subframework

我尝试了this,但唯一的解决方案是将子框架添加到"嵌入框架"顶级项目,这是不可行的。我尝试修改构建设置 - >链接 - >动态库安装名称,但它没有帮助。

如何才能让它在iPhone上运行?

1 个答案:

答案 0 :(得分:0)

我也面临这个问题一段时间,我有一个三级层次结构,其中最外层的“伞形框架”不应该与其他框架一起分发。我如何解决它是通过在每个'Umbrella Framework'的'Build Settings'中的'Linking'下设置'Run Search Paths'来指向'Build Files'中设置的'Copy Files'目的地(你必须添加“复制文件”构建阶段,最好将其“目标设置为'框架',然后添加要嵌入的每个”子框架“。

Copy sub-framework to 'Frameworks'

Set 'Runpath Search Paths' to 'Frameworks'