【问题标题】:Missing required module 'MLKit' error while using a framework that uses MLKit使用使用 MLKit 的框架时缺少必需的模块“MLKit”错误
【发布时间】:2021-07-25 12:44:50
【问题描述】:

最近我创建了一个名为“MLKit Framework”的 iOS 框架,它使用 MLKit 人脸检测库。为了实现这一点,我只是在 Podfile 中导入了库 根据documentation.

正如预期的那样,创建了一个名为 MLKit Framework 的 xcworkspace。为了测试这个新框架,我创建了一个名为 MLKitApp 的应用程序并将该应用程序添加到同一个工作区。然后我将框架 MLKitFramework 添加到该应用程序并尝试构建它,但我收到错误声明:“缺少所需的模块 'MLKit'” 如下图。

为什么会出现这个错误?我做错了什么?

可重现的示例

我创建了一个Reproducible Example here。为了执行该示例,请执行以下操作:

  1. 为 MLKitFramework 执行 pod install;
  2. 将 MLKitApp 添加到 MLKitFramework.xcworkspace;
  3. 将 MLKitFramework.framework 添加为 MLKitApp 框架、库和嵌入式内容;
  4. 尝试构建 MLKitApp。

然后瞧

【问题讨论】:

  • 我也有这个问题,我做了一个使用MLKit的iOS框架,所以MLKit已经添加到框架的pod文件中。我构建了框架并将其添加到我的应用程序中,然后应用程序错误说我没有 MLKit(我认为它会如何工作,因为框架使用 MLKit 并且 pod 文件应该将其添加为动态链接,即消费者是依赖它)。所以我将 MLKit 添加到我的应用程序 pod 文件中,因为应用程序需要它。然后我收到了 100 多个关于 ML Kit 现在有重复文件的错误。我不明白 MLKit 是如何编译到框架中的,也依赖于它。
  • 如果您找到解决方案,请告诉我,据我所知,它一定是 MLKits pod 无法正常工作或其他原因,因为它编译到框架中并且在某种程度上依赖于它同时,我不能做任何事情让它不编译,或者编译而不依赖它,这让我发疯!我尝试了一切,基本上没有任何关于在框架中使用它的建议......
  • @AngryDuck 这正是我的想法。我在 MLKit 官方示例存储库上打开了与 issue 相同的问题。如果可能,请在此处评论您也遇到过同样的问题。

标签: ios swift cocoapods google-mlkit


【解决方案1】:

您不能这样做,因为您的“MLKitFramework”依赖于 MLKit。

您应该另外将 MLKit 框架添加到 MLKitApp。

【讨论】:

  • 您不能这样做,因为您的“MLKitFramework”依赖于 MLKit。 这就是我添加 MLKitFramework Podfile 的原因,因此无法清楚地解释原因错误。除此之外,需要在用户的应用程序中导入 MLKit 是很奇怪的,因为这通常不会发生在其他依赖库中。为什么这种行为只出现在 MLKit 库中?
  • 因为如果将您的库作为具有依赖配置的 Pod,那么 CocoaPods 会解决这些依赖关系。您手动添加了框架,然后手动解决依赖关系。
  • 感谢您的支持。我也将 MLKit 作为 Podfile 依赖项添加到 MLKitApp 中,然后通过两次构建库开始收到多个错误,所以我认为这不是要走的路。你能帮我手动解决这些依赖关系吗?
  • 我可以提出两种方法: * 在一个项目中创建应用程序目标和框架目标,然后为这两个目标添加 MLKit。 * 或者将 MLKitFramework 设置为 Pod 并添加 MLKit 作为依赖项。
  • 我尝试了这两种方法,都没有解决 MLKit 问题。还是谢谢你。
【解决方案2】:

您是否查看过 ML Kit Vision Quickstart?请注意,它包含两个应用程序:一个用于 swift,另一个用于 Objective-c。您可以查看swift app 来满足您的目的 - 它包含人脸检测功能。 Vision Quickstart 类似于您的 MLKitApp,并展示了如何直接与 ML Kit cocoapods 集成的示例,而无需引入“MLKitFramework”或手动管理依赖项配置。相反,您应该让 CocoaPods 管理它。您可以将此快速入门用作实现您自己的应用的模板。

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 2018-09-03
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2022-06-15
    • 2017-03-23
    相关资源
    最近更新 更多