Existe uma razão técnica para você não conseguir desenvolver aplicativos iOS em um computador Linux?


23

Entendo por que você não pode desenvolver aplicativos OS X em um computador Linux, mas há uma boa razão técnica para não desenvolver aplicativos para iPhone e iPad no Linux? Por que não é possível compilar o código-fonte do iOS em um executável do iOS e executá-lo em um simulador do iOS no Linux ou instalá-lo em um dispositivo iOS de desenvolvimento?

É apenas porque o XCode IDE é um aplicativo de cacau?

Parece que você pode desenvolver aplicativos Android em qualquer tipo de plataforma. Não vejo por que o mesmo não se aplica ao iOS.


29
Imagino que a resposta para essa pergunta, infelizmente, seja "não; a Apple acabou de dizer".
Jon Purdy

11
questão fechada por "blasfêmia";)
Thorsten Müller

1
Em uma nota lateral, você pode obter a máquina "Mac Mini". É barato sem mencionar que é realmente uma máquina boa.
Quíron

2
@ The Legend of 1982: interpretei mal a máquina fina como máquina do tempo e experimentei um instante de excitação e desprezo juvenil simultâneos pela Apple.
91111 Jon Purdy

@ Jon Purdy Bem Apple oferece "Time Machine" e "Time Capsule" :)
Chiron

Respostas:


17

O Mac OS X pode ser executado apenas contratualmente no Apple Hardware. O iOS requer a estrutura Cocoa e acesso a um Mac para assinar o chaveiro. Embora você possa usar o Objective-C no Linux usando as bibliotecas OpenStep, não é possível enviar por push os aplicativos que você desenvolve para o iOS devido à falta das bibliotecas corretas da API do Cocoa e enquanto você pode enviar para um dispositivo jailbroken sem precisar de um desenvolvedor completo. conta, para vender o aplicativo ou mesmo fazer com que o público faça o download, você segue as regras da Apple.


17
"O Mac OS X só pode ser executado legalmente no Apple Hardware" - eu ficaria muito surpreso se isso fosse verdade em qualquer sistema legal sensato. Eu sei que isso não é verdade na Alemanha, porque a Microsoft tentou fazer o mesmo golpe, as pessoas o ignoraram, a Microsoft processou e perdeu.
Jörg W Mittag

4
Vou alterá-lo para "contratualmente" para obter mais precisão.
World Engineer

3
A violação dos termos do contrato basicamente exclui os privilégios de suporte. A Apple quer oferecer um bom atendimento ao cliente, e a maneira mais simples de fazer isso é limitar o espaço em que as coisas podem dar errado. Se você estiver executando o SO deles em hardware que não seja da Apple, estará por sua conta.
Jon Purdy

@ JörgWMittag Como a Microsoft tentou fazer isso? Não sei que a Microsoft fabrica hardware em primeiro lugar.
Nadir Sampaoli

4
@NadirSampaoli: Na Alemanha, a Microsoft vende licenças do Windows muito baratas para fabricantes de PCs, para que eles possam empacotar o Windows com seus PCs sem aumentar muito o custo em comparação com um PC sem sistema operacional ou Linux incluído. A intenção é que essas licenças sejam pré-instaladas nos PCs. No entanto, os fabricantes de PCs perceberam que podiam vender essas licenças separadamente, com um lucro enorme comparado ao que pagavam por elas, mas ainda muito mais barato que a Microsoft. A Microsoft processou alegando que essas licenças só podiam ser usadas com os PC desses construtores, mas perdidas.
Jörg W Mittag

17

Não há nenhuma razão técnica específica, mas as ferramentas de desenvolvedor que a Apple fornece apenas rodam em Macs, e não as vejo com pressa de mudar isso.

Com relação às ferramentas de desenvolvedor de terceiros, a Apple não gosta muito delas publicamente, e dado o poder absoluto de veto da Apple sobre o que entra na App Store, não é uma boa idéia investir tempo significativo de desenvolvimento na fabricação / utilização delas.

(Uma das ferramentas de desenvolvimento - o iOS Simulator - está fortemente ligada ao MacOS X por boas razões técnicas. AFAIK é na verdade um invólucro fino entre o iOS e as APIs MacOS X muito semelhantes, o que seria infinitamente mais difícil de fazer em outro sistema operacional. Você teria que começar de novo do zero e provavelmente acabaria com algo tão lento e horrível quanto o emulador do Android)


8

Depende do que você quer dizer com "razão técnica"

A rigor, não acredito que exista uma razão técnica para que os aplicativos iOS não possam ser desenvolvidos no Linux. Seria necessário que alguma entidade, seja a Apple ou um grupo de hackers empreendedores / talentosos, criasse uma cadeia de ferramentas para ela (compiladores, talvez um IDE, algo para obtê-lo ao telefone).

Portanto, se por "razão técnica" você quer dizer "algo especial no Macintosh que é impossível e não poderia existir em outra plataforma", então não, não acredito que exista. Não há nenhum chip especial no Macintosh necessário para isso, por exemplo.

Se, por "razão técnica", você quer dizer "algo que me impede de fazê-lo hoje", então sim, todo o bit de código assinado não existe no Linux e, a menos que a Apple o porte, esse é o jogo.


4

Eu acho que deveria dizer que você pode desenvolver para iOS em outras plataformas, você não pode criar aplicativos finais nelas.

Foi explicado na resposta aceita por que você não pode construir fora do OS X, mas existem muitas ferramentas de desenvolvimento que permitem escrever aplicativos iOS em outras plataformas.

Algumas das ferramentas de desenvolvimento que usei permitem isso:

  • Qt Framework (C ++ e Qml): os aplicativos podem ser gravados no Windows ou Linux; o aplicativo iOS é criado com o XCode no OS X.

  • Unity3D (C #, UnityScript e Boo): você pode desenvolver no Windows e, para criar um iOS em qualquer plataforma, gera um projeto XCode. Isso também permite maior integração com outro código Objective-C.

  • Xamarin (C #): você pode desenvolver no Windows (e acredito que Linux) e usar uma máquina OS X como host de compilação.

  • Kivy (Python): também gera projetos XCode.

E você pode encontrar muitos outros projetos como esses, especialmente depois de começar a olhar para estruturas de aplicativos da Web híbridas e móveis como o Appcelerator.


0

Não há nenhuma razão técnica para você não conseguir desenvolver aplicativos iOS no Linux. De fato, isso já acontece nas janelas do Delphi XE. Lá você pode desenvolver seus aplicativos iOS totalmente no Windows. No final, a única coisa necessária é que seus aplicativos precisem ser assinados. Isso só pode ser feito em um mac.


0

Há um motivo técnico para o Xcode não permitir o desenvolvimento de aplicativos iOS em outros sistemas.

O iOS é semelhante em muitos aspectos ao OS X. Muitas das estruturas são idênticas ou muito próximas. O iOS Simulator faz uso disso para fornecer um ambiente de teste muito rápido. Quando o Xcode compila um aplicativo para ser executado no simulador, ele cria binários x86 que são vinculados a estruturas que na maioria das vezes diminuem para estruturas do OS X. Você acaba com uma compilação de depuração que é executada nativamente no seu Mac, com ótimo desempenho.

Se você olhar para o Android, ele cria aplicativos independentes de plataforma que são emulados em um emulador do Android ou outro. Isso executa uma máquina virtual que executa toda a pilha do Android para você depurar. Existem emuladores que são mais rápidos que outros, mas todos são muito mais lentos que o simulador. O benefício, porém, é que eles são multiplataforma.

Para que a Apple permita que aplicativos iOS sejam construídos em outros sistemas, eles precisariam portar as estruturas para esses sistemas operacionais para que pudessem escrever um simulador ou precisassem criar um emulador. Qualquer um desses seria um pedaço de trabalho que levaria tempo para criar novos recursos.


0

Embora não seja possível assinar aplicativos para iOS no Linux e, assim, distribuí-los pelos métodos aceitos, você pode desenvolver (com as mesmas APIs) no Linux usando Theos. Essa é a cadeia de ferramentas usada pela comunidade do jailbreak para desenvolver aplicativos para iOS e é multiplataforma. Se o seu dispositivo iOS estiver com jailbreak, acredito que você poderá enviar o aplicativo compilado ao seu dispositivo via libimobiledevice, mas alguém poderá me corrigir se eu estiver errado.

Mais algumas informações: http://iphonedevwiki.net/index.php/Theos

Pretendo dar uma chance a isso no dia seguinte, mais ou menos, e fornecerei atualizações.


1
Atualizações por favor!
Kyle Strand
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.