Ich habe mein Xcode aktualisiert, kann aber nicht bauen. Es versagt mit:
<unknown>:0: error: unable to load standard library for target 'arm64-Apple-ios10.0-simulator'
Skript zusammenführen:
# 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"
Dieses Problem wurde gelöst, indem Sie Generic iOS Device
beim Aufbauen eines Simulatorgeräts auswählen.
Edit: Ich sollte in Xcode 10 erwähnen.
Edit 2: Ich werde mein universelles Framework-Skript posten
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
Was das Problem in meinem Fall behoben hat, ist das Löschen der Umgebung. Beim Ausführen einer Skripterstellungsphase in Xcode werden offenbar einige Umgebungsvariablen festgelegt, die die Auflösung der Swift-Standardbibliothek beeinträchtigen können. Ich hatte dieses Problem beim Ausführen eines Karthago-Builds aus einer Xcode- "Run Script" -Phase.
Führen Sie einen Befehl aus, indem Sie die Umgebung löschen mit:
env -i <command>
Möglicherweise möchten Sie jedoch die Umgebungsvariablen PATH und DEVELOPER_DIR beibehalten, insbesondere wenn mehrere Xcode-Versionen installiert sind.
so in deinem Fall
env -i DEVELOPER_DIR="$DEVELOPER_DIR" PATH="$PATH" xcodebuild ...
Vielen Dank für die Antworten, aber es scheint, dass es sich um einen Xcode-Installationsfehler handelt. Ich habe Xcode erneut heruntergeladen und getestet, dass in meinem Fall alles einwandfrei funktioniert.
Installieren Sie die neueste Version von Xcode 10 GM, da vor demselben Problem viele Lösungen gefunden wurden, die jedoch nach der Aktualisierung auf ein neues Xcode-Problem behoben wurden. Wenn noch ein Problem vorhanden ist, gehen Sie zu Datei- und Projekteinstellungen, setzen Sie Build-System auf Legacy-Build-System, bereinigen und erstellen.
Das Zurücksetzen aller Umgebungsvariablen ist keine Lösung, da hierdurch beispielsweise auch die SSH-Schlüssel gelöscht werden und das Klonen fehlschlägt, wenn die SSH-Authentifizierung verwendet wird.
Die einzige problematische Umgebungsvariable ist jedoch LLVM_TARGET_TRIPLE_SUFFIX
, das löst das Problem.
unset LLVM_TARGET_TRIPLE_SUFFIX
carthage update 2>&1
Möglicherweise mit schlechter Swift-Version verbunden
Versuchen Sie, Ihre aktuellen Swift-Pakete mit zu überprüfen
swiftenv versions
verwenden Sie die Installations- bzw. Deinstallationsbefehle
swiftenv uninstall (install)
Um swiftenv
zu installieren, verwenden Sie
brew install kylef/formulae/swiftenv