【发布时间】:2014-10-28 05:49:37
【问题描述】:
我有一个 iOS 应用程序,它具有“框架 A”作为子项目并将其作为目标依赖项包含在内。 “框架 A”有“框架 B”有一个子项目,并将其作为目标依赖项包含在内。最后,“Framework B”将“Framework C”作为子项目,并将其作为目标依赖。
这个项目构建良好,在模拟器中完美运行,但立即因错误 dyld: Library not loaded: @rpath/Framework A.framework/Framework A 而崩溃。
问题在于“Framework A.framework”文件不会自动复制到应用程序的可执行文件中。您可以将“复制文件”构建阶段添加到您的应用程序目标,并指定应将“框架 A.framework”嵌入到可执行文件中,但此解决方案无法扩展。您仍然缺少“Framework B.framework”和“Framework C.framework”。
例如,假设您有一个复杂的依赖结构,如问题What is the correct process for linking static libraries that have common static libraries? 中所述。您必须手动将六个框架嵌入到您的可执行文件中,如果根框架添加了更多依赖项,则项目将不再构建。您必须记住手动嵌入任何新的依赖项。
那么,有谁知道 Xcode 是否有办法自动嵌入您的目标依赖框架(就像使用静态库一样),或者为什么 Apple 不这样做?尤其是在 iOS 中,将 Xcode 构建框架放到构建目录中然后对它们完全不做任何事情似乎毫无意义。
【问题讨论】: