模拟器不支持框架 - 制作虚拟框架

Posted

技术标签:

【中文标题】模拟器不支持框架 - 制作虚拟框架【英文标题】:Framework Not supported in Simulator - Make Dummy Framework 【发布时间】:2019-10-22 11:52:51 【问题描述】:

我有一个在模拟器中不可用的框架,所以无法在模拟器中运行。我得到以下错误。

找不到目标的模块“框架” 'x86_64-apple-ios-simulator';找到:arm64、armv7-apple-ios、 arm64-apple-ios, arm, armv7

我如何创建一个虚拟框架,或者有什么方法可以让它在模拟器上运行。就像模拟器正在处理类似相机的功能一样。

试过下面的代码:但是如何定义else条件。

#if (arch(x86_64)) && os(iOS)
  import Framework
#else

#endif

【问题讨论】:

你试过这个***.com/questions/56957632/… 吗? 你有那个框架的代码吗? 我没有框架代码。 ***.com/a/69268330/6800339我用这个脚本解决了你可以试试 【参考方案1】:

我所在的团队开发了一个框架,该框架在模拟器中不起作用(使用相机),但包含模拟器架构,因此开发人员可以在任何设备上使用它。我们只有两个入口点,在每个入口点中我们都放置了以下代码:

#if TARGET_IPHONE_SIMULATOR
    return nil;
#else
    // code goes here
#endif

我知道这并不理想,我们只是返回 nil(模拟器是返回 nil 的唯一可能性),但至少你可以调用它,如果 nil 做其他事情而不是崩溃或只是根本不编译。

【讨论】:

我无权联系制作框架的开发人员。我必须从应用程序端处理 我认为this 其他问题可能会对您有所帮助。【参考方案2】:

您可以在没有框架的情况下创建第二个目标。不知有多少文件使用了这个框架?

如果数量不多,您可以创建仅可用于第二个目标的重复文件。当然,您必须删除复制文件中引用此框架的任何代码。

这种方法应该可行。

【讨论】:

【参考方案3】:

Xcode 对模拟器和真实设备有不同的构建系统。所以它会为两者生成不同的应用程序。如果您选择任何 Simulator 目标,那么它将为模拟器构建应用程序,如果您选择 Generic iOS Device 或任何真实设备目标,那么它将构建不同的构建。

您正在使用为模拟器目标构建的框架,因此请按照以下步骤操作,

    在您的系统中下载该框架的代码。 在您的工作区中添加框架的项目文件。你可以参考this和this。

如果您不想在您的项目中添加整个框架代码,那么您可以在您的 xcode 项目中添加特定的(用于设备或模拟器)框架构建。为此,请按照以下步骤操作,

    打开您下载的框架项目。 选择任何模拟器目标并构建项目。 从 Products 文件夹中获取生成的 .framework 文件。 将此框架添加到您的项目中,例如 this。 现在为模拟器构建您的项目。 如果您想为设备构建,请按照设备目标的上述步骤操作。

我希望这对你有用。

【讨论】:

以上是关于模拟器不支持框架 - 制作虚拟框架的主要内容,如果未能解决你的问题,请参考以下文章

不支持将桥接头与框架目标一起使用

不支持将桥接头与框架目标一起使用

实体框架错误关键字不支持:提供程序\r\n连接字符串

交付到 App Store 时,Fastlane 框架不支持的屏幕尺寸

不支持将桥接头与框架目标一起使用

python量化哪个平台可以回测模拟实盘还不要钱