Прерванный класс исключения (6) в развертывании Delphi XE8 на iPhone

У меня есть мобильное приложение, написанное на Delphi XE8 поверх Windows 7. В прошлую пятницу оно было скомпилировано и запущено на моем iPhone. На выходных я обновил свою версию iOS до 9.0.1. Сегодня утром (понедельник) я получаю сообщение об ошибке: «Класс исключений проекта прерван (6).

Проект компилируется и строится нормально, но когда я пытаюсь развернуть приложение на своем iPhone, возникает исключение:

FSharedContext := TEAGLContext.Wrap(TEAGLContext.Create.initWithAPI(kEAGLRenderingAPIOpenGLES2));

of

class procedure TCustomContextIOS.CreateSharedContext;
begin
  if FSharedContext = nil then
  begin
    FSharedContext := TEAGLContext.Wrap(TEAGLContext.Create.initWithAPI(kEAGLRenderingAPIOpenGLES2));
    TEAGLContext.OCClass.setCurrentContext(FSharedContext);
  end;
end;

в блоке FMX.Context.GLES.iOS

Может ли это быть вызвано обновлением версии iOS или что-то еще пошло не так? Другие сообщения, которые я нашел по этой проблеме, по-видимому, имеют какое-то отношение к развертыванию на Android, но я использую iPhone.

Любая помощь приветствуется.


person Leonard M.    schedule 28.09.2015    source источник


Ответы (1)


Вы должны применить патч вручную для целевой iOS 9 с XE8. В блоге есть сообщение с описанием шагов: Этапы создания 32-разрядных приложений iOS для iOS 9 с XE7 и XE8. Все сводится к замене Create на Alloc в строке 52 файла FMX.Context.GLES.iOS.pas с использованием локальной копии этого файла.

FSharedContext := TEAGLContext.Wrap(TEAGLContext.Alloc.initWithAPI(kEAGLRenderingAPIOpenGLES2));
person Uwe Raabe    schedule 29.09.2015
comment
Это исправило это. Я гуглил «ios 9.0.1 XE8», и это решение не подходило. Если бы я погуглил «ios 9 XE8», это был бы первый хит. Спасибо за помощь Уве. - person Leonard M.; 29.09.2015