web-dev-qa-db-fra.com

Démarrer le développement d'applications iPhone sous Linux?

J'ai entendu dire qu'il vous fallait un Mac si vous voulez développer des applications pour iPhone. Est-ce vrai?

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

517
javac

Pour fournir une réponse différente, j'utilise OS X et Xcode sur une machine virtualisée (VMware) sous Linux. Le processeur est un Core2Quad (Q8800) et il est parfaitement rapide. J'ai trouvé un VM pré-construit en ligne (je vous laisse le soin de le 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.

295
Chaos

La réponse à cette question dépend du fait que vous souhaitiez ou non développer des applications qui sont ensuite distribuées via le magasin iPhone. Si vous ne le faites pas et que le développement pour le public "jailbreaké" de l'iPhone ne vous dérange pas, vous pouvez développer à partir de Linux.

Consultez la page de ce gars pour un guide complet (si un peu complexe) sur quoi faire:

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

75
GodEater

Cela semble être vrai jusqu'à présent. Le seul SDK disponible à partir de Apple ne cible que l'environnement MacOS. Je suis contrarié par cela, mais je cherche à acheter un Mac maintenant, juste pour faire du développement sur iPhone. Je n'aime vraiment pas ce qu'ils font et j'espère qu'un bon SDK sera disponible pour d'autres environnements, tels que Linux et Windows.

Voici un article sur leur iniquité générale concernant le SDK:

Le SDK pour iPhone et le logiciel libre: pas un match

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

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 logiciel. Toutefois, pour pouvoir réellement 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 une étape nécessitant l'approbation de Apple.

Je pense que c’est plutôt élitiste pour eux de penser que seuls les utilisateurs de macos sont assez bien pour écrire des programmes pour leur téléphone, et le fait d’acheter une licence à 100 $ si vous voulez publier vos fichiers rend vraiment la tâche plus difficile pour les programmeurs amateurs. Cependant, si c'est ce que vous devez faire, je prévois de passer à travers leurs cerceaux; J'aimerais vraiment développer certaines choses sur mon iPhone.

25
stephenbayer

Il y avait un projet dédié à la résolution de ce problème: iphone-dev

Le projet iphone-dev a pour objectif de créer une chaîne d’outils gratuite, portable et de haute qualité, permettant le développement de l’iPhone Apple et des autres périphériques intégrés basés sur la plate-forme ARM/Darwin.

20
Johan Boulé

En ce qui concerne la chaîne d’outils alternatifs, le site de Saurik est utile, mais pour les derniers développements de microprogrammes, il indique la construction sur l’iPhone lui-même et n’indique pas qu’il peut être nécessaire de copier les fichiers de microprogrammes d’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 de rechange ouvertes).

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

Je suggère de continuer à effectuer la compilation finale, ainsi que la signature du code et l'empaquetage au format XCode (ce qui peut signifier emprunter le Mac de quelqu'un) au cas où vous rencontriez des problèmes lors de l'envoi de l'application à Apple. L’utilisation de la chaîne d’outils alternatifs ouvre la possibilité (du moins sur Mac) à la possibilité d’utiliser d’autres IDE que XCode pour développer l’application et de recourir de 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 certificat à partir de la ligne de commande en dehors de XCode, vous pouvez installer un certificat sur votre iPhone actuel et le tester (en installant l'application via iTunes avec votre certificat).

12
dljava

Le seul moyen que je connaisse de faire du développement sous Linux pour l'iPhone serait d'installer VMware et de faire en sorte que OS X s'exécute sur une machine virtuelle. Cela dit, il existe certaines préoccupations "juridiques" à cet égard. Il est rapporté que OS X Server peut être virtualisé mais pour ce qui est du développement, je ne le sais pas.

Si vous êtes vraiment sérieux, c'est ce sur quoi je ferais enquête.

Bonne chance.

7
Keith Elder

Vous pourrez peut-être écrire du code sur une machine 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 pour le soumettre à l'App Store. Donc, finalement, vous avez besoin d’un Mac, vous pouvez donc aussi bien faire le travail sur 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 un VM sous Linux. Toutefois, je dois signaler que cela rompra le contrat de licence OSX, même si vous achetez la copie d’OSX - car il n’est autorisé à être utilisé que sur du matériel Apple.

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

EDIT: Une exception majeure à ceci est l'écriture d'une application web pour iPhone. Il existe d’excellentes applications Web pour iPhone qui ont presque la même qualité d’expérience utilisateur qu’une application native. Cependant, j'ai interprété votre question comme étant relative au 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".

5
iandotkelly

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

5
Ofer Brandes

Il existe un cadre appelé Rhodes .

Le concept est basé sur Ruby sur 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 (à travers GitHub ), et cela vous permet de le compiler pour iPhone, Blackberry, Android, Windows Mobile et Symbian, tous hors du même code. Vous n'avez pas besoin de coder dans Objective-C pour iPhone, ni Java pour Android, etc. Il effectue les conversions pour vous. Il vous suffit de vous conformer aux règles relatives à la création d'une application iPhone (ou du téléphone pour lequel vous souhaitez développer le logiciel) afin qu'elle puisse être acceptée sur iTunes (ou le marché équivalent).

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

Je n'ai toutefois trouvé aucun émulateur, ce qui signifie que pour tester votre application, vous devez la placer 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 sur Rails. Si vous souhaitez simplement créer une application pour iPhone, investissez dans un Mac.

J'espère que cela t'aides.

3
Theo Scholiadis

J'ai réussi à créer des applications iOS sur Linux en utilisant le chaîne d'outils iOS par cjacker . Fondamentalement, il se compose des outils en amont clang et llvm de votre distribution linux, d'un port linux de l'éditeur de liens d'Apple et de quelques outils supplémentaires permettant de 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 logiciel et vous y seriez habitué. J'ai posté un tutoriel à 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.

3
Roger Keays

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

Nous avons vu peu de choses bidouiller pour surmonter cela et le rendre à 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 un travail fastidieux à inventer tout le temps. Si vous souhaitez obtenir une application prête à utiliser, vous pouvez également obtenir de l’aide d’arcapps qui lance ses applications à un prix raisonnable. développement d'application iphone

1
Isabella Jacob

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

1
user602592

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, il s'agit d'un territoire totalement non libre. Cependant, lors du développement, il ne sera pas du tout nécessaire de traiter Apple. Vous pouvez utiliser par exemple rsync pour télécharger le code sur le périphérique et le tester.

1
Johan Boulé

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 tu ne peux pas faire:

  • Utilisez Interface Builder pour configurer votre interface, étant donné que ce n'est que sur Mac. (Non requis, mais recommandé.)
  • Compilez du code qui utilise les classes Cocoa d’Apple - elles n’existent pas sous Linux.
  • Code de test dans le simulateur - il n'y en a pas pour Linux.
  • Compilez le code pour des appareils réels ou pour l'App Store - tout cela nécessite des outils que Apple ne fournit que pour OS X.
1
CajunLuke

Je recommanderais de prendre un Mac, car le simulateur iOS est un outil formidable pour les premiers tests d'une application. Mais je connais une petite entreprise avec laquelle nous travaillons, qui utilise Unity pour ne pas avoir besoin de beaucoup de mac. De cette façon, ils n'ont besoin que d'un seul mac pour le bureau, et ce n'est que pour compiler la version finale. Cela signifie également que cela fonctionne sur Android, mais cela dépend vraiment de votre bâtiment car il s'agit d'un moteur de jeux. Vous voudrez peut-être examiner les applications Web à l'aide de cadres tels que Sencha Touch Mobile

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

0
dciso