错误:无法为目标'arm64-apple-ios10.0-simulator'加载标准库?

tp2*_*376 14 xcode ios swift xcode10

我更新了我的Xcode但无法构建.它失败了:

<unknown>:0: error: unable to load standard library for target 'arm64-apple-ios10.0-simulator'

合并脚本:

 # 1
# Set bash script to exit immediately if any commands fail.
set -e

# 2
# Setup some constants for use later on.
FRAMEWORK_NAME="SDK"
OUTPUT_PATH="${SRCROOT}"

# 3
# If remnants from a previous build exist, delete them.
if [ -d "${SRCROOT}/build" ]; then
rm -rf "${SRCROOT}/build"
fi

# 4
# Build the framework for device and for simulator (using
# all needed architectures).
xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch 
arm64 -arch armv7 -arch armv7s only_active_arch=no defines_module=yes - 
sdk "iphoneos"
xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch 
x86_64 -arch i386 only_active_arch=no defines_module=yes -sdk 
"iphonesimulator"
Run Code Online (Sandbox Code Playgroud)

Ale*_*tiş 22

实际上通过选择Generic iOS Device何时构建而不是模拟器设备来解决这个问题.

编辑:我应该提到,在Xcode 10中.

编辑2:我将发布我的通用框架脚本

set -e

######################
# Options
######################

REVEAL_ARCHIVE_IN_FINDER=true

FRAMEWORK_NAME="${PROJECT_NAME}"

SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"

DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"

UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"

FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"


######################
# Build Frameworks
######################


xcodebuild -project ${PROJECT_FILE_PATH} -scheme ${PROJECT_NAME} -sdk iphonesimulator -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator 2>&1


xcodebuild -project ${PROJECT_FILE_PATH} -scheme ${PROJECT_NAME} -sdk iphoneos -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos 2>&1


######################
# Create directory for universal
######################

rm -rf "${UNIVERSAL_LIBRARY_DIR}"

mkdir "${UNIVERSAL_LIBRARY_DIR}"

mkdir "${FRAMEWORK}"


######################
# Copy files Framework
######################

cp -r "${DEVICE_LIBRARY_PATH}/." "${FRAMEWORK}"


######################
# Make an universal binary
######################

lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output "${FRAMEWORK}/${FRAMEWORK_NAME}" | echo

# For Swift framework, Swiftmodule needs to be copied in the universal framework
if [ -d "${SIMULATOR_LIBRARY_PATH}/Modules/${FRAMEWORK_NAME}.swiftmodule/" ]; then
cp -f ${SIMULATOR_LIBRARY_PATH}/Modules/${FRAMEWORK_NAME}.swiftmodule/* "${FRAMEWORK}/Modules/${FRAMEWORK_NAME}.swiftmodule/" | echo
                                                                      fi

                                                                      if [ -d "${DEVICE_LIBRARY_PATH}/Modules/${FRAMEWORK_NAME}.swiftmodule/" ]; then
                                                                      cp -f ${DEVICE_LIBRARY_PATH}/Modules/${FRAMEWORK_NAME}.swiftmodule/* "${FRAMEWORK}/Modules/${FRAMEWORK_NAME}.swiftmodule/" | echo
                                                                      fi

                                                                      ######################
                                                                      # On Release, copy the result to release directory
                                                                      ######################
                                                                      OUTPUT_DIR="${PROJECT_DIR}/Output/${FRAMEWORK_NAME}-${CONFIGURATION}-iphoneuniversal/"

                                                                      rm -rf "$OUTPUT_DIR"
                                                                      mkdir -p "$OUTPUT_DIR"

                                                                      cp -r "${FRAMEWORK}" "$OUTPUT_DIR"

                                                                      if [ ${REVEAL_ARCHIVE_IN_FINDER} = true ]; then
                                                                      open "${OUTPUT_DIR}/"
                                                                  fi
Run Code Online (Sandbox Code Playgroud)


MrA*_*An3 22

对我来说只是重新启动 Xcode 解决了它。

  • 同样在这里,某些东西似乎在后台更新了,当我启动 xcode 时,它​​要求安装新组件,说是的,一切又恢复正常了。 (2认同)

Wer*_*her 8

在我的案例中解决问题的是清除环境.显然,在Xcode中运行脚本构建阶段时,会设置一些环境变量,这些变量可能会影响Swift标准库的解析.从Xcode"Run Script"阶段执行carthage构建时遇到了这个问题.

通过以下方式清除环境来执行命令:

env -i <command>
Run Code Online (Sandbox Code Playgroud)

您可能希望保留PATH和DEVELOPER_DIR环境变量,特别是当您安装了多个Xcode版本时.

所以在你的情况下

env -i DEVELOPER_DIR="$DEVELOPER_DIR" PATH="$PATH" xcodebuild ...
Run Code Online (Sandbox Code Playgroud)

  • 从[引用的迦太基GitHub问题](https://github.com/Carthage/Carthage/issues/2613#issuecomment-471575964)来看,有问题的env变量似乎是“ LLVM_TARGET_TRIPLE_SUFFIX”。取消设置可以为我解决问题(谢谢@DávidPásztor!)。 (3认同)

Mah*_*dam 8

对于新版本的 Xcode,请尝试通过 Rosetta 打开 Xcode

右键单击应用程序文件夹中的 Xcode -> 获取信息 -> 将 Open with Rosetta 设置为 true

在此输入图像描述


NSD*_*umb 7

几天前我遇到了这个问题,所以我所做的是

  • 退出 Xcode
  • 删除派生数据文件夹
  • 启动 Xcode 并进行了干净的构建

这样做帮助我解决了问题,并且我能够再次运行该应用程序


小智 6

我只是随机出现了这个问题。我的代码中没有构建错误。切换到新模拟器并清理构建文件夹但没有运气后,我重新启动了 xCode (11.5),问题自行解决。每当您遇到奇怪的构建失败时,请重新启动 xCode。

  • 这是有人否决的正确答案。重新启动 Xcode 会导致安装 iOS/SDK 更新的附加组件,当原因与更新相关时,这会消除问题。 (2认同)

oxi*_*gen 0

尝试将 iOS 10 模拟器添加到您的 xCode 中。 在此输入图像描述