使用使用 MLKit 的框架时出现缺少所需模块“MLKit”错误

问题描述 投票:0回答:4

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

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

为什么我会收到该错误?我做错了什么?

可重现的示例

我在这里创建了一个可重现的示例。为了执行该示例,请执行以下命令:

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

ios swift cocoapods google-mlkit
4个回答
0
投票

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


0
投票

我现在不知道这是否有帮助,但为了将来的参考,这里是:

Google 隐藏了标头,因此您必须手动指定要添加的标头,以便您的测试可以找到它。

如果您转到:

Project> targets YourProjectTest > Build Settings > Search Paths > Header Search Paths
并添加:

"${PODS_ROOT}/Path-to-the-Header-in-your-Pods-Folder/Soucers"

就我而言,是:

"${PODS_ROOT}/GoogleMLKit/MLKitCore/Sources"

这对我来说非常有用。

我希望它有帮助:)


0
投票

您遇到的问题是 Google 决定隐藏主模块的 MLKit 标头造成的。要解决此问题,您可以选择单独导入独立库,而不是整体导入主模块。

要纠正这种情况,请将当前的导入(如

import MLKitFramework
import MlKit
)替换为您打算使用的特定模块。以下是如何修改导入的示例:

   import MLKitCommon
   import MLKitFaceDetection
   import MLKitVision
   ...

除了解决您的问题之外,通过导入这些单独的模块,您还可以更好地控制和透明地控制项目中包含的 MLKit 组件。通过这种方式,您可以微调依赖项并确保仅包含必要的组件,从而可能减少应用程序的总体占用空间并避免冲突或隐藏标头。


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.