Pouvez-vous exécuter Xcode sous Linux?

190

Pouvez-vous exécuter Xcode sous Linux? Mac OS X était basé sur BSD Unix, alors est-ce possible?

D'après ce que j'ai entendu, il existe un plugin MonoDevelop doté d'un simulateur iPhone.

Mohit Deshpande
la source
2
Je pense que c'est ce que vous recherchez Apple a publié Swift pour remplacer xcode pour les devs Linux ios cnet.com/news/apple-introduces-swift-2
PauAI
Ils ont sorti Swift pas Xcode.
Antzi
Toujours pas bon. C'est juste que le langage est open source et publié sur Linux avec une bibliothèque standard. Il n'est pas destiné à créer des applications iOS ou à remplacer Xcode. Plus comme créer des applications Linux avec Swift. Bien sûr, cela simplifierait le travail des personnes souhaitant créer un compilateur croisé.
Antzi

Réponses:

412

La chaîne d'outils de bas niveau pour Xcode (la famille de compilateurs gcc, le débogueur gdb, etc.) est entièrement open source et commune aux plates-formes Unix et Linux. Mais l'EDI - l'éditeur, la gestion de projet, l'indexation, la navigation, le système de construction, le débogueur graphique, la modélisation visuelle des données, le système SCM, le refactoring, les instantanés de projet, etc. - est une application Mac OS X Cocoa et n'est pas portable.

cdespinosa
la source
80
+1 excellente répartition courte de ce qui est commun et ce qui est centrée sur mac
curtisk
12
Sans oublier que l'exécuter sur un autre OS casse probablement son CLUF. Apple est particulièrement avare en ce qui concerne les accords de licence.
jpaugh
2
Ce n'est pas correct à 100% (ou à jour). Le GCC standard ne peut pas produire de fichiers objets Mach-O, mais Clang le peut. Mais alors vous avez toujours besoin du ld d'Apple pour lier le binaire final. Darling peut exécuter la chaîne d'outils Xcode d'origine sur Linux (mais pas l'IDE Xcode).
LubosD
39

Personne n'a encore suggéré Vagrant , alors le voici, Vagrant box pour OSX

vagrant init https://vagrant-osx.nyc3.digitaloceanspaces.com/osx-sierra-0.3.1.box
vagrant up

et vous avez une machine virtuelle MACOS. Mais selon le CLUF d'Apple, vous devez toujours l'exécuter sur du matériel MacOS: D Mais n'importe où, en voici un pour tous les geeks qui ont effacé MacOS et installé Ubuntu: D

Malheureusement, vous ne pouvez pas exécuter les éditeurs de l'intérieur en utilisant l' X-forwardingoption SSH .

bbozo
la source
3
Avez-vous besoin de pouvoir exécuter les éditeurs GUI pour créer des applications avec Xcode ou est-ce que cela peut être fait à partir de la CLI?
Jose V
26

Je voulais vraiment commenter, pas répondre. Mais pour être précis, OSX n'est pas basé sur BSD, c'est une évolution de NeXTStep. Le système d'exploitation NeXTStep utilise le noyau Mach développé par CMU. Il a été conçu à l'origine comme un MicroKernel, mais en raison de contraintes de performances, ils ont finalement décidé qu'ils devaient inclure la partie Unix de l'API dans le noyau lui-même et donc un «serveur» compatible BSD (destiné à l'origine à traiter les demandes de compatibilité BSD kernel messages) a été déplacé dans le noyau, ce qui en fait un noyau monolithique. Il peut être compatible BSD dans l'API de programmation, mais ce n'est PAS BSD.

Le reste du système d'exploitation impliquait ObjectiveC (dans le cadre d'arrangements entre Stepstone et Richard Stallman de GNU / GCC) avec une interface graphique basée sur une technologie appelée "Display Postscript" ... un peu comme un serveur X, mais avec des commandes postscript. OS X a changé Display Postscript en Display PDF et a multiplié par 1000 les exigences matérielles générales (NeXT pouvait fonctionner en 8-16 Mo, vous avez maintenant besoin de Go).

En raison du mariage étroit de GCC et Objective C et NeXT, votre meilleur pari pour exécuter XCode de manière native sous Linux serait de faire un portage (si vous pouvez obtenir la source - bonne chance) en utilisant les bibliothèques GNUStep. Conçus à l'origine pour la compatibilité NextStep puis OpenStep, j'ai entendu dire qu'ils sont maintenant plus ou moins compatibles avec Cocoa, mais je n'ai joué avec aucun d'entre eux depuis près de 2 décennies. Bien sûr, cela ne vous mènera qu'à ObjC, pas à Swift, et je ne sais pas si Apple va l'OpenSource.

Evan Langlois
la source
9

Si vous exécutez VMware Player ou Workstation (ou peut-être VirtualBox, je ne sais pas s'il prend en charge Mac OS X, mais peut-être), puis Mac OS X Server (le client ne peut pas être légalement virtualisé). Bien sûr, dans ce cas, vous exécutez XCode sur OS X, mais votre machine hôte pourrait être Linux.

Ian
la source
5
Il est en effet possible d'exécuter OS X dans VirtualBox. Je lance 10.8 Mountain Lion de cette façon. Vous devez suivre un guide pratique. Cela fonctionne presque parfaitement. Je suis danois, j'ai donc dû créer ma propre disposition de clavier.
Kristian Spangsege
3
Même le serveur ne peut être virtualisé (légalement) que sur du matériel Apple; Je pense qu'il serait cependant légal d'exécuter Linux sur du matériel Apple, puis Mac OS X en tant qu'invité (même si je ne suis pas sûr que ce soit une option intéressante). @KristianSpangsege: heureux de l'entendre fonctionner pour vous sous VirtualBox ... J'ai installé environ 5 versions différentes et toutes étaient très lentes. Je pensais que c'était un problème avec tous les MacOSX virtualisés jusqu'à ce que je passe à VMware ... presque aucun problème là-bas (un court ralentissement occasionnel se produit toujours).
johndodo
7

Si vous ne pouvez pas débourser des milliers de dollars pour un Mac décent, il existe une option pour exécuter OSX et XCode dans le cloud:

http://www.macincloud.com/

Roman Kagan
la source
4

Je pense que vous avez besoin de MonoTouch (pas gratuit!) Pour ce plugin.

Et non, il n'y a aucun moyen d'exécuter Xcode sous Linux.

Désolé pour toutes les mauvaises nouvelles. :)

andyvn22
la source
2

Non, vous avez entendu parler de MonoTouch qui est un environnement .NET / mono pour le développement iPhone. Mais vous avez toujours besoin d'un Mac et du SDK officiel iPhone. Et l'émulateur est celui officiel d'Apple, cela agit comme un IDE séparé et vous permet de ne pas avoir à coder en Objective C, plutôt que de coder en c #

C'est un projet pour le moins intéressant ...

EDIT: apparemment, vous pouvez distribuer sur l'App Store maintenant, au début, c'était interdit ....

ridicule
la source
1

L'option la plus simple à faire est d'exécuter une machine virtuelle avec une copie OSX.

Hedron Dantas
la source
1

Si vous voulez vraiment utiliser Xcode sur Linux, vous pouvez obtenir Virtual Box et installer Hackintosh sur une VM. Edit: Les ajouts d'invité Virtual Box ne sont pas pris en charge avec MacOS Movaje. Vous voudrez utiliser VMware

https://www.vmware.com/

https://hackintosh.com/

RK_DUDE02
la source
0

Si vous voulez XCode sur un autre OS, je suggère le cloud computing. De cette façon, votre application est développée sur un Mac et peut être soumise à l'App Store.

Josh Guyette
la source
0

C'était bizarre que personne n'ait suggéré KVM .

Il vous fournira des performances presque natives et il est intégré à Linux. Allez le vérifier.

vous aurez l'impression d'utiliser uniquement mac, puis d'installer Xcode là-bas, vous pouvez même choisir de démarrer directement dans l'interface graphique OSX au lieu de Linux au démarrage

Praveen Shahi
la source
-2

OSX est basé sur BSD , pas Linux. Vous ne pouvez pas exécuter Xcode sur une machine Linux.

rfunduk
la source
1
Cela n'a rien à voir avec le noyau qu'il exécute. Et MacOS n'est guère "basé sur BSD", voir ma réponse ci-dessus pour l'histoire
Evan Langlois