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

时间:2016-03-08 15:35:04

标签: swift swift2 ios9 ios-frameworks

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

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

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

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

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

1 个答案:

答案 0 :(得分:8)

您要做的是建立一个通用框架"。我回答了一个关于here的问题,但我将总结一下要点:

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

要执行此操作,您需要设置"构建活动架构"没有。然后你应该为#34; Generic iOS Device"构建你的框架。然后,如果您从我的第一个链接复制构建脚本,并将其作为聚合目标,这将构建每个架构并将它们合并到最终产品中。这称为FAT框架,然后您可以运行命令" lipo -info"在终端中,您将看到您的框架包含所有体系结构,这就是您想要的。