"${PODS_ROOT}/SwiftLint/swiftlint" 导致 "Command PhaseScriptExecution failed with a nonzero exit code" 和 Xcode 10

"${PODS_ROOT}/SwiftLint/swiftlint" causes "Command PhaseScriptExecution failed with a nonzero exit code" with Xcode 10

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

sourcekit: [1:connection-event-handler:10499: 0.0000] Connection interruptsourcekit: [1:updateSemanticEditorDelay:10499: 0.0007] disabling semantic editor for 10 secondssourcekit: [1:pingService:10499: 0.0007] pinging servicesourcekitten: connection to SourceKitService restored!
Connection interrupted
Never call this for file that sourcekitd fails.: file File+Cache.swift, line 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: line 2: 34382 Abort trap: 6 "${PODS_ROOT}/SwiftLint/swiftlint"
Command PhaseScriptExecution failed with a nonzero exit code

Swift 4.1
CocoaPods 1.5.3
Swift皮棉 0.26.0

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

原因

似乎与SwiftLint #2276, itself related to SourceKitten 0.21.0, fixed in SourceKitten 0.21.1和SwiftLint Master有关。

解决方案

更新到 SwiftLint 0.27.0 或更新版本:

pod 'SwiftLint', '~> 0.27'

(和运行 pod update SwiftLint

我有一台新的 Macbook,在尝试存档时遇到了这个错误。新机器忘记装cocopods了,所以装了,然后重启电脑重启Xcode就可以了。

当我等待并让项目完成索引后再做任何事情时,这个问题就解决了!

对我来说,在 "Build Setting -> valid architectures" 中添加 arm64 架构解决了这个问题。

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

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

我使用的 pod 没有为 Xcode 10 更新,所以对我有用的解决方案是从我的项目中删除 Cocoapods 然后重新安装(项目是创建的在 Xcode 9).

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

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

之后,再次安装 pods。

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

我在后台有一个身份验证过程(在 Xcode 之外)运行,这似乎是我遇到此问题的原因。我打开了钥匙串对话框,询问我的密码。解决方案是重新启动机器。

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

如果你得到

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

这是因为钥匙串访问。

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

问题已解决:)

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

"$(SRCROOT)/我的framework/path"

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

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

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

希望这对你也有帮助。

我在使用 cocoa 后在我的 ionic4 应用程序上遇到了这个问题pods。我的问题是在 Targets->Build Phases->Embed Pods Frameworks 中,我 到 Pods-MyApp-frameworks.sh script 的路径错误更正该路径为我解决了这个问题。 这是因为大多数时候 $PODS_ROOT 变量在安装 pods

后没有设置

解决方案对我有用

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

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

再次为此项目安装 pod。

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

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

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"

然后清洁 运行

对我来说,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)

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

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

那一切就ok了

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

只有以下对我有帮助。

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

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

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

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

例如:

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

应该改为

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

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