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

Gab*_*des 5 ios cocoapods swift google-mlkit

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

\n

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

\n

错误语句:缺少所需模块\'MLKit\'

\n

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

\n

可重复的例子

\n

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

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

瞧\xc3\xa0

\n

小智 1

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

要纠正这种情况,请将当前的导入(如import MLKitFramework或 )替换import MlKit为您打算使用的特定模块。以下是如何修改导入的示例:

   import MLKitCommon
   import MLKitFaceDetection
   import MLKitVision
   ...
Run Code Online (Sandbox Code Playgroud)

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