错误:无法加载目标“arm64-apple-ios10.0-simulator”的标准库?

问题描述 投票:0回答:13

我更新了 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"
ios swift xcode xcode10
13个回答
36
投票

对我来说,只需重新启动 Xcode 就可以解决它。


27
投票

实际上通过在构建时选择

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

9
投票

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

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

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


8
投票

解决我的问题的是清理环境。显然,当在 Xcode 中运行脚本构建阶段时,设置了一些环境变量,这些变量可能会干扰 Swift 标准库的解析。我在从 Xcode“运行脚本”阶段执行迦太基构建时遇到了这个问题。

通过清除环境来执行命令:

env -i <command>

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

所以在你的情况下

env -i DEVELOPER_DIR="$DEVELOPER_DIR" PATH="$PATH" xcodebuild ...

8
投票

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

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

enter image description here


7
投票

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


2
投票

对我来说,以下解决了问题:

来自目标构建设置

Architectures 设置为

$(NATIVE_ARCH)
并将
$(ARCHS_STANDARD)
添加到 Valid Architectures

这可能会有所帮助Xcode 构建设置中的“架构”和“有效架构”有什么区别?


0
投票

尝试将 iOS 10 模拟器添加到您的 xCode 中。 enter image description here


0
投票

可能与错误的 swift 版本有关

尝试使用

检查您当前的 swift 套餐
swiftenv versions

分别使用安装或卸载命令

swiftenv uninstall (install)

安装

swiftenv
使用

brew install kylef/formulae/swiftenv

0
投票

感谢所有答案,但似乎是 Xcode 安装错误。我再次下载了 Xcode 并测试了在我的情况下一切正常。


0
投票

重置所有环境变量不是解决方案,因为这也会取消设置 SSH 密钥,这将导致在使用 SSH 身份验证时克隆失败。

但是,唯一有问题的环境变量是

LLVM_TARGET_TRIPLE_SUFFIX
,因此取消设置即可解决问题。

unset LLVM_TARGET_TRIPLE_SUFFIX
carthage update 2>&1

0
投票

如果您在使用 Apple Silicon 的 Mac 上构建 iOS 模拟器,您会遇到架构不匹配的问题,您必须使用带有 Rosetta

的模拟器

转到菜单产品→目标→显示所有运行目标。

enter image description here

这会向您显示所有可用的模拟器,选择一个带有 Rosetta 的模拟器并重试(清理构建文件夹,构建...)

enter image description here

Xcode:15.4 Mac:14.6(M2)


-1
投票

安装最新的 Xcode 10 GM 种子,遇到同样的问题尝试了很多解决方案,但更新到新的 Xcode 后问题得到解决。如果仍然存在问题,请尝试转到文件和项目设置,将构建系统设置为旧版构建系统,清理并构建。

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.