【问题标题】: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

【问题讨论】:

标签: ios swift xcode


【解决方案1】:

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

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

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

【讨论】:

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

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

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

这种方法应该可行。

【讨论】:

    【解决方案3】:

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

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

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

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

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

    我希望这对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      相关资源
      最近更新 更多