问题标签 [module-map]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
71 浏览

swift - 如何解决 `Firebase/FirebaseCore.h not found` 与`Failed to build module "MyCustom" from its module interface`?

我尝试在我的(演示项目)中使用我生成的“MyCustom.xcframework”。“MyCustom.xcframework”有没有 Cocoapods 的 Firebase。我跟着这个。https://mokacoding.com/blog/setting-up-firebase-without-cocoapods/

在我的(演示项目)中使用“MyCustom.xcframework”之前,我使用的是自 2018 年以来运行良好的“MyCustom.framework”。但从现在开始我需要使用 xcframework。

问题是我在(演示项目)中收到以下错误(请参见下面的屏幕截图)

在此处输入图像描述

我的模块图(库项目)如下。

根据https://bugs.swift.org/browse/SR-14195,我的问题是模块名称与类型相同。但我不知道如何正确更改模块名称。但我试图改变Product Module Name构建设置。它不能解决问题。

任何帮助都会得到帮助。=)

笔记:

  • 我只有 .xcodeproj,因为我不使用 Cocoapods。
  • 我正在使用 Xcode 12.5(尝试过早期版本并且错误相同)
  • 我使用了这个firebase 框架(尤其是 ML 工具包)
0 投票
0 回答
32 浏览

ios - 发布版本的 module.modulemap 中缺少 Foo-Swift.h

module Foo.Swift { header "Foo-Swift.h" 我得到 Header 'Foo-Swift.h' not found requires objc }

在 Xcode 12.5.1 中进行干净构建(第一次尝试)

该框架是用 Xcode 13 beta 愚蠢地创建的

如果除了在 Xcode 12 中重新创建框架之外还有什么事情要做,请提出建议。(我唯一要做的就是复制一个 info.plist 13 无法从我的另一个框架生成)

0 投票
0 回答
45 浏览

ios - 访问 Swift 静态库中的 ObjC/C++ 类

我正在构建这个Swift静态库:OxfordLibrary我最终想使用 XCFramework 分发它。

我有一些想要从 Swift 访问的 ObjC/C++ 代码。由于我们不能在静态库中使用 ObjC 桥接头(创建 XCFramework 时抛出错误),所以我尝试使用模块映射文件。

所以想法是将 ObjC/C++ 代码库保持在库内部/私有,并且只通过 Swift 公开 API。

所以我创建了以下内容:

我已经设置并在构建设置中Defines Module: YES设置了 swift 。Seach Path

现在在我的主要 Swift 文件中:

现在如果不导入OxfordLibrary_Private,我将无法SomeObjcClass快速访问。美好的。添加导入后它可以工作。

这甚至可以正确构建。

但是,当我从中创建 XCFramework 并将该 XCFramework 导入到客户端应用程序项目时,import OxfordLibrary它会抛出错误OxfordLibrary_Private模块未找到/未定义。

在做了一些研究之后,我发现我需要在 Modules 文件夹中或使用 -headers 标志将模块映射文件和头文件复制到 XCFramwork。如果我这样做,它会起作用。

但问题是:它的 private.modulemap 应该是私有的并且在库之外不可用?

因为现在我可以import OxfordLibrary_Private在客户端应用程序中进行操作并在那里访问任何 ObjC 方法。

0 投票
0 回答
26 浏览

ios - 如何在swift静态库中将Objective C头文件公开给swift?

我想将目标 C 文件公开给 swift 静态库中的 swift 类

要创建 .xcframework,我将 Build libraries for Distribution 设置为 YES,因此在这种情况下我无法使用 Bridging Header 文件

我创建了一个 module.modulemap 文件并在其中添加了目标 C 标头,但是当我尝试导入时,我的 swift 类没有检测到该模块