Xcode 11 Beta 7中Command PhaseScriptExecution失败,退出代码为非零值([CP]复制Pods资源)。

4

最近下载了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中,使用同一行编译是正确的。

我已经尝试重新启动计算机、清除、删除派生数据等所有常规操作。现在我不知道还要去哪里找了。如有建议,将不胜感激。谢谢!


1
你是否检查了Xcode首选项>位置,然后验证了你正在运行哪个版本的命令行工具?它应该是11.0。 - CodeBender
哦,是的,它被设置为11.0。 - Wernzy
6个回答

7

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

输入图像描述


6

更新

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

  • 首先将JSQMessagesViewController fork到你的GitHub repo中
  • 将repo克隆到本地文件夹中
  • 用Xcode11打开JSQMessages.xcworkspace
  • 打开JSQMessagesViewController -> Views文件夹
  • 点击一个xib文件并设置Interface Builder Document编译为iOS10.0及以上
  • 以同样的方式设置每个xib文件。
  • 把这些更改推送到你的repo中,并使用pod install安装该repo

希望这可以帮助到你 :)


很遗憾,这并没有帮助。 - Wernzy

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

1
我在将Firebase crashlytics添加到Build Phases -> Run Script时遇到了同样的问题。最近我更新到了新的Catalina 10.15.4操作系统,由于我将shell从bash更改为zsh,这就开始出现问题了。所以,像下面这样将运行脚本的shell路径更改一下,或者使用/bin/zsh,它就可以正常工作了。

enter image description here


0
原来在问题中有一个xib文件编译时出现了错误,但没有被报告。将pod直接复制到我的项目中后开始显示这个问题。

0
我在使用Carthage时遇到了这个错误好几天。我通过进入“Build Phases”>“Embed Frameworks”,然后取消选中“Code Sign on copy”来解决了它。 然后重新引导 carthage bootstrap --platform iOS 然后在xCode中重新构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接