gpt4 book ai didi

ios - 在框架错误中包含非模块化 header

转载 作者:行者123 更新时间:2023-11-28 23:58:41 25 4
gpt4 key购买 nike

我意识到这是一个常见错误,并且已被问过多次,但在根据其他人的答案尝试了几种不同的方法后,我无法解决它。

我正在创建一个使用另一个第三方框架的框架项目 (Obj-c)。在 MyFramework 的伞头中,我有第三方框架的导入语句。当我打包我的框架并将其包含在另一个 iOS 项目中时,它无法构建并出现此错误。

我尝试过的事情:

  • 开启“允许非模块化包含在框架模块中”
  • 将第三方框架的伞形 header 添加为“公共(public)” header

请指出这里缺少什么。提前致谢!

这是确切的错误:

Include of non-modular header inside framework module 'MyFramework.TestManager': '/TestApp/WindowsAzureMessaging.framework/Headers/WindowsAzureMessaging.h'

此外,从路径上看,它似乎是在尝试在 TestApp 项目中搜索它,而它应该是从框架中引用的。

我在 Umbrella header 中导入了 Azure 消息传递框架,如下所示:

#import <WindowsAzureMessaging/WindowsAzureMessaging.h>

最佳答案

我能够重现您的错误。我看起来像 WindowsAzureMessaging header并且它引用的所有其他 header 都不能用于模块化框架伞形 header ,因为它使用相对于框架的“用户”导入而不是“系统”导入,而且它没有模块映射文件。

您有多种选择:

  1. 调整他们的代码并将其构建为模块(使其成为“模块化”)。
  2. 不要将它包含在伞头中(避免从那里引用它的东西),而是链接它并直接在应用程序和您的框架中使用。
  3. 您可以获取(复制)它们的源代码(m 和 h 文件)并编译到您的框架中,然后将一些 header 公开为您自己的 header ,而不是将文件框架用作单独的实体。

我认为选项 1 是正确的选择。这并不难,如果你设法做到这一点,请考虑为他们的存储库提出拉取请求,因为这将使每个人受益。

关于ios - 在框架错误中包含非模块化 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com