首页 > 解决方案 > 为模拟器构建时“重新定义模块......”

问题描述

我有一个 iOS xcode 项目,当我Generic iOS Device选择作为我的目的地时,它构建得很好。但是,当我选择任何一个模拟器选项时,我的构建失败,Redefinition of module 'abcde'每个模块在iOS 11.4/usr/include/module.modulemap.

重复的定义来自Simulator - iOS 11.4/usr/include/module.modulemap. 我梳理了我的工作区/项目设置,并没有发现对模拟器的引用。所有部署目标都是iOS 11.4.

看来,当我为模拟器构建时,它包括平台和模拟器模块。如何指定其中一个?

在添加 cocoapods 和 swift 代码大约一天后,这个问题突然出现了,但我不知道它是否相关。(pod 的 sdk/部署目标也是iOS 11.4,swift 版本是 4(使用 3 的 Socket.IO 除外))。

我的 pods 项目正在使用生成的模块图(我根本没有编辑它):

framework module Pods_MyProjectName {
  umbrella header "Pods-MyProjectName-umbrella.h"

  export *
  module * { export * }
}

我一遍又一遍地用谷歌搜索这个问题,但找不到任何解决方案。我试过清理和重建,删除Library/Developer/Xcode/DerivedData文件夹的内容,删除 pod 的 modulemap 文件,注释掉 pod 的 modulemap 文件的每一行,删除自问题开始以来编写的所有代码......我感觉我我在所有错误的地方寻找。

标签: iosxcodexcode9

解决方案


我对其他豆荚也有同样的问题。我认为这个问题与也显式导入的递归依赖有关。我尝试了所有与您相同的事情,尽管唯一对我有帮助的是关闭 xcode,运行

pod deintegrate
pod install

并重建。


推荐阅读