ResearchKit.framework error: Image not found

ResearchKit.framework error: Image not found

我有一个大约 12 个月前编写的 Objective-C 应用程序,iOS 部署目标设置为 12.1 。我向其中添加了 ResearchKit 框架,并且在开发期间该应用程序运行良好。我只记得它只适用于实际设备而不适用于模拟器。

一年后我回来进行更改,使用 Xcode 11,现在我遇到了一个熟悉的错误,我无法找到解决方案。这在真实设备和模拟器上都是如此。

我已完成添加库所需的所有操作。请参阅下面的附图:

目标 -> 常规选项卡

目标 -> 构建阶段

错误

在 iOS 12 设备上尝试 运行 也失败了。有什么我想念的吗?

我最终删除了预构建 Research.framework 并添加了完整的项目:

  1. 删除预建 ResearchKit.framework 文件,出现提示时 select Move to Trash
  2. 确保 ResearchKit 项目已关闭(如果它是打开的,它不会作为项目添加,而是作为文件添加)
  3. ResearchKit.xcodeproj 项目文件拖放到目标项目中。之后确保 ResearchKit 项目下有它的文件。
  4. 转到项目的主项目文件(不是 ResearchKit)和 select 你的 Target。
  5. 确保 ResearchKit.framework 列在 Embed Frameworks 下。如果没有,则通过 selecting + 按钮并从列表中 selecting 添加它。如果它不在该列表中,则构建 ResearchKit 项目以创建 .framework 文件。
  6. 在同一个 Target 下,转到 Build Phases,并确保 ResearchKit.Framework 已添加到 Link Binary with Libraries 下,并且还添加到 Embed Frameworks 下。如果没有,则在不存在的地方添加它。
  7. 构建并 运行.

可能有更好的方法来解决这个问题,但现在这对我 运行 应用程序有效。应用程序现在 运行s 在模拟器上。但是,初始构建最多需要一分钟,因为 ResearchKit 项目相当大。

Update:我后来发现我遇到 'Image not found' 错误的原因是我试图在模拟器上 运行 而ResearchKit 框架是针对 arm64(真实设备)构建的。您将遇到同样的问题(在为模拟器构建应用程序时尝试在 device-arm64 上 运行 )。

那么上述步骤如何解决这个问题?这解决了这个问题,因为通过包含 ResearchKit 项目文件,您可以为当前 selected 架构构建所有内容,无论是设备还是模拟器。编码愉快。