无法构建模块 UIKit
Posted
技术标签:
【中文标题】无法构建模块 UIKit【英文标题】:Could not build module UIKit 【发布时间】:2013-11-23 14:54:30 【问题描述】:它突然停止在设备中构建应用程序。在模拟器中它可以工作,但是当我连接设备并尝试在设备中运行它时,它给了我一个错误:
我尝试了很多但无法解决。
【问题讨论】:
听起来有点像你的 ios SDK(设备部分)被炸了。首先想到的是重新安装 Xcode。 @Till 是的,你是对的,我重新安装了 xcode,现在它可以工作了,谢谢 重新安装 Xcode 工作 尝试了一切,似乎无法在 XCode7.3beta 中解决。有什么想法吗? 提示:当我不小心在UICollectionView.h
中输入了一些内容时,会发生这种情况,将 sdk 文件夹中的特定文件物理替换为我朋友 sdk 中此标头的另一个新副本解决了这个问题。您还可以替换整个 sdk 文件夹。这将使您免于重新安装。
【参考方案1】:
请不要像我一样犯同样的错误。就我而言,我不小心在 Foundation 框架文件中输入了一些单词。
【讨论】:
哈哈。哈哈。我就是这么做的。 奇怪,同样的问题。为什么这些文件甚至可以编辑? 哦,伙计...这正是我所做的!非常感谢。我很惊讶,因为当我意外编辑系统头文件时,我的 XCode 8 没有显示该警报... 只需从基础框架文件中删除您不小心输入的内容。 这里有同样的问题。疯狂我的构建速度有多快 FUBAR。错误应该将您指向更改后的文件。通过复制相同的头文件来修复它,但来自“普通”iOS 框架而不是模拟器(反之亦然)。使用代码上方的面包屑导航、复制粘贴和瞧。【参考方案2】:完全清理 + 删除派生数据对我有用。
在清理和构建之前,请务必修复任何可能因无法安装 UIKit 而损坏的代码。
因此,例如,如果您尝试引用 UICollectionViewController,并且需要 UIKit 来引用它,请注释掉使用 UICollectionViewController 的代码,注释掉 UIKit 的导入。
然后清理,构建。现在取消注释导入 UIKIt,构建。现在取消注释 UICollectionViewController 代码,重新构建。
【讨论】:
即使完全清理 + 删除派生数据 + 重启 xcode + 重启 mac 对我也不起作用......【参考方案3】:可能有帮助的方法是在 XCode 首选项中将派生数据位置设置为“相对”,然后进行清理和构建
【讨论】:
但应用程序的大小正在增加。它在应用程序中创建一个派生数据文件夹,其大小为 67 MB。 :( 如果您需要使用脚本设置此值,您可以使用 plutil 读取/写入它:plutil -extract IDECustomDerivedDataLocation xml1 -o - ~/Library/Preferences/com.apple.dt.Xcode.plist
【参考方案4】:
由于某种原因,您的 UIKit.framework 已损坏,要么将工作中的 UIKit.framework 从其他地方复制到
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
或者重新安装 Xcode 来解决这个问题。
【讨论】:
正确,当我不小心在UICollectionView.h
中输入内容时发生这种情况。不用重新安装 xcode,而是用我朋友的 sdk 中的这个头文件的另一个新副本物理替换 sdk 文件夹中的特定文件解决了这个问题。
谢谢伙计!我正在为 tvOS 开发一个 pod,但没有通过验证规范,因为我的 UIKit.framework 已损坏。只需更新/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator10.1.sdk/System/Library/Frameworks
文件夹上的 UIKit.framework,一切都会像魅力一样发挥作用。
用raw.githubusercontent.com/PeqNP/ObjC-Stub/master/bin/… 替换 UICollectionView.h 帮了我,只需用 Shift+CMD+O 定位 UICollectionView
或从这里github.com/theos/sdks/blob/master/iPhoneOS10.1.sdk/System/…【参考方案5】:
我不小心编辑了 Foundation 框架文件
所以UIKit.framework
被破坏了。唯一的解决办法是恢复原件。
您有两种解决方案:只需重新安装 XCode 或 从另一台具有相同 XCode 版本的机器上复制框架并粘贴到您的机器上。
地点:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
【讨论】:
【参考方案6】:如果您有两个 Xcode,则卸载两个并重新安装 Xcode。它对我有用。
【讨论】:
【参考方案7】:如果清理项目并删除“派生数据”不起作用, 尝试将“部署目标”(在“常规”选项卡上)从 7.0 更改为 7.1
【讨论】:
【参考方案8】:检查是否从“活动方案选择器”中选择了适当的目标。选择“通用 iOS 设备”解决了我的问题。
点击选择模拟器
选择“通用 iOS 设备”:
【讨论】:
但是我想在模拟器上构建和运行测试:/ 现在怎么办? @Eddie 通用构建会为你做这件事【参考方案9】:确保没有文件在位于 Xcode 内的 UIKit
框架中进行编辑。
【讨论】:
【参考方案10】:清理派生数据对我有用
【讨论】:
【参考方案11】:检查安装的工具链并选择正确的 xcode 工具链。就我而言,我将它从 Swift 4.0 更改为 xcode 9.2 并且它有效。
【讨论】:
谢谢 - 唯一对我有用。首选项 => 组件 => 工具链选项卡【参考方案12】:在我的情况下,清理项目后,只有重新启动我的 Mac 会有所帮助。
【讨论】:
【参考方案13】:清理项目并重新启动 xCode 对我有用。
【讨论】:
【参考方案14】:我也长期面临这个问题,在尝试了不同门户中给出的所有建议后,我才知道问题出在您要运行应用程序的设备上。设备装有最新的 iOS,而您的 Xcode 不支持该 iOS。
例如,您拥有 Xcode 7.2 并希望在拥有 iOS 9.2.1 的设备上运行应用程序。所以你只需要更新你的 Xcode。
Build Settings 中的另一件事 Base Sdk 始终大于或等于您的开发设备上的软件版本号。
【讨论】:
【参考方案15】:已尝试上述所有解决方案。我仍然无法解决我的问题。所以我卸载了Xcode并重新安装它。它神奇地起作用。希望这会有所帮助。
【讨论】:
【参考方案16】:假设您更改或删除了 UIKit 框架中的任何内容,然后显示此错误。
如果您能够找到要更改或删除的类或 .h 文件,则从其他系统的 Xcode 替换该 .h 文件中的整个文件内容(确认应该是类似的 Xcode 版本)。
例如,在 UIView.h 文件中 - 我删除了一个方法并关闭并打开了 Xcode。然后我无法恢复该代码。
【讨论】:
【参考方案17】:我尝试删除派生数据,从项目列表中删除应用程序,但是当我删除 xcode 并安装新的 xcode 时,它的工作正常,所以最好的方法是删除 xcode 并安装新的 xcode。
【讨论】:
【参考方案18】:当我不小心修改了uikit框架时,发生了这个错误。在链接二进制文件中删除和重新添加 uikit 框架与库、清理派生数据和重新启动 xcode 均无效。我不想卸载我的xcode,所以我尝试复制我可能已经从其他电脑修改过的类的代码,xcode 可以正常工作并将其粘贴到我的。成功了!
【讨论】:
【参考方案19】:如果您的项目是为另一个目标构建的(例如,它是为模拟器而不是您的设备构建的),那么可以确认您不小心为该目标编辑了框架的头文件之一。受影响的框架是您收到编译错误的框架。
【讨论】:
【参考方案20】:删除DerivedData
文件夹中的所有文件夹后,它对我有用。
【讨论】:
【参考方案21】:导致同样错误的我的问题是由于在由 coco pods 创建的工作区中工作,不知何故,原始项目中丢失了指向 UiKit 框架的链接。
为了解决这个问题,我只是重新打开了 xCode 项目而不是工作区,并重新添加了缺少的 UIKit 框架,保存了项目并将其关闭,重新打开了项目的工作区,由此导致的烦人的 nag 消息已得到修复。希望这对其他人有帮助。
【讨论】:
【参考方案22】:我遇到了这个问题,我在Generic iOS Device
上设置了Device
,清理项目,进行构建。然后我将设备切换到我的真实设备并运行项目。错误不会出现。
【讨论】:
【参考方案23】:使用DevCleaner for Xcode 应用程序清理一些不必要的 Xcode 数据对我有用。
【讨论】:
【参考方案24】:我的错误是命令行工具的版本错误 - 转到 Preferences->Locations 并更改命令行工具版本 - 退出 xcode 并重试。
【讨论】:
以上是关于无法构建模块 UIKit的主要内容,如果未能解决你的问题,请参考以下文章
自 Xcode 5.1 以来无法在 cocoapods 中构建模块“UIKit”