【问题标题】:"${PODS_ROOT}/SwiftLint/swiftlint" causes "Command PhaseScriptExecution failed with a nonzero exit code" with Xcode 10“${PODS_ROOT}/SwiftLint/swiftlint”使用 Xcode 10 导致“Command PhaseScriptExecution failed with a nonzero exit code”
【发布时间】:2018-12-12 22:05:43
【问题描述】:

从 Xcode 10.0 beta 2 更新到 Xcode 10.0 beta 3 我现在在构建 iOS 项目时收到此错误:

sourcekit: [1:connection-event-handler:10499: 0.0000] 连接中断sourcekit: [1:updateSemanticEditorDelay:10499: 0.0007] 禁用语义编辑器 10 秒sourcekit: [1:pingService:10499: 0.0007] ping servicesourcekitten: 连接到 SourceKitService 已恢复!
连接中断
永远不要为 sourcekitd 失败的文件调用这个。:文件 File+Cache.swift,第 127 行
/Users/Coeur/Library/Developer/Xcode/DerivedData/My-App-eloayqptodupvfhbyegtkncnhcpu/Build/Intermediates.noindex/My-App.build/UAT-iphonesimulator/My-App-Debug.build/Script-379156A71D62F5C100574D04.sh:行2:34382 中止陷阱:6“${PODS_ROOT}/SwiftLint/swiftlint”
命令 PhaseScriptExecution 失败,退出代码非零

斯威夫特 4.1
CocoaPods 1.5.3
SwiftLint 0.26.0

【问题讨论】:

  • Google 员工的临时说明:似乎有一个 regression in CocoaPods 将在 1.6.x 中修复。对我来说,切换到 1.6.0 测试版后错误就消失了(并更新了所有依赖项;不确定这是否与它有关)。
  • @Raphael 你正在写一些与我的问题无关的东西。我现在已经澄清了标题以消除歧义。实际上,有人已经在stackoverflow.com/questions/52234957/… 发布了您所指的错误日志
  • 我在谷歌上搜索了一个非常相似的错误后最终来到了这里,所以我认为在这里发表评论会有所帮助。我还没有找到其他帖子,这确实更合适。谢谢!
  • 在我的例子中,我在执行 pod install 时忘记将 pod 'SwiftLint' 添加到我的 podfile 中。

标签: swift xcode xcode10 swiftlint


【解决方案1】:

这是因为钥匙串访问。

  • 打开钥匙串访问
  • 右键单击登录选项卡
  • 锁定钥匙串登录
  • 再次右键单击登录选项卡
  • 解锁钥匙串登录

问题解决了:)

【讨论】:

  • 那么为什么您在 2019 年仍然使用 SwiftLint 0.26.0 或更早版本?长期以来,只需更新 SwiftLint 即可解决该问题!
  • 我根本不使用 Swift 或 SwiftLint,因为我使用的是 Obj-C。这个答案解决了我在 Xcode 9+ 和 iOS 10+ 上的问题。
  • @AndaluZ 不使用 SwiftLint 错误消息几乎是不可能的。
  • @Cœur 我遇到了这个错误“Command PhaseScriptExecution failed with a nonzero exit code”,它不是基于 Swift 相关的东西。顺便说一句,这个解决方案也不是特定于 Swift 相关的东西,我猜它与 Xcode 构建工具有关。
  • 谢谢。这是我的解决方案,因为我正在处理推送通知认证签名。
【解决方案2】:

在使用 Xcode 10.0 beta 3 或更新版本时,SwiftLint 0.26.0 脚本似乎存在问题。

原因

似乎与SwiftLint #2276有关,本身与SourceKitten 0.21.0有关,在SourceKitten 0.21.1和SwiftLint Master中修复。

解决方案

更新到 SwiftLint 0.27.0 或更新版本:

pod 'SwiftLint', '~> 0.27'

(并运行pod update SwiftLint

【讨论】:

  • 正确答案,这是一个 SwiftLint 问题
  • 这里的问题是我在文件夹(目录)名称中有一个空格,我有项目。 eg:在“working project/MyProject”时不工作,在“working_project/MyProject”时工作
  • @Cœur,我在使用今天最新的“SwiftLint 0.33.0”时遇到了这个问题。
  • @cœur 我在“realm/SwiftLint@0.39.1”mintfile 中遇到了这个问题。
  • @PratikSodha then...检查降级 SwiftLint 是否可以为您解决问题,如果可以,请在他们的 GitHub 上打开一个问题?
【解决方案3】:

某些框架或 SDK 需要代码签名。

我完成了代码签名并为我解决了问题。

【讨论】:

  • 我必须“启用开发签名”(上面屏幕截图上的按钮)
  • 非常感谢 - 我也必须启用开发签名
【解决方案4】:

我使用的 pod 没有针对 Xcode 10 进行更新,因此对我有用的解决方案是从我的项目中删除 Cocoapods,然后重新安装(该项目是在 Xcode 9 上创建的)。

要删除它,最简单的方法是:

$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean

之后,再次安装 pod。

【讨论】:

  • 这破坏了我的代码,因为我使用的库并不是所有的都与新版本的 pod 兼容。我不得不从时间机器中恢复我的代码。
【解决方案5】:

我刚刚重新启动了我的 Macbook,它工作正常。

【讨论】:

    【解决方案6】:

    对我来说,在“构建设置 -> 有效架构”中添加 arm64 架构解决了这个问题。

    【讨论】:

      【解决方案7】:

      我在后台运行了一个身份验证过程(在 Xcode 之外),这似乎对我造成了这个问题。我打开了钥匙串对话框,询问我的密码。解决办法是重启机器。

      【讨论】:

        【解决方案8】:

        解决方案对我有用

        我删除了下面列出的所有 pod 生成的文件和文件夹

        • Podfile.lock
        • Pods 文件夹
        • ProjectName.xcworkspace

        再次为此项目安装 pod。

        现在打开 .xcworkspace。构建并运行...

        【讨论】:

        • 删除了安装 pod 后创建的所有文件。
        【解决方案9】:

        可能会导致 iOS 13 版本。我的错误是看下面

        Assignment/Pods-Assignment-frameworks.sh: eval: line 131: unexpected EOF while looking for matching `''
        Command PhaseScriptExecution failed with a nonzero exit code
        

        Pods -> Targets Support Files -> Pods-AppName -> Pods-AppName-frameworks.sh。 刚刚评论了第 131 行

         # eval "$code_sign_cmd"
        

        然后清理并运行

        【讨论】:

          【解决方案10】:

          对我来说,这是 swiftlint 的一个问题。当出现严重错误时会发生这种情况,例如 swift lint 验证的强制展开

          未显示实际的 SwiftLint 错误。而是显示此 “Command PhaseScriptExecution failed with a nonzero exit code” 错误。经过一番挣扎,我发现如果您的项目的目录名称或其任何层次结构文件夹有撇号 's ,那么即使包含它的运行脚本,也不会显示实际的 swiftlint 错误或警告。

          所以我只需要重命名我的文件夹。

          例如:

          用户 -> Dave 的项目 -> Git -> 项目名称

          应该改为

          用户 -> Daves 项目 -> Git -> 项目名称

          这将向您显示错误或警告。然后您可以修复错误,希望相关错误也将得到修复。

          【讨论】:

          • 我对 swiftlint 也有同样的问题。我在项目中有数千个错误和警告。于是我开始在.yml文件中一一排除规则,一点点之后,我就可以成功构建项目了。然后我开始一次包含一条规则,代码越来越好
          【解决方案11】:

          当我等待并让项目在我做任何事情之前完成索引时,这个问题为我解决了!

          【讨论】:

            【解决方案12】:

            重新启动 Xcode 10.1 为我修复了它;在更新 Cocoapods ('RxSwift') 时出现。

            【讨论】:

              【解决方案13】:

              如果您的项目所在的目录有空格,则会出现问题 要解决该问题,请添加双引号(“”)。例如:

              “$(SRCROOT)/我的框架/路径”

              【讨论】:

                【解决方案14】:

                就我而言,Apple 开发证书已过期。

                要验证打开的钥匙串 -> 我的证书 -> 检查开发者证书是否有效,如果证书无效,请按照以下步骤操作。

                • 打开您的苹果开发者帐户并创建新的开发证书
                • 下载并将其添加到您的钥匙串中。
                • 转到配置文件并打开您现有的开发配置文件并添加新创建的证书。
                • 下载新的配置文件并安装它。

                希望这对你也有帮助。

                【讨论】:

                  【解决方案15】:

                  在我使用 cocoapods 后,我的 ionic4 应用程序出现了这个问题。我的问题是,在 Targets->Build Phases->Embed Pods Frameworks 中,我有一个 Pods-MyApp-frameworks.sh 脚本的错误路径,更正该路径为我解决了这个问题。 这是因为大多数时候$PODS_ROOT 变量在安装 pod 后没有设置

                  【讨论】:

                    【解决方案16】:

                    对我来说,swiftlint 脚本似乎存在问题。最初是这样的,这是安装时文档中的内容

                    else
                    echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
                    fi
                    

                    我通过修改来解决问题

                    if swiftlint
                    then
                    echo "swiftlint installed"
                    else
                    echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
                    fi
                    

                    不确定,这可能是由于我的 XCode 版本(10.3)

                    【讨论】:

                      【解决方案17】:

                      我通过重写 .sh 文件解决了这个问题。 Xcode 10 与 Swift 3。

                      1.重命名问题.sh文件和command+A然后command+C
                      2.vi *problem*.shcommand+V.
                      3.:wq!保存新文件。

                      那么一切都会好的。

                      如果不行,chmod a+x *problem*.sh再试一次。

                      【讨论】:

                        【解决方案18】:

                        只有以下对我有帮助。

                        1. 删除 Podfile.lock
                        2. 运行 pod 安装
                        3. 可选 - 更新 SwiftLint 版本

                        【讨论】:

                          【解决方案19】:

                          我有一台新的 Macbook,在尝试存档时出现此错误。我忘了在新机器上安装 cocopods,所以我做了,然后重新启动计算机并重新启动 Xcode,它就可以工作了。

                          【讨论】:

                            【解决方案20】:

                            如果你得到

                            dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
                            

                            还有一个红色

                            Command PhaseScriptExecution failed with a nonzero exit code
                            

                            你应该install the specific version of libreadline that you need

                            brew install readline
                            brew list --versions readline
                            brew switch readline 0.0.0
                            

                            【讨论】:

                              猜你喜欢
                              • 2022-12-28
                              • 2019-03-27
                              • 1970-01-01
                              • 2020-02-23
                              • 2021-07-16
                              • 2022-01-09
                              • 1970-01-01
                              • 2017-09-10
                              • 2020-10-02
                              相关资源
                              最近更新 更多