【问题标题】:missing required module 'SwiftShims' error generated by Xcode in project项目中 Xcode 生成的缺少必需的模块“SwiftShims”错误
【发布时间】:2017-01-25 10:36:36
【问题描述】:

我在运行状态下复制了我的项目,但复制的项目对我不起作用,尽管实际项目运行良好。当我构建我复制的项目时,它给了我以下错误:

我已清除缓存和派生数据,但构建仍然失败。

有谁知道可能导致此问题的原因?提前致谢。

【问题讨论】:

    标签: ios swift xcode


    【解决方案1】:

    如果您正在使用 SPM,删除 .build 文件夹并重新运行 swift build 可以解决我的问题。

    【讨论】:

    • 是的!这解决了它。将我的项目移动到硬盘上的其他位置后开始出现此错误。
    【解决方案2】:

    如果重命名项目目录,可能会出现此错误。

    供大家参考,我用的是Flutter,所以

    flutter clean
    

    已经解决了。

    【讨论】:

      【解决方案3】:

      如果您使用的是CocoaPods,请打开yourProject.workspace 而不是yourProject.xcodeproj

      【讨论】:

      • 您可以通过在项目目录中的终端中运行xed . 来快速完成。
      【解决方案4】:

      我遇到了同样的错误,但原因是因为将不同的 iOS 版本指定为 Podfile 的 platform :ios 和我的项目的部署目标。

      【讨论】:

        【解决方案5】:

        SwiftShims 是标准库中定义的模块。它不应该丢失。我想是因为你的DerivedData 路径改变了,现在编译器找不到它的缓存了。

        【讨论】:

          【解决方案6】:
          • 转到您的项目文件夹
          • 删除 DerivedDataXcode 文件夹内的内容。
          • 清理项目
          • 运行。

          【讨论】:

          • 到目前为止为我工作
          • 谢谢——这有效。我没有使用 CocoaPods:我只是将项目从一个目录移动到另一个目录。我尝试做一个“构建清洁文件夹”,但没有成功。您可能会想象这会破坏 DerivedData,但事实并非如此!手动删除 DerivedData 就可以了。
          【解决方案7】:

          您是否尝试删除缓存?

          rm -rf /Users/abdulrehman/Desktop/StudentMentor/DerivedData/ModuleCache/DLJPQMLQI1Q/
          

          (我可能复制错了您的文件路径。如果此路径没有可删除的内容,请随意手动输入)

          【讨论】:

          • 我在首选项 -> 位置中为我的派生数据使用相对(路径)。所以我的项目目录中的“rm -rf DerivedData/”就可以了。 Xcode 9.2
          【解决方案8】:

          我遇到了同样的问题...经过大量的试验和错误,以下对我有用..

          1. 打开您的 Xcode 工作区文件 -> 项目名称(左侧的目录选项)-> 构建设置 -> 排除架构 -> 选择“任何 iOS 模拟器 SDK”并在其前面输入 arm64(用于构建和发布)。

          2. 对 pod 重复相同的过程

          3. 转到 VS code 并删除 pod-lock 和 pod 文件夹

          4. 打开 podfile 并将以下代码粘贴到 podfile 中“target 'name-tvOS' do”的正上方。

            post_install do |installer| flipper_post_install(installer) installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end end

          (注意:上面的一些代码体形式可能已经存在。在这种情况下,用这个替换那部分。)

          1. 保存并在项目的终端中运行“pod install”。

          2. 返回 xcode 并清除构建 (Cmd+Shift+K),然后构建您的项目 (Cmd+B)

          希望它能毫无问题地构建......快乐编码!

          【讨论】:

            【解决方案9】:

            我曾经遇到过一个私有本地 pod,它以某种方式 Cocoapod 将 lib 产品名称设置为例如。 "MyLib-6c4b1003" -- 前缀为十六进制。

            这个随机十六进制不知何故改变了,但项目其他链接标志仍然使用旧的。我进行了搜索以找出对旧十六进制的引用并将其删除,运行pod install 并将使用正确的名称。

            我仍然不明白为什么前缀中有这个随机十六进制,但似乎项目的 Cocoapods 设置可能引用了错误的。

            【讨论】:

              【解决方案10】:

              当我想从 Cocoapods 中删除 Alamofire 时,我遇到了类似的问题。 那么它需要删除一些东西:

              目标 -- 构建设置 -- 其他 Swift 标志

              这些垃圾代码对我有用。

              【讨论】:

                【解决方案11】:

                当我运行发布版本并使用Product > Scheme > edit schemes 切换回调试版本时发生这种情况。

                删除派生数据没有帮助。

                但只需执行 Product > Clean Build Folder 并重新启动 XCode 即可解决问题。

                【讨论】:

                  【解决方案12】:

                  如果您在预览画布中看到此错误并且诊断“mtime changed”:

                  '/var/folders/kv/t_w2wdds3m1_0lr02hcp3dgw0000gn/C/clang/ModuleCache/12TRQXIDQ8QQD/SwiftShims-2TTN5UXQBRCCQ.pcm' was built: mtime changed

                  删除该文件夹中的所有 .pcm 文件,然后重试。 您机器上的文件夹会有所不同。复制位置并运行:

                  rm <paste path here>/*.pcm
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-06-06
                    • 2021-06-18
                    • 1970-01-01
                    • 2017-03-23
                    • 2020-09-04
                    • 2017-06-24
                    • 2016-05-07
                    相关资源
                    最近更新 更多