Визуальные ошибки iOS 4.2.1 в режиме выпуска, но не в режиме отладки или iOS 5 - PullRequest
1 голос
/ 10 декабря 2011

При компиляции приложения для iOS все отлично выглядит в следующих сценариях:

  • iOS 5.0.1, режим отладки
  • iOS 5.0.1, режим выпуска
  • iOS 4.2.1, режим отладки

Когда я выполняю сборку в архиве в режиме выпуска и запускаюсь на iOS 4.2.1, возникает множество визуальных проблем.По большей части они состоят из неправильных текстовых позиций (по большей части UILabels) на экране.Я тестирую версию 4.2.1 на физическом устройстве;iPod touch 2-го поколения.Сборка с Xcode также версии 4.2.1 (4D502).

Проект включает в себя ряд сторонних библиотек.

Я пытался следующими способами решить эти проблемы без каких-либо положительных эффектов:

  • Удалены / изменены все параметры сборки, специфичные для сборки выпуска, для соответствия сборке отладки, включая уровень оптимизации кода, флаги компоновщика, символы отладки, другие флаги C / C ++ и все макросы препроцессора.
  • Переключение между доступными компиляторами: LLVM GCC 4.2 и Apple LLVM Compiler 3.0
  • Проверено что-либо необычное в фазах сборки и правилах сборки
  • Удалены все аргументы и диагностика, которыеприменил бы к сборке отладки в окне «Управление схемами».

Я не уверен, какие другие аспекты процесса сборки могут вмешиваться в приложение таким образом, особенно когда настройки сборкипочти идентичен на данный момент.Есть идеи?

ОБНОВЛЕНИЕ

Я обнаружил, что проект строится без проблем с использованием последней бета-версии Xcode.Я думаю, что это указывает на проблему, которая специфична для версии Clang, включенной в Xcode 4.2.1.Поскольку Apple не разрешает отправлять приложения, скомпилированные с бета-версиями XCode, я все еще ищу решение в 4.2.1.

Ответы [ 3 ]

2 голосов
/ 11 декабря 2011

Основываясь на отзывах, полученных на форумах разработчиков Apple, о том, что это может быть проблема с Clang, я попытался вернуться к LLVM GCC 4.2 в Xcode 4.2.1.

На этот раз после переключения компиляторов я вышел из Xcode и удалил все файлы из ~ / Library / Developer / Xcode / DerivedData, чтобы убедиться, что промежуточных продуктов не осталось.

С этого момента приложение работало корректно в режиме релиза на iOS 4.2.1.

1 голос
/ 10 декабря 2011

Это означает, что ваше приложение не поддерживает архитектуру armv6. Убедитесь, что все библиотеки поддерживают armv6, кроме armv7. Точная природа визуальных проблем может указывать на конкретную библиотеку.

0 голосов
/ 16 марта 2012

Я столкнулся с той же проблемой и не хотел переключаться обратно на GCC (что действительно устраняет проблемы).После дальнейших исследований я наткнулся на это решение: https://stackoverflow.com/a/8391405/1273518 Это отлично сработало для меня!

...