我更新了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"
答案 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)
几天前我收到了这个问题,所以我所做的是
这样做可以帮助我解决问题,并且能够再次运行该应用程序
答案 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后,此问题已解决。如果仍然存在问题,请尝试转到“文件和项目设置”,将构建系统设置为旧版构建系统,清理并构建。
答案 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)