【问题标题】:Include of non-modular header inside framework module error在框架模块错误中包含非模块化标头
【发布时间】:2016-11-20 06:49:49
【问题描述】:

尝试将 ParseLiveQuery cocoapod 集成到我的项目中,但是在构建时我不断收到错误消息:

在框架模块错误中包含非模块化标头 'Bolt.BFCancellation'

我通过 cocoapods 安装了 ParseLiveQuery(连同 Parse)。这是我的 podfile:

use_frameworks!

pod 'ParseLiveQuery'
pod 'Parse'

post_install do |installer|
  installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
    configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
  end
end

我还在构建设置中将 Allow Non-module Includes In Framework Modules 设置为 Yes,但仍然出现此错误。

【问题讨论】:

    标签: ios xcode parse-platform parse-server


    【解决方案1】:

    我解决了从框架中删除 Modules 文件夹的问题。

    • 使用查找器浏览到应用程序项目中存在的框架位置

    • 进入Test.framework 文件夹(在上述情况下为ParseLiveQuery.framework)并删除Modules 文件夹。

    • 清理并重新构建应用程序,它将解决问题。

    【讨论】:

      【解决方案2】:

      我自己也遇到了。我将头文件添加到框架的伞头文件中,然后将其作为 Public 添加到 Headers 部分。 (我正在添加可达性库)

      到目前为止,它似乎对我有用。

      【讨论】:

      • 在这种情况下,可达性将在框架之外可见。但是我不想暴露这些Reachability类,我该怎么办? ——
      • 我不得不考虑一下,但这真的重要吗? Reachability 是一个“公共”库,那么通过您的库“提供”它的缺点是什么?
      • 是的,这很重要。由于我的框架中有很多 OC 代码。我不希望我的框架的用户看到这些 OC 代码。无论如何,我找到了另一个解决方案:使用像这个家伙这样的模块:stackoverflow.com/questions/42085217/…
      • @DàChún this answer 基本上说要为 Obective-C 代码制作一个单独的 swift 模块,这样标题就不必设置为 Public
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 2017-07-08
      • 2016-02-08
      • 2018-12-07
      • 2015-04-17
      相关资源
      最近更新 更多