Xcode 11 Beta 7 命令 PhaseScriptExecution 失败,退出代码非零([CP] Copy Pods Resources)

Posted

技术标签:

【中文标题】Xcode 11 Beta 7 命令 PhaseScriptExecution 失败,退出代码非零([CP] Copy Pods Resources)【英文标题】:Xcode 11 Beta 7 Command PhaseScriptExecution failed with a nonzero exit code ([CP] Copy Pods Resources) 【发布时间】:2019-09-06 20:31:49 【问题描述】:

最近下载了 Xcode 11 Beta 以在 ios 13 中测试我的应用程序,但我遇到了一个我似乎无法弄清楚的问题。每次在 [CP] Copy Pods Resources 步骤中构建都会失败,提示“Command PhaseScriptExecution failed with a nonzero exit code”。现在我知道这是任何运行脚本阶段失败时的错误,但通常会提供 一些 有用的信息以及此错误。

错误输出:

ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 11.0 --output-format human-readable-text --compile /Users/chris/Library/Developer/Xcode/DerivedData/SmartPager-dcfjsnhrgkjfeabbvafghvwsrsxr/Build/Products/Debug-iphoneos/SmartPager Sandbox.app/JSQMessagesViewController.nib 
/Users/chris/Work/projectname/Pods/JSQMessagesViewController/JSQMessagesViewController/Controllers/JSQMessagesViewController.xib --sdk /Users/chris/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.sdk --target-device ipad --target-device iphone
2019-09-06 13:26:17.003 IBAgent-iOS[39395:514843] Incorrect screen size for <UIScreen: 0x7fb0e05245a0; bounds = 0, 0, 0, 0> in UICollectionViewData
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 11.0 --output-format human-readable-text --compile /Users/chris/Library/Developer/Xcode/DerivedData/SmartPager-dcfjsnhrgkjfeabbvafghvwsrsxr/Build/Products/Debug-iphoneos/SmartPager Sandbox.app/JSQMessagesCollectionViewCellIncoming.nib /Users/chris/Work/projectname/Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.xib --sdk /Users/chris/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.0.sdk --target-device ipad --target-device iphone
Command PhaseScriptExecution failed with a nonzero exit code

相关信息: 据我所知,这可能与我们正在使用的已弃用的 cocoapod 有关,特别是 JSQMessagesViewController (7.3.5)。显然使用不推荐使用的库并不是很好,但它在 Xcode 10 中构建和运行都很好,所以我不知道问题可能是什么。在一个单独的项目中,我尝试仅添加此 pod,但它会引发相同的错误。关于“屏幕尺寸不正确...”的行似乎只是一个警告而不是错误,因为在 Xcode 10 中它可以使用同一行正确编译。

我尝试过重新启动计算机、清理、删除派生数据,以及所有常见的东西。我只是不知道现在还能去哪里看。任何建议将不胜感激。谢谢!

【问题讨论】:

您是否检查了 Xcode 首选项 > 位置,然后验证了您正在运行的命令行工具的版本?应该是 11.0 哦,是的,设置为 11.0 【参考方案1】:

正如 Ethan Wen 评论的那样,在您的项目内部(如果您使用 Cocoapods)搜索 JSQMessagesViewController 的所有 .xib 文件,并在第一个选项卡(文件检查器)的右侧面板中查找“Interface Builder Document”部分并将其从“iOS 8.0 及更高版本”更改为“iOS 10.0 及更高版本”。这在 XCode 11 GM 种子 2 中对我有用。

【讨论】:

【参考方案2】:

更新

终于,我找到了解决这个问题的方法。

首先将JSQMessagesViewController fork 到您的 GitHub 存储库 将 repo 克隆到本地文件夹 用 Xcode11 打开JSQMessages.xcworkspace 打开 JSQMessagesViewController -> Views 文件夹 单击其中一个 xib 文件并为 iOS10.0 and Later 设置 Interface Builder Document 构建 以这种方式设置每个 xib 文件。 将这些更改推送到您的存储库和pod install此存储库

希望对你有帮助:)

【讨论】:

不幸的是这没有帮助【参考方案3】:

丢弃本地更改并在清理项目后尝试构建项目。这解决了我在 XCode 11 上的问题。

【讨论】:

【参考方案4】:

我在将 Firebase crashlytics 添加到 Build Phases -> Run Script 时遇到了同样的问题。

最近我更新到了新的 OS Catalina 10.15.4,它开始导致问题,因为我将 shell 从 bash 更改为 zsh

所以正如您所猜测的,只需将您的运行脚本 shell 路径更改为如下所示。或/bin/zsh,它会起作用。

【讨论】:

【参考方案5】:

事实证明,编译其中一个未报告的有问题的 xib 文件时出错。将 pod 直接复制到我的项目中开始显示问题。

【讨论】:

【参考方案6】:

我在使用 Carthage 的几天里都遇到了这个错误。我可以通过转到 Build Phases > Embed Frameworks 然后取消选中“Code Sign on copy”来修复它。 然后重新引导 carthage bootstrap -- 平台 iOS 然后在 xCode 中重建

【讨论】:

以上是关于Xcode 11 Beta 7 命令 PhaseScriptExecution 失败,退出代码非零([CP] Copy Pods Resources)的主要内容,如果未能解决你的问题,请参考以下文章

由于信号 9 Xcode 11 beta,编译命令失败

可选类型 '$T11' 不能用作布尔值;自安装 XCode 6 beta 7 以来测试 '!= nil'

可选类型 '$T11' 不能用作布尔值;自安装 XCode 6 beta 7 以来测试 '!= nil'

升级 Xcode 11 beta 7?先把 macOS Catalina 也升了;滴滴跨端框架正式发布;Lookin 手机端开源

SwiftUI Xcode 11 beta 7 @Binding for collections 正在打破预览

iPad 模拟器上的 SKScene 问题无法在 Xcode 11 beta 7 中填满屏幕