【发布时间】:2020-11-14 19:27:06
【问题描述】:
在 Apple 商店提交我的应用时,我收到以下错误。
错误 ITMS-90209:“无效的段对齐。'.....app/Frameworks/libstdc++.6.0.9.dylib' 处的应用程序二进制文件没有正确的段对齐。尝试使用最新的 Xcode 重建应用程序版本。”
我使用的是 Xcode 11.4。我需要更新它吗?我在构建阶段包含了以下运行脚本。
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
感谢您的帮助:)。
【问题讨论】:
-
在更新 Xcode 之前,请确保您的 iOS 开发者设备是什么版本(如果有的话)。您可能无法调试,因为您无法交付到您自己的设备,因为它支持比 11.4 更新的操作系统。然后你必须更新 Xcode 或降级 iOS。 PS:但这不是你的问题.. 只是作为开发人员的友好提示。
-
我使用 iOS 9.1 作为目标设备。错误与“libstdc++.6.0.9.dylib”库相关联。也许我需要使用 'libstdc++.6.0.9.tbd' 来代替它。在嵌入选项中,它显示带有“libstdc++.6.0.9.dylib”库的“嵌入和签名”。我会检查不嵌入选项并更新。
标签: ios objective-c xcode app-store-connect xcode11.4