模拟器不支持框架 - 制作虚拟框架
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。
现在为模拟器构建您的项目。
如果您想为设备构建,请按照设备目标的上述步骤操作。
我希望这对你有用。
【讨论】:
以上是关于模拟器不支持框架 - 制作虚拟框架的主要内容,如果未能解决你的问题,请参考以下文章