【问题标题】:Could not build module UIKit无法构建模块 UIKit
【发布时间】:2013-12-08 10:50:49
【问题描述】:

它突然停止在设备中构建应用程序。在模拟器中它可以工作,但是当我连接设备并尝试在设备中运行它时,它给了我一个错误:

无法构建模块 UIKit

我尝试了很多但无法解决。

【问题讨论】:

  • 听起来有点像你的 iOS SDK(设备部分)被炸了。首先想到的是重新安装 Xcode。
  • @Till 是的,你是对的,我重新安装了 xcode,现在它可以工作了,谢谢
  • 重新安装 Xcode 工作
  • 尝试了一切,似乎无法在 XCode7.3beta 中解决。有什么想法吗?
  • 提示:当我不小心在UICollectionView.h 中输入了一些内容时,会发生这种情况,将 sdk 文件夹中的特定文件物理替换为我朋友 sdk 中此标头的另一个新副本解决了这个问题。您也可以替换整个 sdk 文件夹。这将使您免于重新安装。

标签: ios iphone uikit xcode5


【解决方案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
【解决方案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 generic build 会为你做这件事
        【解决方案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 并重试。

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2015-08-18
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2017-11-29
                                      • 1970-01-01
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多