Ошибка при отправке приложения в Apple Store
При отправке своего приложения в магазин 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
Спасибо за вашу помощь:).
1 ответ
Проблема была в библиотеке libstdC++.6.0.9.dylib. Я использовал старую платформу, которая использует эту библиотеку, и, поскольку я запускал свой код на симуляторе, мне нужна была эта библиотека во время выполнения для запуска моего кода на симуляторе, поддерживающем iOS 13. Вам не нужна поддержка этой библиотеки. на устройстве. После удаления библиотеки из Embedded Frameworks теперь все работает нормально. Более подробный ответ можно найти по этой ссылке.