News & Events
Executando apps construídas em RAD Studio ou Delphi XE7/XE8 no iOS 9.0
- 22 de setembro de 2015
- Posted by: Adriano Santos
- Category: ios iOS 9.0 XE7 XE8 [Tutorial]
Na última sexta-feira, 18 de Setembro, a Apple liberou oficialmente sua nova versão do iOS para iPhones, iPads e iPod Touchs, a versão 9.0 tão esperada pelos usuários da maçã. Com isso novas API’s foram criadas e consequentemente linguagens de programação tiveram problemas. Com o Delphi não foi diferente, aplicativos gerados pelas versões XE7 e XE8 da ferramenta não estão conseguindo abrir nos equipamentos com o iOS 9.0 instalado. Felizmente o problema é facilmente contornável e é possível continuar compilando para a plataforma.
Como compatibilizar apps construídas em XE7/XE8 com iOS 9.0?
A solução evidentemente não é definitiva, haja vista que o ideal é recompilar sua aplicação usando a nova versão do Delphi, chamada de Delphi 10 Seattle, nova família de produtos Embarcadero. Para quem ainda precisa manter os aplicativos em XE7/8, eis a dica abaixo.
- Passo 1. Abra o Windows Explorer e navegue até a pasta “\Program Files (x86)\Embarcadero\Studio\16.0\source\fmx” (16.0 para XE8 ou 15.0 para XE7) e localize o arquivo FMX.Context.GLES.iOS.pas;
- Passo 2. Copie esse arquivo para o diretório de sua aplicação iOS;
- Passo 3. Em seguida adicione esse arquivo ao seu projeto usando o menu Project >> Add to Project (Shift + F11);
- Passo 4. Abra o arquivo no Delphi e localize o método CreateSharedContext ou vá direto à linha 52 no editor de código.
- Passo 5. Você precisará fazer uma pequena alteração. Na linha da atribuição da variável FSharedContext, troque o “Create” por “Alloc” como abaixo:
FSharedContext := TEAGLContext.Wrap(TEAGLContext.Create.initWithAPI(kEAGLRenderingAPIOpenGLES2));
troque por:
FSharedContext := TEAGLContext.Wrap(TEAGLContext.Alloc.initWithAPI(kEAGLRenderingAPIOpenGLES2));
- Passo 5. Salve o arquivo;
- Passo 6. O próximo passo é manter o SDK do iOS 8.4 adicionado ao Delphi em Tools > Options > SDK Manager.
Seu aparelho iPhone, iPad e iPod Touch pode continuar com a verão 9.0 do iOS normalmente, o segredo é compilar seu projeto com o iOS 8.4 carregado no Delphi, como mostrado na Figura 1.
Figura 1. iOS SDK 8.4 instalado no Delphi
Confira na imagem a seguir, o aplicativo rodando naturalmente em um iPhone 4S com iOS 9.0 instalado.
#GoToDelphi