Xcode 10命令PhaseScriptExecution失败,退出代码非零

时间:2018-11-13 21:09:43

标签: ios swift xcode cocoapods

> PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/IntermediateBuildFilesPath/Scourt.build/Release-iphoneos/Scourt.build/Script-4A64BE3C662F48A22F9DF76B.sh (in target: Scourt)
    cd /Users/emin/Desktop/Scourt
    /bin/sh -c /Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/IntermediateBuildFilesPath/Scourt.build/Release-iphoneos/Scourt.build/Script-4A64BE3C662F48A22F9DF76B.sh

> mkdir -p /Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/BuildProductsPath/Release-iphoneos/Scourt.app/Frameworks
Symlinked...
rsync --delete -av --filter P .*.?????? --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "/Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GTMSessionFetcher.framework" "/Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/InstallationBuildProductsLocation/Applications/Scourt.app/Frameworks"
building file list ... done
GTMSessionFetcher.framework/
GTMSessionFetcher.framework/GTMSessionFetcher
GTMSessionFetcher.framework/Info.plist

> sent 2649460 bytes  received 70 bytes  5299060.00 bytes/sec
total size is 2648891  speedup is 1.00
Code Signing /Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/InstallationBuildProductsLocation/Applications/Scourt.app/Frameworks/GTMSessionFetcher.framework with Identity iPhone Developer: Ece Erben (R8UZ3BTH8G)
/usr/bin/codesign --force --sign 70C44EAE77928DED4CBEB959FF14A25BE0B82F2B  --preserve-metadata=identifier,entitlements '/Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/InstallationBuildProductsLocation/Applications/Scourt.app/Frameworks/GTMSessionFetcher.framework'
/Users/emin/Library/Developer/Xcode/DerivedData/Scourt-cbsfbquoxtlxrgevzukunjixvjna/Build/Intermediates.noindex/ArchiveIntermediates/Scourt/InstallationBuildProductsLocation/Applications/Scourt.app/Frameworks/GTMSessionFetcher.framework: errSecInternalComponent
Command PhaseScriptExecution failed with a nonzero exit code

我删除了派生数据。 尝试归档项目时,如何解决“命令PhaseScriptExecution失败,退出代码非零”错误。

我正在使用那些库 pod“ Firebase / Core” pod“ Firebase / Auth” pod'Firebase / Database' pod“ Firebase / Storage”

42 个答案:

答案 0 :(得分:59)

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

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

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

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

  • 仅在安装时运行脚本

Build Phases

答案 1 :(得分:28)

请尝试以下操作:

  1. pod deintegrate
  2. pod install
  3. XCode Clean构建

或者,单行

pod deintegrate; pod install

答案 2 :(得分:8)

对我来说,我正在删除Crashlytics,Fabric和FirebaseCrashlytics。因此,有一个用于Fabric的脚本(运行脚本)。因此,由于应用程序首先运行,并且我已经删除了框架,所以我遇到了此错误。因此,我删除了Fabrics的“运行脚本”选项卡,然后运行良好。

答案 3 :(得分:4)

进入钥匙串访问->右键单击登录->再次锁定和解锁 ->清除Xcode项目,然后再次进行构建。

答案 4 :(得分:4)

Xcode->文件->工作区设置...->将“生成系统”更改为“旧版生成系统”。

就这样。 玩得开心

答案 5 :(得分:3)

在我的情况下,错误是由于计算机空间不足而引起的。删除旧版本可解决此问题。

答案 6 :(得分:3)

如果需要,请尝试此步骤:Xcode 11.5 1-打开终端:cd Path_project 2-CD荚清洁 3- Pod安装

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

1-打开目标的构建阶段-> [CP]嵌入式Pod框架 检查此字段 enter image description here

答案 7 :(得分:2)

由于错误,我已经从系统中卸载了carthage。补充说,这为我解决了这个问题。

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

第2步:

carthage update --platform iOS --cache-builds

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

答案 8 :(得分:2)

对于Xcode 11,React Native开发环境。 当不更新依赖项时,我通常会遇到此问题。

您可以尝试执行以下步骤,这通常对我有用:

1-删除您的Podfile.lock(为此,我想在终端上使用命令--rm -rf Podfile.lock)

2-删除您的Pods文件夹(为此,我想在终端中使用命令-rm -rf Pods)

3-删除您的.xcworkspace

4- Pod安装

5-将您的项目清除到XCode> Product> Clean Build Folder

答案 9 :(得分:2)

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

我写的Firebase Crashlytics类似

${PODS_ROOT}/FirebaseCrashlytics/run

我将其更改为双引号

"${PODS_ROOT}/FirebaseCrashlytics/run"

答案 10 :(得分:2)

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

xCode 12.3 构建设置->仅构建活动架构,将其设置为是。

答案 11 :(得分:2)

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

答案 12 :(得分:2)

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

FIRST_PARAM=SOMETHING

SECOND_PARAM_AFTER_EMPTY_LINE=SOMETHING

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

答案 13 :(得分:1)

原因

这个构建阶段还允许您提供输入和输出文件的列表。当没有提供输入和输出文件时,脚本总是运行。当提供输入和输出文件时,脚本仅在之前从未运行过、输入文件之一已更改或输出文件之一丢失时运行

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

解决方案

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

enter image description here

答案 14 :(得分:1)

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

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

所以通过运行 flutter 命令

flutter run

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

答案 15 :(得分:1)

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

答案 16 :(得分:1)

从项目路径中提取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"

答案 17 :(得分:1)

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

在这种情况下,您有2个选择:

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

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

Run Phase Script

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

最初,脚本位置路径是这样写的:

$SRCROOT/scripts/clean-assets.sh

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

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

通过在 SRCROOT 中添加引号,将其更改为“ $ SRCROOT” ,错误将消失。

答案 18 :(得分:1)

对我来说,问题出在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

答案 19 :(得分:1)

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

答案 20 :(得分:1)

就我而言,我已经从XCode的构建阶段删除了 运行脚本

答案 21 :(得分:0)

我尝试了所有无用的方法 对我来说,这是文件夹名称中的空格

/ swift文件/项目a / code.xcworkspace-> /swift_files/project_a/code.xcworkspace
如果我看得更深,它就停在/ swift

答案 22 :(得分:0)

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

转到Target > ArchitecturesBuild Active Architecture Only 设置为 YESExcluded Architecturesx86_64 enter image description here

答案 23 :(得分:0)

对我来说,问题在于哨兵。

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

答案 24 :(得分:0)

从 Xcode 12.2 开始,您需要从主目标和 CocoaPods 目标中删除 $(VALID_ARCHS) 构建设置,并为所有目标使用 $(ARCHS_STANDARD)。此外,切换到 Legacy Build System 不再是一个好的解决方案,因为 Xcode 将在未来版本中弃用它。在应用这些更改之后和新的重建之前清除派生数据。

答案 25 :(得分:0)

对我有用的是去排除架构,然后在提供的每个选项上删除 arm64,然后清理构建

答案 26 :(得分:0)

我从 Firebase CocoaPods 切换到 Swift Package Manager。

旧的符号上传脚本仍然列在“构建脚本”阶段。

删除它并替换为推荐的内容。在发布时它是 ' “${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run”'。

答案 27 :(得分:0)

我遇到这个问题是因为我的项目文件名有空格,例如。 "Ariven 2" ,因此更改为 "Ariven2" 解决了问题。

快乐编码:)

答案 28 :(得分:0)

Xcode 12.2解决方案: 转到:

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

答案 29 :(得分:0)

尝试一下!

构建阶段> 添加> 新运行脚本阶段

代码:

# Type a script or drag a script file from your workspace to insert its path.
# skip if we run in debug
if [ "$CONFIGURATION" == "Debug" ]; then
echo "Skip frameworks cleaning in debug version"
exit 0
fi

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

Xcode将拒绝对其进行签名。上面的脚本删除了未使用的体系结构。

答案 30 :(得分:0)

对我有帮助的是: 在“目标”->“签名和功能”>“取消选中”中,自动管理签名(或选中并取消选中是否未选中)>构建项目

答案 31 :(得分:0)

在我的情况下,我在Xcode项目的脚本中更改了一行,并且该行写得不好(我忘了在行末添加“;”)。所以我加了“;”并清理并构建项目。

答案 32 :(得分:0)

删除fileName中的空格

ex)

  • 按原样:/ Users / user / Desktop / My Projects / TestProject /
  • 目标:/ Users / user / Desktop / MyProjects / TestProject /

答案 33 :(得分:0)

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

brew update
brew upgrade
brew cleanup

答案 34 :(得分:0)

如果您正在执行Unity Project。您会收到此错误。

Command PhaseScriptExecution failed with a nonzero exit code

解决方案非常简单

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

先决条件:安装了可可足类

  1. 安装“ cocoapods” 用于在终端中运行以下行:$sudo gem install cocoapods
  2. 使用终端打开项目文件夹
  3. 运行以下行:chmod +x MapFileParser.sh
  4. 运行以下行:chmod +x process_symbols.sh

对我有用”

我认为没有必要安装“ cocoapods”,只需足够执行第3步和第4步即可解决,但是您可以尝试一下。

答案 35 :(得分:0)

在通过Apple开发人员主页吊销证书并再次添加证书之后,即使在之后看起来有所不同,我在Xcode 11.5中也遇到了同样的问题:

每次我尝试归档我的应用程序时,它最终都会失败(不是Pod,而是我的实际应用程序),并带有相同的PhaseScriptExecution failed with a nonzero exit code错误消息。有/有一个有效的团队,在“签名和功能”(Xcode中的项目文件)中带有“ Apple Development”签名证书,并且锁定和解锁了钥匙串,清理并构建了项目,重新启动,...没有用。

该问题是由于拥有两个我必须偶然添加的相同类型的活动证书以及更新的证书而引起的。我同时删除了更新的副本和重复的副本,然后又恢复了工作。

您可以找到自己的证书here或这样的页面:

还请检查您的钥匙串中是否有重复项!不过请小心-除非您知道自己在做什么,否则请勿删除或添加任何内容,否则可能会造成巨大混乱!

答案 36 :(得分:0)

如果您因env: node: No such file or directory来到这里。 检查其他答案:https://stackoverflow.com/a/50419734/8290290

答案 37 :(得分:0)

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

或。

尝试一下:

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

答案 38 :(得分:0)

我有类似的错误

/{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文件夹的回购压缩文件。事实证明,在Pods/Target Support Files/Pods-{PROJECT}/中的* .sh文件在最初创建和发送给我之间的某个时刻,都失去了其执行权限。提供这些文件+x是解决方案

答案 39 :(得分:-1)

转到Targets->并删除运行脚本。再次

答案 40 :(得分:-2)

可能您应该执行以下操作:

  • 删除.xcworkspacePod文件夹
  • 运行pod install
  • 删除派生数据
  • 清理所有项目(在单击单击之前按alt)

我尝试了以上这些事情,对我有用。

答案 41 :(得分:-2)

**I don't know why but restarting the computer solved this error.**

如果上述解决方案均无效,则重新启动计算机。