我有一个Xcode工作区,其中包含一个带有iOS应用程序目标的项目以及另一个带有Framework目标的项目。框架目标依赖于另一个框架,该框架以xcframework
的形式集成:
使用常规的
OtherFramework.framework
将要求将其链接到MyFramework
,然后将其嵌入MyApp
中,即使MyApp
不需要框架本身也是如此。但是,当与xcframework
集成时,此项目将无法构建,并出现No such module 'OtherFramework'
错误。项目设置:
MyFramework Project
MyApp Project
从
OtherFramework.xcframework
目标中删除MyApp
可以解决构建问题,但是由于该应用程序中没有该框架,因此会导致library not loaded
错误。此处的演示项目:https://github.com/msaps/XCFramework-Link-Issue
您打算如何在应用程序中链接
xcframework
并在依赖框架中链接?为什么?
pyckamil刚刚发布了这篇文章,详细解释了这个问题:Everything wrong with XCFrameworks。
事实证明,Xcode对
ProcessXCFrameworkLibrary
步骤进行了优化,该步骤可为事件构建体系结构从.framework
中提取正确的.xcframework
。此操作仅运行一次,这会导致尝试链接同一框架的其他目标产生问题。更新
在Xcode 12.0中解决了此问题
最佳答案
更新-在Xcode 12.0中解决
shinsuk提出了一种可靠的解决方法,该方法通过添加体系结构明确的框架搜索路径来确保在XCFramework中找到正确的.framework
来工作。
可以在README中找到详细信息。