Вполне вероятно, что это будет сделано с оптимизацией вычисления с плавающей точкой.
При сборке для выпуска по умолчанию Xcode попытается полностью оптимизировать ваш код, в том числе сделать ваши вычисления с плавающей запятой более эффективными. Тем не менее, иногда они могут быть неправильно оптимизированы, и это может вызвать серьезные проблемы, особенно с позиционированием / размером видов и т. Д.
Для меня это происходит при сборке для архитектуры release + armv6, и у меня была точно такая же проблема (реализована только после выпуска).
К счастью, есть способ отключить оптимизацию с плавающей точкой. Вот как это сделать:
Использование LLVM GCC 4.2
- Нажмите на свой проект в панели файлов слева
- Нажмите на название проекта под
Targets
(как показано ниже), затем нажмите «Настройки сборки».
- Найдите «большой палец» в поле поиска с правой стороны
- В разделе «LLVM GCC 4.2 - Генерация кода» вы должны увидеть параметр «Compile for Thumb». Если вы этого не сделаете, это потому, что вы используете компилятор Apple LLVM 3.0 (инструкции для этого ниже).
- Наведите указатель мыши на отпускание и щелкните значок плюса.
- Должна появиться новая опция, в раскрывающемся списке выберите «ARMv6» из раскрывающегося списка.
- Затем выберите «Нет» для этой опции. Теперь оно должно выглядеть так:
Использование компилятора Apple LLVM 3.0
- Выполните шаги 1 и 2 выше.
- Искать «другие флаги с» в окне поиска
- Выполните те же действия, что и выше, чтобы добавить определенную конфигурацию для выпуска ARMv6 +.
- Дважды щелкните поле с флагами и добавьте флаг
-mno-thumb
. Теперь он должен выглядеть так:
Если после этого в сборке релиза все еще будут проблемы, вы можете попробовать отключить компиляцию для большого пальца.
Надеюсь, это поможет.