Criando aplicativos para o iPhone no Linux (sem Xcode e MacOS X)

Consultando diversos especialistas da plataforma iPhone, não obtive sucesso na busca de alternativa ao desenvolvimento para os aparelhos da APPLE no Linux. Mas no fundo o Cortex-A8 é um processador ARM, então deixo neste documento como usar o compilador llvm-gcc-4.2 para a arquitetura Darwin-Arm, assim permitindo criar binários para os dispositivos APPLE a partir de fontes C/C++ e Obj-C.

[ Hits: 54.472 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 09/11/2010 | Blog: http://assuntonerd.com.br


Introdução



Veremos neste documento como desenvolver aplicativos para os dispositivos da APPLE (iPhone, iPod Touch e iPad) sem a necessidade de obter o conjunto super proprietário (Mac OS X, Xcode e MacBook). Muitas pessoas inclusive instrutores de programação para o iPhone diziam ser impossível criar aplicações em ambientes não Mac. Mais impossível ainda com ferramentas de código aberto.

Embora seja um desenvolvedor Android, questionamento surgiram, pois já instalaram o Android no iPhone..., o processador do iPad A4 é baseado no Cortex-A8 que no fundo pertence a arquitetura ARM. No site UBM TechInsights podemos obter o RAIO-X na CPU do processado A4 e perceber "a semelhança total" com o núcleo do Samsung S5PC110A01. Então é fácil concluir que o processador do iPad A4 = ARM Cortx A8 (45 nm) = ARM.

Foi assim que comecei a minha jornada para a compilação cruzada de aplicativos escrito em C/C++ e Obj-C para os dispositivos da APPLE.
Aproveito este artigo para divulgar um appliance Linux baseado no openSUSE que criei para os interessados no desenvolvimento de software para o iPhone utilizando ferramentas open-source e não tem tempo para ficar resolvendo e compilando dependência, como também compatibilidade do mesmo com o seu sistema atual. Este projeto chama-se LiMobile, esta iniciativa nasceu das minhas pesquisas, como também da necessidade de carregar um live CD ou um pendrive com um sistema composto de todo SDK open souce para dispositivos portáteis APPLE.
A mágica para chegar ao resultado final está na pesquisa e no agrupamentos de muitas ferramentas de código aberto, mas em especial vale a pena mencionar o llvm-gcc e o iphonedevonlinux.

O LLVM, Low Level Virtual Machine, é uma infraestrutura de compilação, seguinte (LATTNER, C, 2006), proporciona componentes modulares e reaproveitáveis para construção de compiladores, assim, reduzindo o tempo e custo para construir um compilador particular. O llvm-gcc. Ele é uma versão do gcc que compila programas C/ObjC em objetos nativos, bitcode LLVM (binário), ou em linguagem assembly LLVM (texto) (LLVM TEAM, 2009).

O pacote iphonedevonlinux não passa de um script que faz o download e processa todos os códigos fontes possíveis e imagináveis para compilar o compilador arm-darwin-gcc. A principal vantagem do LiMobile, além de possuir os pacotes com a versão são exata, dispensa horas de download durante a compilação, sendo assim, é efetuado o download apenas dos pacotes proprietários para não violar os licenciamentos da APPLE.

Abaixo um screenshot do boot da imagem do projet LiMobile.
    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação, compilação e utilização
Outros artigos deste autor

Instalando o poderoso banco de dados IBM DB2!

Linux: Executando comandos utilizando a tecnologia biométrica de reconhecimento de voz

Criando uma aplicação em shell script integrada com o Interbase/Firebird

Biometria: Processamento de imagens capturadas em leitores de impressão digital

Acesso aos recursos compartilhados de sua rede Microsoft ou Samba via HTTP

Leitura recomendada

Programação com números inteiros gigantes

Projeto Icecream (parte 1)

Dynamic libraries com libtool

A duplicação do buffer de saída na chamada de sistema fork() do Linux

Estudando recursividade direta e indireta

  
Comentários
[1] Comentário enviado por matux em 09/11/2010 - 11:34h

Cabelo, mais uma vez você demonstra profundos conhecimentos, profissionalismo e uma profunda curiosidade/pro-atividade.
Meus parabéns.
São pessoas que tem atitudes semelhantes a tua que fazem a comunidade open-source mais forte.
Belo artigo e espero que suas iniciativas motivem aos estudantes de computação em nosso país.
Um forte abraço!
Ps. Já está nos favoritos!

[2] Comentário enviado por rodrigo.slacklin em 09/11/2010 - 12:10h

http://www.saurik.com/id/4
http://code.google.com/p/iphone-dev/
http://stackoverflow.com/questions/276907/starting-iphone-app-development-in-linux

Fontes que datam antes da sua publicação.
Seja mais honesto Cabelo, site as fontes, não queira a glória toda pra você só porque montou o lego.

[3] Comentário enviado por cabelo em 09/11/2010 - 12:34h

Rodrigo Slacklin:

Em primeiro lugar, quero deixar bem claro que gosto de críticas, pois só com elas consigo evoluir, como também não quero, glória pois não teve genialidade nenhuma e vc tem razão apenas montei o lego.

Deixei bem claro também sobre a sua colocação referente a glória na entrevista como Jomar (http://www.itweb.com.br/blogs/blog.asp?cod=86). "Não foi genialidade nenhuma (inclusive não posso deixar de agradecer o Erisvaldo Júnior que diminuiu bastante o meu tempo de aprendizado), foi apenas paciência, calma, pesquisa séria e desafio (estou com o iPad faz uns 4 meses), nas horas vagas para relaxar e sair da rotina, bastou juntar uma série de projetos open-source como iFuse (que permite montar o ipad/iphone no file system), dmg2img converte imagens e aquivos dmg, compilador gnu objetive-c, ferramentas opensource para o darwin e o script iphonedevonlinux, para chegar na imagem ideal (utilizando o suse studio) linux baseda no openSUSE"

Inclusive na página da imagem LiMobile (http://pt.opensuse.org/Utilizador:Cabelo/LiMobile) menciono todos os pacotes opensource utilizado como também o objetivo do projeto.

"O principal objetivo desta iniciativa é proporcionar a composição rápida do ambiente de desenvolvimento para dispositivos móveis da APPLE até para usuários com pouco conhecimento na plataforma GNU/Linux. Sendo o foco principal é evitar transtornos de dependências de pacotes e incompatibilidade de versões. Compilar um gcc para gerar instruções para o iPad e iPhone não necessita de muita técnica especial, pois Cortex A8 é baseado no núcleo do ARM11 ;-)"

Finalizando, meu objetivo foi facilitar a utilização de todos estes recursos opensource...

Abraços.

[4] Comentário enviado por luanyata em 09/11/2010 - 12:47h

Cabelo... mais uma vez sensacional...
Obrigado por compartilhar seu conhecimento e suas pesquisas...

[5] Comentário enviado por paulorvojr em 09/11/2010 - 21:56h

Cabelo a ideia é muito interessante, e uma alternativa claro. belo trabalho.

Mas convenhamos que desenvolvedores como você e eu não vamos utilizar isto em produção.

Melhor pagar 99 doletas a apple por ano, para pode publicar nossos apps a applestore e ganhar dinheiro. Sem isso não é possível.

Desbloquear o aparelho para inserir os testes eu acho valido e faço isso, mas pra produção nada de jailbreak.

usuários mesmo da apple que compram apps, não fazem jailbreak, so maioria dos brasileiros que mau ve um aparelho ja quer desbloquear e acha que ta abafando, so perde com os updates. estimativas indicam que 90% compra na itunes e nada de unlock.

a grande receita eu falo para todos,

vmware + snow leopard + xcode(SDK 3.0) + jailbreak com cydia no iphone/ipod. façam testes e mais testes, sem complicação.

quer ganhar dinheiro no object-c? entao assina a apple anualmente e seja feliz, até calculadora simples ganha 99 centavos de dolar fácil.




[6] Comentário enviado por removido em 11/11/2010 - 12:38h

As aplicações desenvolvidas neste modelo pode ser publicadas nas Apple Store ?

[7] Comentário enviado por anonymous em 11/11/2010 - 20:40h

Cabelo,
Mais uma vez, mandou mt bem!

[8] Comentário enviado por nitro em 20/07/2011 - 11:29h

Exelente Tutorial.. Parabens. Estou pra comprar um iMac, mas com essas dicas acho que vou economizar uma graninha...kkkkkkkkkkkk

[9] Comentário enviado por Noobix em 25/07/2011 - 12:53h

Gostaria de saber se é possivel instalar o seu programa em um Mint, nao encontro o pacote de nome xar para baixar, caso encontre o programa rodará aqui? Onde posso achá-lo?
grato

[10] Comentário enviado por franzbutu em 15/09/2013 - 11:28h

Alguém pode me ajudar nisso?
Tenho o Ubuntu 12.04 fiz todo os procedimentos de download, porém ao executar comando para fazer o download e a compliação não deu certo (tenho o gcc instalado):

francisco@francisco-desktop:~/iOS$ ./toolchain.sh all
Preparing the environment
Toolchain version: 3.0
Building in: /home/francisco/iOS
The following commands are missing: xar bison flex
You may need to install additional software for them using your package manager.

[11] Comentário enviado por andersonbambam em 06/10/2013 - 10:19h

Olá amigo, belo material mas eu gostaria de saber se existe alguma IDE que possa auxiliar o desenvolvimento, para não ficar preso a VI ou VIM no shell.

[12] Comentário enviado por Azraelm em 25/08/2015 - 04:37h

Ótimo artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts