macos - para - ¿Mac App Store acepta la aplicación escrita en Python/Java/Ruby?
mac app store sierra (6)
¿Mac App Store acepta la aplicación escrita en Python / Java / Ruby?
AFAIK, Cocoa te permitirá incluir código escrito en diferentes idiomas (incluidos Ruby y Python, pero no en Java, no creo).
Consulte el SDK de Apple para obtener más información, pero creo que (gracias a Cocoa) no es un problema.
Para las aplicaciones de Python, escribí un artículo exhaustivo que explica cómo crear y enviar dichas aplicaciones a la Mac App Store. Incluye código fuente y scripts de compilación para una aplicación de ejemplo de barebones que he enviado correctamente.
Posiblemente Java, si agrupas la aplicación Java en una aplicación mac.
Ruby? Si si
Apple ya aceptó una de mis aplicaciones escritas en MacRuby.
Si y no. A Apple no le importa en qué idioma está escrita su aplicación, pero no puede depender o instalar nada fuera del binario que envíe a Apple. Las pautas relevantes están abajo:
2.14
Apps must be packaged and submitted using Apple''s packaging technologies included in Xcode - no third party installers allowed
2.15
Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations
2.16
Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected
Entonces, mientras esto significa que no puedes depender de Ruby o Python, puedes usar un marco como MacRuby para construir tu aplicación en Ruby e incrustar el intérprete de Ruby. Hablando para MacRuby, las aplicaciones se enviaron correctamente a la Mac App Store de esta manera.
Las buenas noticias
Sí, puede enviar una aplicación Java a la Mac App Store. No es cierto en el pasado, pero es cierto al menos a partir de ahora en 2013.
Un ejemplo es la exitosa aplicación de finanzas personales MoneyDance actualmente disponible para la venta en la Mac App Store.
Las malas noticias
Preparar y enviar su aplicación no es ni simple ni fácil. Tienes que saltar a través de algunos aros.
- Su aplicación no puede depender de la instalación de Java en la Mac. Debe incluir un JRE ( Java Runtime Environment ) dentro de su aplicación Mac.
- Debe escribir un delgado envoltorio de Objective-C alrededor de su aplicación Java. El código fuente y los ejemplos / tutoriales están disponibles en la web.
- Al igual que cualquier otra aplicación, debe pasar por todas las complicaciones de la complicada estructura de implementación y despliegue con las restricciones de seguridad que Apple requiere de cualquier aplicación de Mac App Store.
Más información
- Dos artículos, lleve su aplicación Java a la Mac App Store y bifurque el OpenJDK por diversión y beneficio , por Marco Dinacci . Estos artículos pueden proporcionar otra información útil, pero afortunadamente su discusión sobre el bifurcación del JDK está ahora obsoleta. Él y otros han proporcionado los parches necesarios que ahora están incorporados en las versiones oficiales.
- Cómo crear un instalador de Mac OS X para una aplicación Java (actualizado para Mac OS X 10.8 - Mountain Lion) por Dem Pilafian de Center Key Software.
- Empaquetando una aplicación Java para distribución en una Mac (Oracle)
- Envío a la Mac App Store (Apple)
Por cierto, puedes usar tanto Swing como JavaFX en tu aplicación. JavaFX ahora se incluye con Java, al menos a partir de la actualización 40 de Java 7 de acuerdo con estas Notas de la versión .
Java 9
El Java 9 recientemente lanzado debería hacer que este proceso de envolver una aplicación con un tiempo de ejecución sea aún más fácil y mejor.
Módulos
Java 9 trae "modularización", el Sistema de Módulo de Plataforma Java (JPMS) , donde las aproximadamente 5,000 clases agrupadas con una JVM se agrupan en unos cien fragmentos conocidos como módulos . Puede incluir solo los módulos que contienen clases realmente utilizadas por su aplicación particular en lugar de desplazarse por cada biblioteca. Si no usa JSON o CORBA , entonces no necesita incluir los módulos relacionados con JSON o CORBA.
La nueva herramienta jlink hace este trabajo por usted, para ensamblar y optimizar un conjunto de módulos y sus dependencias en una imagen personalizada en tiempo de ejecución. Como beneficio adicional, se realiza un trabajo de optimización de tiempo de enlace para acelerar el lanzamiento de la aplicación.
Estas características son compatibles con los sistemas macOS de 64 bits, junto con otras plataformas.
Compilación nativa
Java 9 también ofrece un nuevo soporte para la compilación nativa, para construir una aplicación optimizada para hardware específico. Pero esta capacidad es experimental y aún no está lista para el uso en producción.
Actualización, a partir de 2018
Oracle ha anunciado el fin de la tecnología de implementación web , incluida Java Web Start , la vía recomendada anteriormente para las aplicaciones de escritorio. Así que ahora, Oracle espera que todas las aplicaciones Java se entreguen con una JVM, como se hace con la herramienta jlink
mencionada anteriormente.
Por lo tanto, el proceso de envolver una aplicación con un tiempo de ejecución de Java que era algo raro para Apple App Store ahora es una práctica general. Oracle espera que cualquier aplicación de escritorio basada en Java se instale de esta manera.