Xcode 10.2.1 命令 PhaseScriptExecution 失败,退出代码为非零
Posted
技术标签:
【中文标题】Xcode 10.2.1 命令 PhaseScriptExecution 失败,退出代码为非零【英文标题】:Xcode 10.2.1 Command PhaseScriptExecution failed with a nonzero exit code 【发布时间】: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 并再次构建。 您能在构建阶段部分分享您的运行脚本吗? 这里让我受益:***.com/questions/61116011/…我建议你去看看。 每次收到此错误时,我都可以重新启动机器。 我遇到了这个问题,因为我的项目文件名有空格,例如。 "Ariven 2" ,所以改成 "Ariven2" 解决了这个问题。 【参考方案1】:在尝试了所有解决方案之后,我缺少的是在以下位置启用此选项:
目标 -> 构建阶段 -> 嵌入式 pod 框架
在较新的版本中,它可能被列为:
目标 -> 构建阶段 -> 捆绑 React Native 代码和图像
仅在安装时运行脚本【讨论】:
谁能解释为什么这个答案有效?这也会导致我应该注意的任何意外行为吗? @NickLeGorrec,请查看以下链接以了解它们:***.com/questions/5913199/…***.com/questions/6910901/… 在设备上进行调试安装(从 Xcode 构建和运行)不算作“安装”。运行脚本仅在归档时运行 现在它已更改为运行脚本:仅用于安装构建 非常感谢,花了一整天的时间尝试其他解决方案,结果解决了!【参考方案2】:前往
Keychain Access
-> Right-click on login
-> Lock & unlock again
Xcode
-> Clean Xcode project
->Make build again
【讨论】:
嗨叉子,您可以针对此问题提出其他建议。这个解决方案对我不起作用,我发布的问题的链接是 - ***.com/questions/58444972/… 什么是“钥匙串访问”?请提供上下文。 @AndrewKoster Keychain Access 是 Mac 中实用程序中的一个程序。 Cmd Tabkeychain Access
找到它
对我来说,还删除了 Pods
和 podfile.lock
并重新安装了 pod
锁定/解锁选项对我来说是禁用的。有什么解决办法吗?【参考方案3】:
从 ios 目录运行以下命令:
pod deintegrate
pod install
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 解决方案: 前往:
-
构建设置 -> 排除的架构
删除“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 在运行阶段正在运行脚本。
如果是这种情况,您有两种选择:
删除脚本(如果脚本不重要则有意义)
修改/更新脚本位置路径(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 > Architectures
将Build Active Architecture Only
设置为YES
和Excluded Architectures
到x86_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。
-
在 Xcode 中导航到
targets
->Build Phases
删除Upload Debug Symbols to Sentry
阶段
清理构建文件夹并再次尝试构建
【讨论】:
这行得通,谢谢。但是删除它有什么影响? 在 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
-
使用终端打开您的项目文件夹
运行此行:
chmod +x MapFileParser.sh
运行此行: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】:对我来说,原因是在更改应用程序名称时,我在名称中添加了单引号 '。 我尝试了不同的解决方案并遇到了不同的错误,但最后,在重命名应用程序时,我没有包含 ' 单引号,它解决了问题。
【讨论】:
以上是关于Xcode 10.2.1 命令 PhaseScriptExecution 失败,退出代码为非零的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 5 在 Xcode 10.2.1 中添加 alamofire
Xcode 10.2.1 界面构建器 - 无法在视图控制器(或文档大纲)上移动(拖动)UI 元素
如何使用户定义的运行时属性在 xcode 10.2.1 和 ios 12.2 中起作用
更新到 Xcode 10.2.1 后出现数百条警告。发布到 App Store 还可以吗?
安装 Xcode10.2.1 但仍然收到错误“使用 Swift 5.0.1 编译的模块无法由 Swift 5.1 编译器导入”