Vous démarrez le développement d'applications iPhone sous Linux? [fermé]

529

J'ai entendu dire que vous devez obtenir un Mac si vous souhaitez développer des applications iPhone. Est-ce vrai?

Est-il possible de développer des applications iPhone sous Linux? Si oui, de quoi ai-je besoin et où télécharger les outils nécessaires?

javac
la source
2
quelqu'un peut-il éditer ce s / Linux / unix pour le généraliser?
Bonne personne
5
@GoodPerson Ensuite, vous brouilleriez la frontière entre OS X et les autres OS, c'est de cela qu'il s'agit.
M. Lister
2
l'une des informations les plus importantes que j'ai jamais trouvées. absolument dans le sujet, je dirais ...
Marco Faustinelli
Grand tutoriel 2017 par Andy Smith
sondra.kinsey

Réponses:

303

Pour fournir une réponse différente, j'exécute OS X et Xcode sur une machine virtualisée (VMware) sous Linux. Le CPU est un Core2Quad (Q8800), et il est parfaitement rapide. J'ai trouvé une machine virtuelle préconstruite en ligne (je vous laisse le soin de trouver) le développement Xcode / iPhone fonctionne parfaitement, tout comme le débogage via USB sur le téléphone lui-même.

En fait, cela m'a beaucoup surpris - mais je n'ai eu aucun problème.

le chaos
la source
11
Donc, en utilisant votre approche, pouvez-vous le signer et le distribuer sur iTunes?
Eldelshell
43
Ouais - pas de problèmes. Vous utilisez XCode, la signature fonctionne bien, j'ai maintenant une application de production sur le magasin, envoyée par la machine virtuelle. Je ne le nommerai pas pour des raisons évidentes.
Chaos
18
@Chaos: Pourriez-vous s'il vous plaît publier des liens vers ce que vous avez utilisé exactement pour faire fonctionner votre configuration?
Glycan
4
Une machine virtuelle préconstruite peut-elle être approuvée? Je veux dire les logiciels coupables intégrés, les portes dérobées ...
DummyBeginner
2
D'accord. Mon avis là-dessus. Une fois l'application développée, vous pouvez utiliser ce service pour publier macincloud.com
Fabrizio Bertoglio
75

La réponse à cela dépend vraiment de savoir si vous souhaitez ou non développer des applications qui sont ensuite distribuées via la boutique iPhone. Si vous ne le faites pas et que cela ne vous dérange pas de développer pour la foule d'iPhone "jailbreakés" - alors il est possible de développer à partir de Linux.

Consultez la page de ce type pour un guide complet (quoique un peu complexe) sur ce qu'il faut faire:

http://www.saurik.com/id/4

GodEater
la source
26

Cela semble être vrai jusqu'à présent. Le seul SDK disponible auprès d'Apple ne cible que l'environnement MacOS. J'ai été bouleversé à ce sujet, mais je cherche à acheter un mac maintenant, juste pour faire du développement iPhone. Je n'aime vraiment pas ce qu'ils font, et j'espère qu'un bon SDK sortira pour d'autres environnements, tels que Linux et Windows.

Obstacles concernant le SDK:

Le SDK iPhone et le logiciel gratuit: pas de match

Apple a récemment publié un kit de développement logiciel (SDK) pour l'iPhone, mais si vous espériez porter ou développer un logiciel open source original avec lui, les nouvelles ne sont pas bonnes. Les conditions de signature de code et de non-divulgation font du logiciel libre une solution incontournable.

Le SDK lui-même est un téléchargement gratuit, avec lequel vous pouvez écrire des programmes et les exécuter sur un simulateur de logiciel. Mais pour publier le logiciel que vous avez écrit, vous devez vous inscrire au programme pour développeurs iPhone - une étape distincte du téléchargement du SDK et qui nécessite l'approbation d'Apple.

Je pense que c'est plutôt élitiste pour eux de penser que seuls les utilisateurs de macos sont assez bons pour écrire des programmes pour leur téléphone, et le fait que vous ayez besoin d'acheter une licence de 100 $ si vous voulez publier vos trucs, rend vraiment plus difficile pour le programmeur amateur. Cependant, si c'est ce que vous devez faire, je prévois de sauter à travers leurs cerceaux; J'aimerais vraiment développer des trucs sur mon iPhone.

stephenbayer
la source
9
Comme cela a déjà été dit, je ne pense pas que ce soit l'élitisme en cause ici. XCode et tous les autres outils de développement (à l'exception des éléments de bas niveau tels que GCC) sont écrits en Cocoa, comme tous les frameworks iPhone. Ils devraient d'abord porter tout cela sur d'autres systèmes d'exploitation. Ce n'est pas une mince tâche.
Brad Larson
24
Faites-moi savoir quand Microsoft publiera Visual Studio pour Linux et Mac ...
Stephen Darlington
12
Faites-moi savoir lorsque Microsoft publiera Visual Studio, Access, Frontpage, XNA, DirectX, Office (avec toutes les fonctionnalités), Movie Maker, Visio, IIS ou Exchange pour Mac / Linux.
Brock Woolf
97
Faites-moi savoir lorsque Microsoft utilise le CLUF pour exécuter Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS ou Exchange dans (Dar) Wine.
lfaraone
5
@MarceloMason Type de. C'est Visual Studio Code , pas l'IDE complet.
Stephen Darlington
20

Il y avait un projet dédié à résoudre ce défaut: iphone-dev

L'objectif du projet iphone-dev est de créer une chaîne d'outils gratuite, portable et de haute qualité pour permettre le développement de l'iPhone d'Apple et d'autres appareils intégrés basés sur la plate-forme ARM / Darwin.

Johan Boulé
la source
4
Le projet ne semble pas subir de développement ou de maintenance régulier à partir du site (par exemple, les entrées Wiki sur la construction de l'outil / portabilité datent de février 2010).
ely
4
@Monsieur. F, en effet c'est mort.
Johan Boulé
13

En ce qui concerne la chaîne d'outils alternative, le site de Saurik est utile mais pour le dernier développement de firmware, il indique s'appuyer sur l'iPhone lui-même et ne précise pas que vous devrez peut-être copier les fichiers de firmware iPhone nécessaires dans votre environnement Linux. Ce n'est pas impossible, mais nécessite simplement un travail supplémentaire, en particulier pour la signature du code (il existe également des solutions alternatives ouvertes).

Jetez également un œil à d'autres guides (pour la même chaîne d'outils) qui l'abordent de manière plus méthodique.

Je suggère de continuer à faire la construction finale et la signature et l'empaquetage du code dans XCode (ce qui peut signifier emprunter le Mac de quelqu'un) au cas où vous rencontriez des problèmes lors de la soumission de l'application à Apple. L'utilisation de la chaîne d'outils alternative ouvre (au moins sur Mac) la possibilité d'utiliser d'autres IDE autres que XCode pour développer l'application et de recourir à nouveau à XCode pour le déploiement et les tests avec le simulateur.

Bien sûr, si vous obtenez la signature de code / la génération de certificats à partir de la ligne de commande en dehors de XCode, vous pouvez installer un certificat sur votre iPhone actuel et y tester (installer l'application via iTunes avec votre certificat).

dljava
la source
7

La seule façon que je connaisse de faire du développement sous Linux pour l'iPhone serait d'installer Vmware et de travailler à faire fonctionner OS X sur une machine virtuelle. Cela dit, il y a des préoccupations "juridiques" à faire. Il est rapporté que OS X Server peut être virtualisé, mais en ce qui concerne l'histoire du développement, je ne sais pas.

Si vous êtes vraiment sérieux, c'est ce que j'enquêterais.

Bonne chance.

Keith Elder
la source
4
J'ai essayé l'option VMWare et au moins sur mon matériel (T5200 Core2, 2M ram), c'est incroyablement lent. Mon ami a vécu une expérience similaire.
Parand
3
Moi aussi. Lent, lent, lent. Tu ne veux même pas essayer.
Nosredna
5
@Parand Bien sûr, ça va être lent sur 2M de RAM, je suis surpris qu'il démarre même!
Jeshurun
2
Vous voudrez peut-être essayer VirtualBox au lieu de vmware. VMWare est trop gonflé à mon avis.
Harindaka
5

Vous pouvez utiliser Tersus (open source) et il vous permet d'exporter l'application en tant que projet Xcode.

Ofer Brandes
la source
Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Il ne pourra donc pas se conformer et signer une application iOS native
MarSoft
5

Vous pourrez peut-être écrire du code sur une boîte Linux qui finira par se retrouver sur un iPhone ou un iPad, mais vous aurez finalement besoin d'un Mac pour tester ou déployer le code sur l'iPhone ou le soumettre à l'App Store. Donc, en fin de compte, vous avez besoin d'un Mac, vous pourriez donc aussi bien faire le travail sur le Mac, avec tous les outils fournis par Apple. Il existe des alternatives à Xcode et Objective-C, telles que Monotouch - mais elles utilisent également les outils Apple.

Vous pouvez avec certains travaux exécuter OS X dans une machine virtuelle sous Linux. Cependant, je dois souligner que cela rompra l'accord de licence OSX, même si vous achetez la copie d'OSX - car elle n'est autorisée que pour fonctionner sur du matériel Apple.

Désolé de vous donner cette nouvelle - l'écosystème autour de l'iPhone / iPad est très étroitement contrôlé.

EDIT: Une exception majeure à cela est l'écriture d'une application web pour l'iPhone. Il existe d'excellentes applications Web pour l'iPhone qui sont presque aussi bonnes que l'expérience utilisateur qu'une application native. Cependant, j'ai interprété votre question sur le développement d'applications natives. Les applications Web, bien que l'utilisateur puisse créer une icône pour les lancer - sont toujours des citoyens de «seconde classe».

iandotkelly
la source
4
Bien qu'il puisse être autorisé d'exécuter Lion en virtualisation si vous utilisez Linux sur un Mac.
Cajunluke
4

J'ai réussi à créer des applications iOS sur Linux à l'aide de la chaîne d'outils iOS clang de cjacker . Fondamentalement, il se compose des outils clang et llvm en amont de votre distribution linux, d'un port linux du lieur d'Apple et de quelques outils supplémentaires pour aider à simplifier le processus de construction (comme la conversion de projets xcode au format Makefile).

L'installation prend quelques étapes, mais vous êtes un développeur de logiciels, vous y serez donc habitué. J'ai publié un guide à jour pour Debian 7 (Wheezy) en ligne:

http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7

Sinon, vous voulez aller avec les instructions génériques qui sont un peu plus anciennes:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

Bonne chance.

Roger Keays
la source
2

Il y a un cadre appelé Rhodes .

Le concept est basé sur Ruby on Rails et vous développez votre application mobile en Ruby et HTML, et vous pouvez écrire votre code dans un environnement Linux. Vous pouvez ensuite créer un compte sur Rhohub , où vous ajoutez le code (via GitHub ), et il vous permet de le compiler pour iPhone, Blackberry, Android, Windows Mobile et Symbian, le tout à partir du même code. Vous n'avez pas à coder en Objective-C pour iPhone, ni en Java pour Android, etc. Il effectue les conversions pour vous. Tout ce que vous devez faire est de respecter les règles de création d'une application iPhone (ou des téléphones pour lesquels vous souhaitez développer) afin qu'elle puisse être acceptée sur iTunes (ou le marché équivalent).

Cela vous permettra également d'ajouter l'application à iTunes.

Cependant, je n'ai trouvé aucun émulateur, ce qui signifie que pour tester votre application, vous devez la mettre sur un iPhone, ce qui est une mission.

J'utilise cette option car je veux créer des applications pour tous les téléphones et j'utilise déjà Ruby on Rails. Si vous souhaitez simplement créer une application pour iPhone, investissez dans un Mac.

J'espère que cela t'aides.

Theo Scholiadis
la source
1

Vous avez raison, les téléphones non jailbreakés sont limités à l'App Store d'Apple et Apple "a le droit" d'appliquer n'importe quelle règle, c'est un territoire totalement non libre. Cependant, lors du développement, on n'aura pas du tout à faire affaire avec Apple. Vous pouvez par exemple utiliser rsync pour télécharger le code sur l'appareil et le tester.

Johan Boulé
la source
Ce projet résout-il le problème présenté par Stephen Cox? "Vous ne ferez jamais approuver votre application par Apple si elle n'est pas développée à l'aide de Xcode. Jamais. Et si vous piratez le SDK pour le développer sur Linux et Apple le découvre" Merci
alors que le
libmobiledevice a en fait une interface décente pour installer des applications sans avoir besoin de rsync / ssh sur un iDevice.
Dwight Spencer
1

Dans une certaine mesure, oui, c'est possible. Vous pouvez taper du code Objective-C et configurer vos projets. Vous pouvez même tester les parties C et C ++ de votre code avec gcc.

Ce que vous ne pouvez pas faire:

  • Utilisez Interface Builder pour configurer votre interface, car c'est uniquement pour Mac. (Non requis, mais recommandé.)
  • Compilez du code qui utilise les classes Cocoa d'Apple - elles n'existent pas sous Linux.
  • Testez le code dans le simulateur - il n'y en a pas pour Linux.
  • Compilez du code pour de vrais appareils ou pour l'App Store - tout cela nécessite des outils qu'Apple fournit uniquement pour OS X.
Cajunluke
la source
quand vous dites que les classes n'existent pas, que voulez-vous dire? Je n'ai besoin que des en-têtes, Apple le reliera de toute façon. Voilà comment fonctionne la soumission d'applications, AFAIK.
Janus Troelsen du
1

Vous devez vous procurer mac pour cela. Il existe plusieurs chaînes d'outils disponibles (comme win-chain) qui vous permettent en fait d'écrire et de créer des applications i Phone sur Windows. Il existe plusieurs didacticiels associés pour créer le code Objective C sous Windows. Mais il y a un problème, les applications ainsi développées ne fonctionneront que sur les téléphones Jail cassés.

Nous avons vu peu de hacks pour surmonter cela et arriver sur l'App Store, mais comme Apple continue de mettre à jour les SDK, les chaînes d'outils ont besoin de mises à jour régulières. C'est compliqué de le faire tout le temps.Si vous voulez vous préparer, vous pouvez également demander l'aide d'Arcapps pour lancer ses applications à un prix raisonnable. développement d'applications iphone

Isabella Jacob
la source
1

J'ai tenté de porter cocos2d-iphone sur GNUstep pour que vous puissiez développer un jeu basé sur cocos2d. Cependant, pour la publication, vous avez besoin d'un mac. cocos2d-GNUstep .

user602592
la source
0

Je recommanderais d'obtenir un mac car le simulateur ios est incroyable pour les tests dans les premières étapes d'une application. Mais je connais une petite entreprise avec laquelle nous travaillons qui développe en utilisant Unity afin qu'ils n'aient pas besoin d'une charge de macs. De cette façon, ils n'ont besoin que d'un mac pour le bureau et c'est juste pour compiler la version finale. Cela signifie également que cela fonctionne sur Android, mais cela dépend vraiment de ce que votre bâtiment, car c'est un moteur de jeux. Vous voudrez peut-être examiner les applications Web à l'aide de cadres tels que Sencha Touch Mobile

Unity: http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/

dciso
la source
-5

Si vous appréciez votre temps, achetez un Mac! Je ne connais pas suffisamment les options de développement Linux pour offrir une solution viable, mais il semble que les méthodes proposées impliquent un travail assez détourné. Si vous prévoyez d'écrire et de vendre sérieusement des applications iPhone, je pense que vous pourriez facilement récupérer le coût d'un Mac Mini ou d'un Macbook. :-)

Ben Gotow
la source
4
Maintenant qu'il existe quelque chose comme 50 000 applications, il n'est pas nécessairement facile d'en faire beaucoup. Les jours de salade sont peut-être révolus.
Nosredna
@Nosredna Pour ma part, j'aime à croire que les jours de salade sont de retour . Mais sérieusement, vous avez raison.
Wyatt8740
Mec, si nous recherchons une alternative, c'est parce que l'acheter n'est pas une option disponible.
Roger Russel
-5

Vous ne recevrez jamais votre application approuvée par Apple si elle n'est pas développée à l'aide de Xcode. Jamais. Et si vous piratez le SDK pour développer sur Linux et qu'Apple le découvre, ne soyez pas surpris quand vous serez servi. Je suis membre de l'ADC et du programme pour développeurs iPhone. Faites confiance, Apple est TRÈS sérieux à ce sujet.

Ne prenez pas le risque, achetez un Macbook ou un Mac mini (oui un mini peut exécuter Xcode - mais lentement - augmentez la RAM si vous allez avec le mini). De plus, alors que j'ai vu OS X piraté pour fonctionner sur VMware, je n'ai jamais vu personne exécuter Xcode sur VM. Alors bonne chance. Et je vérifierais le CLUF avant de vous lancer dans le pétrin.

PS: Après avoir lu ce qui précède, oui, je suis d'accord. Si vous piratez le SDK et développez sur Linux, faites au moins l'emballage final sur Mac. Et soumettez-le via un Mac. Apple ne parcourt pas le code ligne par ligne, donc je doute qu'ils attraperaient cela. Mais l'homme, c'est beaucoup de si et de travail. Soyez amusant à faire cependant. :)

Stephen Cox
la source
1
Les nouveaux minis sont parfaits pour la tâche. Je pense qu'ils coûtent environ 600 $ et vous pouvez utiliser à peu près n'importe quelle souris, clavier et moniteur. Assurez-vous de calibrer le moniteur! XCode semble fonctionner assez bien sur mon mini non développé.
Nosredna
7
Xcode fonctionne correctement sur une machine virtuelle Mac OS X.
dave1010
2
Apple approuve les applications Air SDK tout le temps, aucune interaction avec XCode. Vous pouvez faire l'intégralité de la compilation sur linux / windows.
j_mcnally