¿Es posible implementar una aplicación Python en Mac App Store?


¿Acepta Apple aplicaciones Python para su distribución en la nueva Mac App Store?

Si es así, ¿cómo se debe empaquetar la aplicación? ¿Es suficiente py2app? Algo más?

Author: FogleBird, 2011-02-09

6 answers

Empaqué Pennywise, que está disponible en la Mac App Store. Está basado en moneyGuru de Virgil, que usa Python, PyObjC y py2app.

Tendrá que seguir El proceso de Apple para preparar una solicitud para su envío a la Mac App Store. Lo más importante es que querrá agregar las claves adecuadas a su información.plist, y eliminar cualquier mecanismo de actualización automática, por ejemplo, Sparkle. No es estrictamente necesario, pero es probable que también desee implementar la recepción comprobando . Usar Xcode hará que el proceso de envío sea mucho más fácil. Puedes mirar el código fuente de moneyGuru para ver un ejemplo de cómo usar Xcode como la parte final del proceso de compilación.

Py2app incorpora una copia del framework de Python en el bundle, así que no se si Apple aprobaría una aplicación que solo enlazara al framework del sistema. Mientras que el binario principal no puede soportar PPC, Apple no parece comprobar las arquitecturas de los binarios en embedded marco.

Una última advertencia: No recomendaría este proceso para escribir nuevas aplicaciones. El uso de Python, PyObjC y py2app complica seriamente el proceso de compilación e introduce dependencias adicionales.

 55
Author: lemnar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-06 12:06:58

Sé que es posible porque conozco al menos una aplicación basada en Python que está en la app store ("Pennywise", que se basa en mi propia aplicación, moneyGuru, que usa Python + PyObjC + py2app). No lo hice yo, así que no estoy seguro de los detalles.

 9
Author: Virgil Dupras,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-14 14:40:41

Escribí un artículo completo explicando cómo compilar y enviar una aplicación Python a la Mac App Store. Incluye código fuente y scripts de compilación para una aplicación de ejemplo barebones que he enviado con éxito.

 6
Author: David Foster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-25 07:21:06

Sí, es posible, siempre y cuando cumpla con el conjunto completo de directrices de aprobación. Esto significa que el intérprete de python tendrá que ser incluido en su aplicación, por ejemplo.

Vea aquí una lista completa de requisitos:

Https://developer.apple.com/appstore/mac/resources/approval/guidelines.html

 5
Author: blueberryfields,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-09 01:04:07

Es muy posible. Mi aplicación está actualmente en la lista:

Http://itunes.apple.com/us/app/quickwho/id419483981?mt=12&ls=1 #

Incluido con py2app, no te preocupes.

 3
Author: Kevin Walzer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-29 03:30:04

Apple proporciona la herramienta Build Applet para Python con Xcode, por lo que debería ser compatible con la App store. macOS X 10.6.6 incluye Python 2.5 y 2.6 como parte de la instalación predeterminada, puede especificar /usr/bin/python2.5 y /usr/lib/python2.5.

 1
Author: Michael Shopsin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-14 14:35:26