【问题标题】:iOS : Could not build module <framework-name>iOS:无法构建模块 <framework-name>
【发布时间】:2016-12-07 15:53:03
【问题描述】:

我从另一个团队获得了图书馆。我正在尝试在我们的项目中使用库,但这样做时出现错误无法构建模块“通用库”(框架名称)

以下是我研究过但没有帮助的解决方案:

1. Delete Derived data content. Clean and Build.

2. Framework is added in 'Link binary with libraries' of Build phases.

3. While adding framework checkmarked : Target and Copy content to folder.

即使我尝试了这个stackoverflow-link,但没有任何突破!

唯一有效的方法是在 Project 中删除 Swift compiler - code generation section 中的 Objective-C bridging header pathbuild settings

但是,此后我无法获得 Common 接口来创建实例(即 Common 不会出现在下拉列表中)

下面是框架结构。

还有其他解决办法吗?

【问题讨论】:

  • 检查一下它可能对你有帮助:stackoverflow.com/questions/29620786/…
  • @Pandey_Laxman:没有帮助。 :-(
  • 你可以尝试删除导入行并重新编写它,如果它不起作用然后使用 @import 而不是 #import 。实际上我在我的应用程序中构建 xmppframework 时遇到了同样的问题,所以我删除了该行,然后再次写入 import 然后它工作了
  • @import 后跟框架名称,不带任何引号和 括号。所以使用@而不是#是没有问题的
  • 所以你有CommonLibrary的源代码和项目文件,对吗?你能告诉我你工作区的项目树吗?

标签: ios objective-c xcode module frameworks


【解决方案1】:

您可以尝试删除 DerivedData 目录。

DerivedData 在哪里?(xcode 8)

转到文件 > 工作区设置,您将看到 DerivedData 路径。

DerivedData path in xcode 8

【讨论】:

  • 这个没用...我一开始就试过了。
  • cocoaspod版本引起的问题,会有解决办法的。
  • 设置仅构建活动架构 NO关于目标、项目和 pod。
【解决方案2】:

检查您正在集成的框架是否支持您的项目架构。

要查看框架支持的架构,请使用终端并导航到框架文件夹。

使用“lipo -info myFramework.framework/MyFramework”

而且,如果您想在项目中使用框架文件,请检查框架/标题文件夹中的文件是否可用。

收到此错误:

在终端中尝试“file myFramework.framework/MyFramework”

【讨论】:

    【解决方案3】:

    我认为您不需要再次编译 CommonLibrary.framework。因此,您可以尝试将其从 Embedded Binaries 列表中删除。并确保 CommonLibrary.framework 的路径在您的 Framework Search Paths 中。

    【讨论】:

      【解决方案4】:

      我也遇到了这个问题: 1. 我的“GoodLuck”框架有两个头文件:GoodLuck.h 和 GLAdder.h 2. 导入该框架的项目无法编译

      解决方案: 在GoodLuck.h中导入GLAdder.h,重建框架。它有效。

      【讨论】:

        【解决方案5】:

        由于我的 GCC_PREPROCESSOR_DEFINITIONS 中的拼写错误,我也遇到了这个问题,因此我的所有代码都无效。

        第一个有用的警告是多个“宏名称必须是标识符”,然后是多个“无法构建模块”消息。

        【讨论】:

          【解决方案6】:

          由于这个问题还没有答案,所以在这里添加我的答案可能会对其他开发人员有所帮助。

          我知道由于隐私原因你不能透露细节。

          我使用了相同的库并面临相同的问题,所以只是做了这两件事,它工作正常。

          1. 一般 -> Frameworks,Libraries -> CommonLibrary.framework 只需选择它并选择 -> Embed without Signing。

          2. 构建设置 -> 搜索“工作区” -> 验证工作区 -> 将其设置为 NO

          你就完成了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-04-02
            • 1970-01-01
            • 2021-12-17
            • 1970-01-01
            • 2013-12-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多