XCode Error PhaseScriptExecution failed with a nonzero exit code

回答 2 浏览 3732 2023-04-10

需要你的帮助。我已经创建了flutter应用程序,现在想在Xcode 14.3中创建用于分发的存档。Issue

  1. 归档功能被禁用。
  2. 得到这个错误,构建失败PhaseScriptExecution failed with a nonzero exit code

已经试过了

  1. Pod Install
  2. 清理构建文件夹
  3. 在你的终端应用中打开Xcode项目文件夹。 输入并执行以下命令:pod deintegrate 执行此命令:pod install 重新打开Xcode > 转到Product > Clean Build Folder.再次运行你的应用。

注意前往Keychain Access.Select Lock & unlock again from the login option is disabled.如何启用它?

期待着您的帮助。

SCREENSHOT 在此输入图片描述

Podfile

# Uncomment this line to define a global platform for your project
platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
Taimoor Sikander 提问于2023-04-10
能否请你提供一张错误的截图?这个错误并不足以解释原因。另外,请提供您的Xcode版本以及Masroor 2023-04-10
如果你使用的是Xcode 14.3,那么这就是你的解决方案。由于最新的cocoapods变化,所有现有项目的归档都失败了 stackoverflow.com/a/75921492/5461816Masroor 2023-04-10
2 个回答
#1楼
得票数 7

你应该在你的项目中搜索这个文件:

Pods-[your-project-name]-frameworks.sh (...-frameworks.sh)

并编辑这一节:

 if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink "${source}")"
  fi

 if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink -f "${source}")"
  fi

source="$(readlink "${source}")" -----> source="$(readlink -f "${source}")"

解决办法是更新所有生成的...-frameworks.sh文件,在调用readlink时加入-f标志。换句话说,将source="$(readlink "${source}")"替换为source="$(readlink -f "${source}")";

enter image description here

这个链接也许对你有帮助:https://github.com/CocoaPods/CocoaPods/issues/11808

Maziar Saadatfar 提问于2023-04-10
Maziar Saadatfar 修改于2023-04-10
你好,我在framework.sh类中尝试了这个。是否只有一个地方需要改变这个?因为我已经试过了,只在一个地方改变了readlink,但对我来说并不奏效。😢Taimoor Sikander 2023-04-10
我附了一张图片来回答,再清理一下,再存档。Maziar Saadatfar 2023-04-10
@TaimoorSikander github.com/CocoaPods/CocoaPods/issues/11808Maziar Saadatfar 2023-04-10
兄弟,我真的很感谢你,但还是同样的问题。甚至Achieve也被禁用。Taimoor Sikander 2023-04-10
@TaimoorSikander 能否请你附上一张图片?Maziar Saadatfar 2023-04-10
#2楼 已采纳
得票数 4

如同以下人士所建议的那样

@Maziar Saadatfar

按照他在下面第1步中的指示,在这之后,还有一件事是我必须做的,如第2步中所述。

  1. 你应该在你的项目中搜索到这个文件:

Pods-[your-project-name]-frameworks.sh (...-frameworks.sh)

并编辑这一节:

if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink "${source}")"
  fi

if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink -f "${source}")"
  fi

source="$(readlink "${source}")" -----> source="$(readlink -f "${source}")"

解决办法是更新所有生成的...-frameworks.sh文件,在调用readlink时加入-f标志。换句话说,将source="$(readlink "${source}")"替换为source="$(readlink -f "${source}")";

  1. 打开Xcode - 点击Runner(顶部) 从"PROJECT"中选择Runner,而不是从"TARGETS"中选择配置 并像这张照片一样更新所有模式 在此输入图片描述
Taimoor Sikander 提问于2023-04-10
你的问题得到解决了吗?Maziar Saadatfar 2023-04-12
我刚刚转移到M1芯片,这对我来说并不奏效。使用Xcode 14.3 & Flutter 3.7.11 & Cocoapods 1.12.0。rashidotm 2023-04-16