从 xCode 14.2 升级到 14.3 PhaseScriptExecution 失败,退出代码非零

Max*_*rit 37 xcode ios xcode14

我已从 xcode 14.2 升级到 xcode 14.3 beta,现在我无法再为任何 iOS 设备 (arm64) 存档,并出现以下错误:

PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks

mkdir -p /Users/max/Library/Developer/Xcode/DerivedData/Max-dmwafkgdrzqavzcmbdjbjgmmuxby/Build/Intermediates.noindex/ArchiveIntermediates/Release_preprod/BuildProductsPath/Release_preprod-iphoneos/MaxApp.app/Frameworks

Symlinked...

rsync --delete -av --filter P .*.?????? --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "../../../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/ActionSheetPicker_3_0.framework" "/Users/max/Library/Developer/Xcode/DerivedData/Max-dmwafkgdrzqavzcmbdjbjgmmuxby/Build/Intermediates.noindex/ArchiveIntermediates/Release_preprod/InstallationBuildProductsLocation/Applications/MaxApp.app/Frameworks"

building file list ... rsync: link_stat "/Users/max/Workspace/MaxApp/../../../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/ActionSheetPicker_3_0.framework" failed: No such file or directory (2)

done



sent 29 bytes  received 20 bytes  98.00 bytes/sec

total size is 0  speedup is 0.00

rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/9e200cfa-7d96-11ed-886f-a23c4f261b56/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]

Command PhaseScriptExecution failed with a nonzero exit code
Run Code Online (Sandbox Code Playgroud)

知道为什么它可以在 xCode 14.2 上正常工作,但不能在 xCode 14.3 beta 上正常工作吗?

我尝试删除 [CP] Embed Pods Frameworks 脚本,但它已重新创建它并遇到相同的问题。我尝试在模拟器中构建和调试,效果很好。我尝试删除“EXCLUDED_ARCHS[sdk=iphonesimulator*]”=arm64; 在 .pbxproj 文件中

Abd*_*yek 85

针对 Xcode 15 中遇到此问题的用户进行了更新:

解决这个问题是我一生中最棘手的错误之一。

我为 Flutter 项目解决了这个问题,在您的情况下,它可能是本机 iOS 项目。

执行以下操作会更容易:

1-使用 XCode 打开您的项目

2- 搜索"Symlinked..."

3- 替换source="$(readlink "${source}")"source="$(readlink -f "${source}")"

4-再次尝试构建您的项目或导出您的 ipa,它应该可以工作

在此输入图像描述

供参考,请在此处查看更多详细信息


chr*_*web 18

更新 2:2023 年 4 月 18 日,新的 CocoaPods 版本 1.12.1 终于发布,它包含解决此票证所涉及问题所需的修复:https ://github.com/CocoaPods/CocoaPods/releases/tag /1.12.1

注意:如果您编辑项目中的文件来解决问题,或者切换到 CocoaPods 的 master 分支,那么您可能需要撤消这些更改,因为由于 CocoaPods 1.12.1 的发布,它们不再需要,如果您保留您将来可能会遇到问题的更改,请参阅本票末尾的我的“编辑”以了解更多信息

更新1:带有修复的拉取请求(在我最初的答案中提到)已合并到cocoapods的主分支中(4月3日:https://github.com/CocoaPods/CocoaPods/issues/11808#issuecomment-1494709564)但它还没有发布,它应该是下一个版本 1.12.1 的一部分(正如其中一位维护者在这里评论的那样:https ://github.com/CocoaPods/CocoaPods/pull/11828#issuecomment-1496357883 )但是截至目前,这还没有发生(您可以在这里关注发布列表: https: //github.com/CocoaPods/CocoaPods/releases

如果您使用 ruby​​ gem 安装 cocoapods 并且不想从 Xcode 14.3 降级到 14.2 (如我最初的答案中所述),那么您可以使用以下命令手动切换到 cocoa pods 的 master 分支:

git clone https://github.com/CocoaPods/CocoaPods.git --branch master
cd CocoaPods
gem build cocoapods.gemspec
gem install ./cocoapods-*.gem
Run Code Online (Sandbox Code Playgroud)

最后,您需要从项目中手动删除以前安装的 pod 以及 pods 锁定文件,然后使用特定于您的框架的命令重新构建 pods 文件夹(例如用于电容器使用:)npx cap sync或使用以下命令:

pod install
Run Code Online (Sandbox Code Playgroud)

最初的答案:我有一个类似的问题,它似乎与可可豆荚有关,这里有一张关于该问题的票证:https ://github.com/CocoaPods/CocoaPods/issues/11808#issuecomment-1481244508

github 用户已经提交了具有潜在修复功能的拉取请求:https://github.com/CocoaPods/CocoaPods/pull/11828

如果您想自己应用修复程序而不是等待发布,您可以按照修复程序作者的建议进行操作(在他的后续评论中:https ://github.com/CocoaPods/CocoaPods/issues/11808#issuecomment- 1480802886):

解决方法是更新所有生成的 ...-frameworks.sh 文件,以将 -f 标志添加到对 readlink 的调用中。换句话说,替换:

source="$(readlink "${source}")"
Run Code Online (Sandbox Code Playgroud)

source="$(readlink -f "${source}")"
Run Code Online (Sandbox Code Playgroud)

如果你向下滚动一条评论,你会发现另一位 github 用户的评论,其中包含另一个临时解决方案,即将 xcode 构建工具从 14.3 降级到 14.2 进行构建(适用于 IDE 中的构建和 xcode 云中的构建):

以下是该票证的屏幕截图,显示了如何在 Xcode IDE 中从 14.3 命令行工具版本降级到 14.2 版本:

在 Xcode IDE (Xcode 14.3) 中,转到“设置”,打开“位置”选项卡,然后选择“命令行工具”并选择“Xcode 14.2 (14C18)”

Xcode IDE 更改正在使用的命令行工具版本

如果您使用 Xcode 云进行构建,请参考此屏幕截图来更改工作流程中的 Xcode 版本(您可以在 Xcode IDE 或 appstore connect 网站 ( https://appstoreconnect.json) 中编辑工作流程。 apple.com/)):

编辑“工作流程”>“环境”,然后选择 Xcode 版本“Xcode 14.2 (14C18)”(而不是 14.3)

xcode云降级xcode版本

编辑:我建议在这里观看 1.12.1 版本: https: //github.com/CocoaPods/CocoaPods/releases它将有修复,您还可以订阅 github 票证和 PR(如上所述),这样当修复已发布,您不再手动降级 xcode 版本(最好始终使用最新版本,如果您继续降级,将来会造成麻烦,因为在某些时候您用于应用程序的软件包和工具将与 xcode 14.2 不兼容)或者如果您选择使用 cocoapods master 分支,您可能在发布后想要撤消该更改,以便您确保再次使用发布版本而不是 master 分支(master 分支可能包括仍然不稳定的功能,因为与被认为稳定的发布版本相比,它们仍处于测试阶段)