iOS9:在Simulator和Device中使用动态框架

use*_*173 7 ios-frameworks swift ios9 swift2

我创建了一个动态可可框架,我希望在我的应用程序中使用它.

在为实际设备构建框架之后,我将其带到了应用程序.我只能在该设备上运行该应用程序.

当我尝试在模拟器上运行它时,框架文件无法识别.我收到错误消息: 'ViewController' is unavailable: cannot find swift for declaration for this class

我尝试构建iPhone 6模拟器的框架并在iPhone 6模拟器上运行应用程序,但同样的问题仍然存在.

如何创建/构建一个我可以带入任何应用程序并能够在模拟器和设备上使用它的框架?

arc*_*all 10

你要做的是建立一个"通用框架".我在这里回答了一个问题,但我将总结一下你的主要观点:

您无法编译它的原因是因为模拟器运行在与设备不同的架构上.此外,不同的iPhone型号在不同的架构上运行.您可以查看图像以查看在每个体系结构上运行的设备.模拟器在mac弧上运行,它们是i386和x86.你需要做的是为每个架构构建,然后通过一个名为"lipo"的过程将它们合并在一起.

为此,您需要将"Build Active Architectures"设置为NO.然后你应该为"通用iOS设备"构建你的框架.然后,如果您从我的第一个链接复制构建脚本,并将其作为聚合目标,这将构建每个架构并将它们合并到最终产品中.这称为FAT框架,然后您可以在终端中运行命令"lipo -info",您将看到您的框架包含所有体系结构,这就是您想要的.