目标完整性问题:“为iOS构建,但嵌入式框架'X.framework'是为iOS模拟器构建的”。

4
我们的组织使用一种我们认为在Xcode 11.4之前是经典的方法来分发iOS预编译的动态框架。该方法涉及构建两个预编译的框架,一个用于设备,一个用于模拟器,然后在运行时使用正确的框架。后者需要修改"其他链接器标志",以根据如何设置“任何iOS模拟器SDK”和“任何iOS SDK”来选择应该使用的框架,并在Build Phases中添加一个新的运行脚本阶段,从设备构建中剥离出模拟器切片。
在迁移到Xcode 11.4时,我们现在遇到了目标完整性错误:
“Building for iOS, but the embedded framework 'X.framework' was built for iOS Simulator.”
我们得知迁移到XCFramework是解决此问题的一种方法。但对于那些希望(或需要)继续使用早期版本构建的预编译框架作为动态框架的人,可以在项目设置中更改什么以克服此错误?

在构建过程的哪个步骤中发生这种情况?这是在您的脚本执行之前吗?lipo -remove UNWANTED_ARCH -output FRAMEWORK 应该可以正常工作,但我理解您已经这样做了。 - Itay Brenner
2个回答

0

我曾经遇到过同样的问题,最终通过从“产品”下拉菜单中启动“清理构建文件夹”来解决它。这里是截图,以防万一,希望它也能解决你的问题!


0

通过与苹果的交流,我们得出结论,这个缺陷是设计上的问题,从动态框架迁移到xcframeworks基本上是必需的。如果有技术方法可以解决这个问题,我们从未找到过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接