【问题标题】:Error while submitting app on Apple Store在 Apple Store 上提交应用程序时出错
【发布时间】: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


【解决方案1】:

问题在于“libstdc++.6.0.9.dylib”库。我正在使用一个使用这个库的旧框架,并且因为我在模拟器上运行我的代码,因此,我需要在运行时使用这个库来在支持 iOS 13 的模拟器上运行我的代码。你不需要这个库的支持在设备上。从 Embedded Frameworks 中删除该库后,现在一切正常。如需更详细的答案,请查看此链接。

https://github.com/gali8/Tesseract-OCR-iOS/issues/379

【讨论】:

    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 2020-10-17
    • 2014-03-07
    • 1970-01-01
    • 2013-09-25
    • 2014-08-30
    • 2020-02-17
    相关资源
    最近更新 更多