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

时间:2018-07-27 13:23:50

标签: ios swift xcode 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"

11 个答案:

答案 0 :(得分:19)

实际上是通过在构建时选择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

答案 1 :(得分:17)

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

答案 2 :(得分:7)

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

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

env -i <command>

但是,您可能想保留PATH和DEVELOPER_DIR环境变量,尤其是在安装了多个Xcode版本的情况下。

所以在你的情况下

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

答案 3 :(得分:5)

我只是这个问题随机发生。我的代码中没有构建错误。顺利转入新的模拟器并清理构建文件夹后,我重新启动了xCode(11.5),问题已自动解决。每当您遇到奇怪的构建失败时,请重新启动xCode。

答案 4 :(得分:3)

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

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

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

答案 5 :(得分:1)

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

从目标构建设置开始

体系结构设置为$(NATIVE_ARCH),并将$(ARCHS_STANDARD)添加到有效体系结构

这可能What's the difference between "Architectures" and "Valid Architectures" in Xcode Build Settings?

有帮助

答案 6 :(得分:0)

可能连接到错误的Swift版本

尝试使用

检查您当前的快捷软件包
swiftenv versions

分别使用安装或卸载命令

swiftenv uninstall (install)

要安装swiftenv,请使用

brew install kylef/formulae/swiftenv

答案 7 :(得分:0)

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

enter image description here

答案 8 :(得分:0)

感谢所有答案,但似乎是Xcode安装错误..我再次下载了Xcode,并测试了所有情况下的工作情况。

答案 9 :(得分:0)

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

但是,唯一有问题的环境变量是select a.*, (select max(b.value) keep (dense_rank first order by b.date desc) from b where b.date <= a.date ) b_value from a; ,因此无需设置即可解决问题。

LLVM_TARGET_TRIPLE_SUFFIX

答案 10 :(得分:-2)

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