Je comprends pourquoi vous ne pouvez pas développer des applications OS X sur un ordinateur Linux, mais y a-t-il une bonne raison technique pour laquelle vous ne pouvez pas développer des applications iPhone et iPad sur Linux? Pourquoi n'est-il pas possible de compiler le code source iOS dans un exécutable iOS et de l'exécuter dans un simulateur iOS sous Linux ou de l'installer sur un appareil iOS de développement?
Est-ce simplement parce que l'IDE XCode est une application Cocoa?
Vous pouvez développer des applications Android sur n'importe quel type de plateforme, semble-t-il. Je ne vois pas pourquoi il n'en va pas de même pour iOS.
Réponses:
Mac OS X ne peut être exécuté que contractuellement sur le matériel Apple. iOS nécessite le framework Cocoa et d'avoir accès à un Mac pour signer le trousseau. Bien que vous puissiez utiliser Objective-C sous Linux à l'aide des bibliothèques OpenStep, vous ne pouvez pas pousser les applications que vous développez vers iOS en raison du manque de bibliothèques API Cocoa correctes et alors que vous pouvez pousser vers un appareil jailbreaké sans trousseau de clés avec un développeur complet compte, afin de vendre ladite application ou même de la faire télécharger par le public, vous devez respecter les règles d'Apple.
la source
Il n'y a pas de raison technique particulière, mais les outils de développement fournis par Apple ne fonctionnent que sur Mac, et je ne vois pas qu'ils soient pressés de changer cela.
En ce qui concerne les outils de développement tiers, Apple les déteste très publiquement, et étant donné le pouvoir de veto absolu d'Apple sur ce qui se trouve dans l'App Store, ce n'est pas une bonne idée d'investir un temps de développement important dans leur fabrication / utilisation.
(L'un des outils de développement - le simulateur iOS - est très fortement lié à MacOS X pour de bonnes raisons techniques. AFAIK c'est en fait un wrapper mince entre iOS et les API MacOS X très similaires, ce qu'il serait infiniment plus difficile de faire sur un autre système d'exploitation. Il faudrait recommencer à zéro et finir avec quelque chose d'aussi lent et horrible que l'émulateur Android)
la source
Cela dépend de ce que vous entendez par «raison technique»
À strictement parler, je ne pense pas qu'il y ait une raison technique pour laquelle les applications iOS ne pouvaient pas être développées sur Linux. Il faudrait une entité, que ce soit Apple ou un groupe de hackers entreprenants / talentueux, pour créer une chaîne d'outils pour cela (compilateurs, peut-être un IDE, quelque chose pour l'obtenir par téléphone).
Donc, si par "raison technique" vous voulez dire "quelque chose de spécial sur le Macintosh qui est impossible et ne pourrait pas exister sur une autre plate-forme", alors non, je ne le pense pas. Il n'y a pas de puce spéciale sur le Macintosh requise, par exemple.
Si par "raison technique" vous voulez dire "quelque chose qui m'empêche de pouvoir le faire aujourd'hui", alors oui, l'intégralité du bit de code signé n'existe pas sur Linux et à moins qu'Apple ne le transfère, c'est le jeu de balle.
la source
Je pense que cela devrait dire que vous pouvez développer pour iOS sur d'autres plates-formes, vous ne pouvez tout simplement pas créer d' applications finales sur celles-ci.
Il a été expliqué dans la réponse acceptée pourquoi vous ne pouvez pas construire en dehors d'OS X, mais il existe de nombreux outils de développement qui vous permettent d'écrire des applications iOS sur d'autres plates-formes.
Certains des outils de développement que j'ai utilisés permettent ceci:
Qt Framework (C ++ et Qml): les applications peuvent être écrites sous Windows ou Linux puis l'application iOS est construite avec XCode sur OS X.
Unity3D (C #, UnityScript et Boo): Vous pouvez développer sur Windows et pour construire un iOS sur l'une ou l'autre plate-forme, vous générez un projet XCode. Cela permet également une intégration plus poussée avec d'autres codes Objective-C.
Xamarin (C #): Vous pouvez développer sur Windows (et je crois Linux) et utiliser une machine OS X comme hôte de build.
Kivy (Python): génère également des projets XCode.
Et vous pouvez trouver de nombreux autres projets comme ceux-ci, en particulier une fois que vous commencez à étudier les cadres d'applications Web hybrides et mobiles comme Appcelerator.
la source
Il n'y a aucune raison technique pour que vous ne puissiez pas développer des applications iOS sur Linux. En fait, cela se produit déjà sur les fenêtres de Delphi XE. Là, vous pouvez développer vos applications ios totalement dans Windows. À la fin, la seule chose nécessaire est que vos applications doivent être signées. Cela ne peut être fait que sur un Mac.
la source
Il y a une raison technique pour laquelle Xcode ne permettra pas le développement d'applications iOS sur d'autres systèmes.
iOS est similaire à bien des égards à OS X. De nombreux cadres sont identiques ou très proches. Le simulateur iOS utilise cela pour fournir un environnement de test très rapide. Lorsque Xcode compile une application à exécuter dans le simulateur, il crée des fichiers binaires x86 qui se lient à des cadres qui se résument principalement aux cadres OS X. Vous vous retrouvez avec une version de débogage qui s'exécute en natif sur votre Mac, qui offre d'excellentes performances.
Si vous regardez Android, il crée des apks indépendants de la plate-forme qui sont ensuite émulés dans un émulateur Android ou un autre. Cela exécute une machine virtuelle qui exécute toute la pile Android pour que vous puissiez la déboguer. Il existe des émulateurs plus rapides que les autres, mais tous sont beaucoup plus lents que le simulateur. L'avantage, cependant, est qu'ils sont multiplateformes.
Pour qu'Apple autorise la construction d'applications iOS sur d'autres systèmes, il lui faudrait soit porter les frameworks sur ces systèmes d'exploitation pour pouvoir écrire un simulateur, soit créer un émulateur. L'un ou l'autre serait un gros morceau de travail qui prendrait du temps à créer de nouvelles fonctionnalités.
la source
Bien que vous ne puissiez pas signer des applications pour iOS sur Linux, et donc les distribuer via les méthodes acceptées, vous pouvez développer (avec les mêmes API) sur Linux en utilisant Theos. Il s'agit de la chaîne d'outils utilisée par la communauté de jailbreak pour développer des applications pour iOS, et elle est multiplateforme. Si votre appareil iOS est jailbreaké, je pense que vous pourrez pousser l'application compilée sur votre appareil via libimobiledevice, mais quelqu'un peut me corriger si je me trompe.
Quelques informations supplémentaires: http://iphonedevwiki.net/index.php/Theos
Je prévois de tenter le coup le lendemain, et je fournirai des mises à jour.
la source