2010-10-21 6 views
1

Les directives d'Apple pour leur nouveau Mac App Store indiquent que vous ne pouvez pas utiliser de bibliothèques obsolètes telles que le framework Java d'Apple. Mais Apple autorisera-t-il les applications fournies avec un environnement d'exécution Java tiers, telles que SoyLatte?Le Mac App Store permettra-t-il aux applications d'utiliser un environnement d'exécution Java autre que Apple?

+1

C'est l'une de ces choses que vous pouvez réellement envoyer à Steve Jobs par courrier électronique et obtiendrez probablement une réponse directement de lui. – Bernard

+0

"Mais Apple va-t-il permettre"? Sommes-nous Apple? Parlons-nous pour Apple? Peut-être avez-vous confondu une grande communauté de programmeurs avec Apple, inc. –

+0

@Bernard C'est si vous avez des emplois steve email. Aucune idée de comment vous l'obtiendriez bien. – chromedude

Répondre

1

Oui, à condition que tout ce dont vous avez besoin pour exécuter votre application fasse partie de l'ensemble d'applications et que votre interface utilisateur se comporte et se comporte de manière complètement native. Vous n'êtes pas autorisé à faire confiance aux utilisateurs pour avoir déjà installé des technologies optionnelles ou obsolètes (bibliothèques, runtimes ou autres).

Plus précisément, les règles les plus susceptibles d'être pertinents state (PDF):

2. Fonctionnalité

2,22 Apps doit contenir tout le soutien linguistique dans un seul paquet d'applications (binaire unique de plusieurs langues)

2.24 Applications utilisant des technologies obsolètes ou installées (par exemple, J ava, Rosetta) sera rejeté

6. Interface utilisateur

6,3 Apps qui n'utilisent pas les éléments fournis par le système, tels que les boutons et les icônes, correctement et comme décrit dans les lignes directrices d'interface utilisateur d'Apple Macintosh sera rejetée 6.5 Apps qui changent les éléments d'interface utilisateur native ou les comportements de Mac OS X sera rejeté

ensemble, les deux règles de fonctionnalité Qu ote semble indiquer que vous êtes libre d'utiliser un environnement d'exécution Java tiers, à condition que tout ce qui est nécessaire pour exécuter votre application figure dans votre ensemble d'applications.

Les règles de l'interface utilisateur interdiraient toutes les émulations, à l'exception des plus légères, de tous les widgets de l'interface utilisateur native. De manière réaliste, vous auriez besoin d'un moyen d'utiliser des widgets de l'interface utilisateur native à partir de votre application Java. La boîte à outils Standard Widget d'Eclipse pourrait répondre aux exigences de l'interface utilisateur, par exemple.

+0

C'est certainement faux. Les règles 6.3 et 6.5 ne peuvent pas être satisfaites par Java sans utiliser d'API privées (2.5). – soc

+0

Le port Cocoa du Standard Widget Toolkit utilise-t-il une API privée? Et même si l'interface utilisateur devait être gérée à l'aide d'Obj-C, cela ne veut pas dire que vous ne pouvez pas mettre toute la logique du modèle et du contrôleur dans une application Java. Ceci est similaire à la façon dont un volet de préférence Cocoa peut être créé pour contrôler une application sans visage, telle qu'un démon ou un utilitaire. –

+0

En outre, la question n'était pas de savoir si une application entièrement Java serait autorisée dans le Mac App Store. La question était de savoir si une application dans le Mac App Store serait autorisée à exécuter du code Java en utilisant une exécution tierce, et la réponse par 2.22 et 2.24 est comme je l'ai dit: vous êtes libre d'utiliser un runtime Java tiers nécessaire pour exécuter votre application est contenue dans votre ensemble d'applications. –

0

Non, ils ne le seront pas.

Tenir compte de ces règles:

2,5 Apps qui utilisent des API non publiques seront rejetées

2.7 Apps qui dupliquent les applications déjà dans l'App Store peut être rejeté, en particulier si nombre d'entre eux

2.15 Les applications doivent être des ensembles d'installation d'application unique autonomes et ne peuvent pas être installés. l code ou des ressources dans des lieux communs

2.20 de Google Apps qui présentent un écran de licence lors du lancement seront rejetées

2,21 Apps ne peuvent pas utiliser des mécanismes de mise à jour en dehors de l'App Store

2,24 Les applications qui utilisent des technologies déconseillées ou installées en option (par exemple, Java, Rosetta) seront rejetées.

5.5 Utilisation du matériel 3ème partie protégée (marques, droits d'auteur, les secrets commerciaux, le contenu ou de propriété) exige un droit documenté vérifier qui doit être fourni sur demande

6.1 Apps doit se conformer à toutes les conditions expliquées dans l'Apple Macintosh homme interface Guidelines

6.3 Apps qui n'utilisent pas le système fourni des éléments tels que des boutons et des icônes, correctement et comme décrit dans les lignes directrices d'interface utilisateur d'Apple Macintosh seront rejetés

L'utilisation de technologies privées ou «obsolètes» est interdite par les règles (2.5, 2.24) ainsi que le code qui dépend de choses non installées par défaut sur Mac OS X (2.15). 2.15 vous forcerait à regrouper l'ensemble JRE avec votre application. Mais cela violerait (2.5) parce que le JRE utilisera des API non publiques pour s'intégrer au look-and-feel d'Apple et probablement aussi à 2.20.

Sans cette intégration, vous seriez en violation de 6.1 et 6.3. De plus, vous devriez mettre à jour l'application chaque fois que Java reçoit une mise à jour de sécurité, car le programme de mise à jour d'Oracle pour Java ne sera pas autorisé à fonctionner (2.21).En fin de compte, obtenir une lettre des avocats d'Oracle (requise par 5.5) peut prendre quelques mois, vous serez donc très en retard sur le marché et votre application pourrait être rejetée par la règle 2.7.


Cela n'a rien à voir avec la technologie. C'est une décision politique, tout comme ce qui s'est passé avec Flash, et si les gens essaient de se faufiler, Apple ne l'approuvera pas. Ils ont des tonnes de règles sur lesquelles ils peuvent baser leur rejet de votre application. Fondamentalement, Apple ne veut pas que les développeurs écrivent des applications multiplates-formes et les pousse à développer des applications «exclusives» Apple dans un langage contrôlé par Apple.

+0

Factuellement incorrect - votre application Mac App Store est libre de dépendre de tout ce qui n'est pas installé par défaut sur Mac OS X, à condition qu'elle puisse satisfaire ses dépendances en utilisant les ressources contenues dans son paquet d'application (2.22) et non copiée . 2.24 est destiné à éviter le "J'ai téléchargé cette application, et maintenant cela ne fonctionne pas?" les problèmes qui dépendent de l'utilisateur pour avoir déjà installé des ressources optionnelles causeraient. –

+0

Je ne suis pas sûr de savoir à quel paragraphe vous faites référence, je suppose qu'après avoir changé le libellé pour ajouter les règles réelles, la formulation à laquelle vous vous êtes opposé n'existe plus maintenant. – soc

Questions connexes