【问题标题】:Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit codeXcode 10.2.1 命令 PhaseScriptExecution 失败,退出代码为非零
【发布时间】:2019-04-16 18:56:20
【问题描述】:
Showing Recent Messages:-1: mkdir -p /Users/spritzindia/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/Contigo.app/Frameworks

Showing Recent Messages:-1: rsync --delete -av --filter P .*.?????? --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "/Users/pothi/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework" "/Users/pothi/Library/Developer/Xcode/DerivedData/Contigo-atftiouzrdopcmcpprphpilawwzm/Build/Products/Debug-iphonesimulator/Contigo.app/Frameworks"

命令 PhaseScriptExecution 失败并出现 nonzero 退出代码

我删除了派生数据。 我试过了:

钥匙串访问 -> 右键单击​​登录 -> 再次锁定和解锁 -> 清除 Xcode 项目

重启机器,没用

尝试存档项目时如何解决“Command PhaseScriptExecution failed with a nonzero exit code”错误。

我正在使用这些库

pod 'IQKeyboardManagerSwift'
pod 'SDWebImage', '~> 4.0'
pod 'KRPullLoader'
pod 'Paytm-Payments'

【问题讨论】:

  • 就我而言,我只需要clean derived data 并再次构建。
  • 您能在构建阶段部分分享您的运行脚本吗?
  • 这里让我受益:stackoverflow.com/questions/61116011/…我建议你去看看。
  • 每次收到此错误时,我都可以重新启动机器。
  • 我遇到了这个问题,因为我的项目文件名有空格,例如。 "Ariven 2" ,所以改成 "Ariven2" 解决了这个问题。

标签: ios swift xcode cocoapods xcode10.2.1


【解决方案1】:

在尝试了所有解决方案之后,我缺少的是在以下位置启用此选项:

目标 -> 构建阶段 -> 嵌入式 pod 框架

在较新的版本中,它可能被列为:

目标 -> 构建阶段 -> 捆绑 React Native 代码和图像

  • 仅在安装时运行脚本

【讨论】:

  • 谁能解释为什么这个答案有效?这也会导致我应该注意的任何意外行为吗?
  • @NickLeGorrec,请查看以下链接以了解它们:stackoverflow.com/questions/5913199/…stackoverflow.com/questions/6910901/…
  • 在设备上进行调试安装(从 Xcode 构建和运行)不算作“安装”。运行脚本仅在归档时运行
  • 现在它已更改为运行脚本:仅用于安装构建
  • 非常感谢,花了一整天的时间尝试其他解决方案,结果解决了!
【解决方案2】:

前往

  1. Keychain Access -> Right-click on login -> Lock & unlock again

  2. Xcode -> Clean Xcode project ->Make build again

【讨论】:

  • 嗨叉子,您可以针对此问题提出其他建议。这个解决方案对我不起作用,我发布的问题的链接是 - stackoverflow.com/questions/58444972/…
  • 什么是“钥匙串访问”?请提供上下文。
  • @AndrewKoster Keychain Access 是 Mac 中实用程序中的一个程序。 Cmd Tab keychain Access 找到它
  • 对我来说,还删除了 Podspodfile.lock 并重新安装了 pod
  • 锁定/解锁选项对我来说是禁用的。有什么解决办法吗?
【解决方案3】:

从 ios 目录运行以下命令:

  1. pod deintegrate
  2. pod install
  3. XCode 清理构建

或者,单线

pod deintegrate; pod install

【讨论】:

  • 嘿@Abhishek,我投票支持你的答案,它有效,但它只适用于xCode,我使用的是React-Native,并且在其中继续给出同样的错误,但谢谢。
  • 没有解决 react-native 中的问题
【解决方案4】:

Xcode -> 文件 -> 工作区设置 -> 将 Build System 更改为 Legacy Build System。

注意 - 这不是理想的解决方案。

【讨论】:

  • 返回 Pods/Target Support Files 目录的 Permission Denied
  • 这可能会解决问题,但不是理想的解决方案,因为 XCode New Build System 旨在优化构建过程。
  • 谢谢,这帮助我解决了旧项目的这个问题。
  • 你没有解决问题,你只是隐藏它们。
  • 将设置更改为Legacy Build System 至少向我显示了错误消息。我解决了这个问题,然后再次将其设置为新的构建设置谢谢 Haseeb!
【解决方案5】:

对我来说,我删除了 Crashlytics、Fabric 和 FirebaseCrashlytics。所以就有了 Fabric 的脚本(Run Script)。因此,由于应用程序首先运行并且我已经删除了框架,所以我收到了这个错误。所以我删除了 Fabrics 的 Run Script 选项卡,然后它运行得非常好。

【讨论】:

  • 对我来说同样的问题 - 删除 Crashlytics - 如果你转到 Targets > Build Phases > Run Scrip 并删除相关行 - 全部修复!
  • @SteveB 工作得很好,谢谢
【解决方案6】:

Xcode 12.2 解决方案: 前往:

  1. 构建设置 -> 排除的架构
  2. 删除“arm64”

【讨论】:

  • 它可以工作,但是当它是真正的设备时,我需要在需要使用模拟器时再次添加 arm64。我的 Xcode 版本是 12.5.1,使用 Mac M1、真实设备、iPhone 7。任何帮助。
【解决方案7】:

由于 Firebase Crashlytics,我遇到了这个问题。在 目标 -> 构建阶段 -> 运行脚本

我的 Firebase Crashlytics 是这样写的

${PODS_ROOT}/FirebaseCrashlytics/run

我把它改成了双引号

"${PODS_ROOT}/FirebaseCrashlytics/run"

【讨论】:

    【解决方案8】:

    对我来说,问题在于 xcode 使用的节点版本。我的项目在 Expo 中构建良好,但在弹出后在 Xcode 中却没有。我在这里找到了答案:https://github.com/expo/expo/issues/8488

    • 检查你有最新版本的节点

      $ node --version

    • 删除/usr/local/bin/中的版本

      $ rm /usr/local/bin/node

    • 重新添加符号链接

      $ ln -s $(which node) /usr/local/bin/node

    【讨论】:

    • 嗨 @Mike Skinner 我试过 $ node --version 但似乎我的 Mac 上根本没有安装 node...知道如何安装它吗?
    • 这是我的问题!谢谢你:)
    【解决方案9】:

    重新启动对我有用...Mac OS 重新启动,而不是 xCode 重新启动...

    【讨论】:

      【解决方案10】:

      在我的情况下,错误是由于我的机器空间不足引起的。删除旧版本解决了这个问题。

      【讨论】:

      • 感谢这对我有帮助,我的电脑因删除和重新安装 pod 而已满,所以我清空了 bin,这很有效
      • 在这种情况下是否有可用的 13 GB 存储空间?
      • @Mumtaz Hussain,抱歉,我不记得我有多少可用存储空间。 13GB 的声音就足够了,但肯定会根据您的具体情况而有所不同。
      【解决方案11】:

      如果需要,请尝试此步骤:Xcode 11.5 1-打开终端:cd Path_project 2- cd pod clean 3- 吊舱安装

      如果没有任何改变,请执行此步骤

      1- 为目标打开构建阶段 -> [CP] 嵌入 Pods 框架 检查此字段

      【讨论】:

        【解决方案12】:

        该错误的另一个原因可能是 Xcode 在运行阶段正在运行脚本。

        如果是这种情况,您有两种选择:

        1. 删除脚本(如果脚本不重要则有意义)

        2. 修改/更新脚本位置路径(Xcode 可能无法定位脚本)

        就我而言,脚本很重要,所以我修改/更新了它的位置。

        原来脚本位置路径是这样写的:

        $SRCROOT/scripts/clean-assets.sh
        

        由于脚本路径包含空格(我将项目移动到新目录),我将路径更改为:

        "$SRCROOT"/scripts/clean-assets.sh
        

        通过将引号添加到 SRCROOT,将其更改为 "$SRCROOT",错误就会消失。

        【讨论】:

        • 这是唯一的帮助。谢谢!
        【解决方案13】:

        原因

        此构建阶段还允许您提供输入和输出文件的列表。该脚本始终在未提供输入和输出文件时运行。提供输入和输出文件时,脚本仅在之前从未运行过、输入文件之一已更改或输出文件之一丢失时运行

        如果您使用的是 cocoapods,则可能不需要额外的运行脚本。

        解决方案

        所以解决方案是删除脚本如下:

        【讨论】:

        • 在真机上部署会不会出问题?
        【解决方案14】:

        我遇到了类似的错误

        /{path to project root}/Pods/Target Support Files/Pods-{project name}/Pods-{project name}-frameworks.sh: Permission denied
        Command PhaseScriptExecution failed with a nonzero exit code
        

        就我而言,我收到了一个包含 Pods 文件夹的 repo 压缩包。事实证明,在它最初创建并发送给我之间的某个时刻,Pods/Target Support Files/Pods-{PROJECT}/ 中的 *.sh 文件都失去了执行权限。提供这些文件 +x 是解决方案

        【讨论】:

        • 你能举个例子吗? +x 解决方案是什么意思?
        • @SwiftyCodes 我指的是如何更改文件权限。查看如何使用chmod更改文件权限
        • 天哪,谢谢!我正在通过 Azure Devops 构建应用程序,并将源文件打包到工件中。为每个环境构建离子应用程序。 Settings chmod -R ./ios(包含 Pods 项目的文件夹解决了这个问题!
        • +1 用于指向权限问题。我正在使用命令“npx react-native run-ios”,但由于此错误而失败。然后我只使用了“sudo npx react-native run-ios”,它就起作用了。
        【解决方案15】:

        如果您在 Flutter 中遇到此问题。尝试从其他 IDE(如 android studio 或 vs code)在真正的 iPhone 设备上运行应用程序。

        问题是 Flutter SDK 缺少 iOS-profile-release。

        所以通过运行颤振命令

        flutter run
        

        它会在运行前下载丢失的东西,这样就解决了问题。

        【讨论】:

        • 拯救我的一天,谢谢!
        【解决方案16】:

        对于 Xcode 11,React Native 开发环境。 当依赖没有更新时,我通常会遇到这个问题。

        您可以尝试按照以下步骤操作,这通常对我有用:

        1- 删除你的 Podfile.lock(我喜欢在终端上使用命令'-rm -rf Podfile.lock')

        2- 删除您的 Pods 文件夹(我喜欢在终端中使用命令“-rm -rf Pods”)

        3- 删除您的 .xcworkspace

        4- Pod 安装

        5- 将您的项目清除到 XCode> 产品> 清理构建文件夹

        【讨论】:

          【解决方案17】:

          我在React Native 有一个项目,突然出现了这个错误。我事先用自制软件做了一些事情,这为我解决了这个问题:

          brew update
          brew upgrade
          brew cleanup
          

          【讨论】:

            【解决方案18】:

            在 Xcode 12.4 中,经过数小时的尝试找到了解决方案。

            转到Target > ArchitecturesBuild Active Architecture Only 设置为YESExcluded Architecturesx86_64

            【讨论】:

              【解决方案19】:

              我在 Xcode 13 中遇到了同样的问题。之后我更新了 Crashlytics SDK,我遇到了同样的问题。 就我而言,我遵循了 Solution2

              解决方案 1:

              我已从 Run Script 中删除了数据。

              -> Targets -> 进入 Build Settings -> 点击 Run Script -> Remove data

              解决方案 2: 如果脚本对您的项目是强制性的,只需选择 install builds only 选项。

              选择仅用于安装版本选项

              【讨论】:

              • 这是完美的解决方案.....
              【解决方案20】:

              我错误地从我的系统中卸载了carthage。添加它为我解决了这个问题。

              第 1 步: 在此处下载并安装最新的迦太基 DMG:Carthage

              第 2 步:

              carthage update --platform iOS --cache-builds
              

              第 3 步: 运行项目并享受。 :)

              【讨论】:

                【解决方案21】:

                我尝试了以上所有方法都没有奏效 对我来说,它是文件夹名称中的一个空格

                /swift 文件/project a/code.xcworkspace -> /swift_files/project_a/code.xcworkspace
                成功了如果我看得更深,它会停在 /swift

                【讨论】:

                  【解决方案22】:

                  我在使用 react-native-config 时遇到了错误。
                  收到此错误,因为我在 .env 文件中有一个空行...

                  FIRST_PARAM=SOMETHING
                  
                  SECOND_PARAM_AFTER_EMPTY_LINE=SOMETHING
                  

                  浪费了 3 个小时,也许会节省一些人的时间

                  【讨论】:

                  • 谢谢!我从 4-5 小时就被困住了 :(
                  【解决方案23】:

                  对我来说,问题在于 Sentry。

                  1. 在 Xcode 中导航到 targets->Build Phases
                  2. 删除Upload Debug Symbols to Sentry阶段
                  3. 清理构建文件夹并再次尝试构建

                  【讨论】:

                  • 这行得通,谢谢。但是删除它有什么影响?
                  • 在 react native 上也为我工作,删除上传到 bugsnag 并且它有效。
                  【解决方案24】:

                  如果您正在执行 Unity 项目。你会得到这个错误。

                  Command PhaseScriptExecution failed with a nonzero exit code
                  

                  解决方法很简单

                  https://forum.unity.com/threads/error-on-build.561706/

                  先决条件:安装 cocoapods

                  不需要:1。安装“cocoapods” 在终端中安装运行以下行:$sudo gem install cocoapods

                  1. 使用终端打开您的项目文件夹
                  2. 运行此行:chmod +x MapFileParser.sh
                  3. 运行此行:chmod +x process_symbols.sh

                  它对我有用)

                  我觉得安装“cocoapods”不是必须的,只要3、4步就可以解决了,但是不行,可以试试。

                  【讨论】:

                  • 谢谢。运行两个终端命令对我有用。不需要可可足类动物。
                  【解决方案25】:

                  我使用 Flutter 创建 iOS 项目。 为模拟器构建时,失败并显示相同的错误消息。 通过以下工作解决。

                  xCode 12.3 Build Settings->Build Active Architecture Only,设置为Yes。

                  【讨论】:

                  • 你成就了我的一天 :) 。我正在使用 Xcode 12.4
                  【解决方案26】:

                  我能够通过删除 Pods -> Targets Support Files -> Pods-AppName -> Pods-AppName-frameworks.sh 中的文件来解决此错误。删除该文件后,再次使用命令 pod install 安装 pod。

                  或。

                  试试这个:

                  -> 退出 xcode -> 安装 pod(再次) -> 启动 xcode

                  【讨论】:

                    【解决方案27】:

                    从项目路径中获取 Pods-resources.sh 并粘贴到终端

                    sudo chmod a+x "Pods-resources.sh file path here"
                    

                    示例用法:

                    sudo chmod a+x "/Users/path/Desktop-path/My Work-path/Pods/Pods-resources.sh"
                    

                    【讨论】:

                      【解决方案28】:

                      就我而言,我已从 XCode 的 Build Phase删除 Run Script

                      【讨论】:

                        【解决方案29】:

                        上面的大部分我都试过了。我在 Flutter 中开发,所以对我有用的是 pub cache repair

                        【讨论】:

                          【解决方案30】:

                          对我来说,原因是在更改应用程序名称时,我在名称中添加了单引号 '。 我尝试了不同的解决方案并遇到了不同的错误,但最后,在重命名应用程序时,我没有包含 ' 单引号,它解决了问题。

                          【讨论】:

                            猜你喜欢
                            • 2021-07-21
                            • 2021-02-05
                            • 2021-07-07
                            • 2020-12-01
                            • 1970-01-01
                            • 2022-09-27
                            • 2023-03-27
                            • 2021-02-03
                            • 2021-03-06
                            相关资源
                            最近更新 更多