Una publicación reciente de John Gruber señala que la siguiente jerga legal:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Se ha revisado de la siguiente manera:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
Y hace la siguiente observación:
Mi lectura de este nuevo lenguaje es que los compiladores cruzados, como el compilador de Flash a iPhone en el próximo lanzamiento de Adobe Flash Professional CS5, están prohibidos. Esto también prohíbe las aplicaciones compiladas con MonoTouch, una herramienta que compila aplicaciones C # y .NET para el iPhone.
¿De hecho, esto prohíbe el uso de Monotouch para el iPhone?
fuente
Respuestas:
Actualización
Sí, parece bastante claro por su acuerdo de licencia ahora que si la aplicación original está escrita en C #, entonces estaría violando la licencia:
Incluso lo martillan un poco más:
Como un fastidio, MonoTouch y el convertidor Flash CS5 -> iPhone son muy geniales.
fuente
Actualizar:
Apple ha eliminado (casi) todos los requisitos técnicos para idiomas y bibliotecas para iOS, por lo que MonoTouch es sin duda una solución viable. Ver el anuncio de Apple .
La mayoría de la gente aquí simplemente quiere tomar el documento de Apple por la palabra y decir "sí, está prohibido". Bueno, aquí está mi punto de vista: en este punto, nadie tiene idea de si MonoTouch va a ser prohibido o no, y explicaré por qué:
La versión 3 del acuerdo de Apple (no la última, la anterior) establece claramente que es ilegal usar cualquier otro marco para desarrollar aplicaciones que no sean las proporcionadas por Apple:
Aunque ese es el caso (y en realidad fue el caso desde 2.x, Apple no tiene ningún problema para aceptar aplicaciones que hacen exactamente eso. Por ejemplo, TODOS los juegos de EA usan scripts Lua, y muchas personas usan bibliotecas externas que no son nativos del iPhone. Incluso cuando el iPhone tiene esas API nativas, Apple nunca tuvo problemas para aceptar aplicaciones con diferentes versiones, como SQLite.
Mi punto es que decir "SÍ, serán prohibidos" en este momento es simplemente MUY temprano. Lo único claro en este momento es que Apple podría usar eso para prohibir aplicaciones. Al igual que hoy aceptan aplicaciones que están en contra de algunas de sus reglas, probablemente continuarán haciéndolo.
También existe el hecho de que hay cientos (¿o probablemente algunos miles?) De aplicaciones en la tienda que actualmente ejecutan Mono, y Apple tendrá que aceptar actualizaciones para esas aplicaciones. Las principales aplicaciones con millones de ventas se crearon usando Mono (y Lua), y dudo que reembolsen a cada usuario.
Por último, las aplicaciones empresariales se implementan en iPhones sin la aprobación de Apple, y ese es un gran mercado en el que se encuentra MonoTouch (yo mismo desarrollo aplicaciones empresariales). En este punto, no hay forma de que Apple pueda prohibir MonoTouch para esas aplicaciones, y eso probablemente sea suficiente para mantener a MonoTouch vivo durante mucho tiempo.
fuente
Actualizar:
Los nuevos cambios en las secciones 3.3.1, 3.3.2 y 3.3.9 han hecho que MonoTouch (y todos los demás compiladores cruzados / idiomas / etc.) sean perfectamente aceptables en el iPhone. Ver el anuncio de Apple
Miguel no parece pensar eso. Vea el tweet y la respuesta de Miguel . No reaccionemos de forma exagerada aquí y digamos que Monotouch está muerto, o dejemos de desarrollar con Monotouch hasta que todas las partes involucradas hayan hecho algunas aclaraciones.
Dicho esto, definitivamente comenzaría a ponerle calor a Apple por esas políticas de desarrollo tan draconianas. Cosas como esta, y el nebuloso proceso que es la política de aprobación de las aplicaciones iphone / ipad / touch deberían generar temor en los corazones de los desarrolladores. ¿Qué sigue, su licencia que indica que la única plataforma de anuncios que puede usar es iAd? ¿No permite la distribución de aplicaciones gratuitas sin iAd? ¿Aumenta lentamente la participación de Apple en los ingresos de las ventas de aplicaciones? Como desarrolladores en un ecosistema cerrado, somos como ranas en una olla de agua caliente, y Apple está aumentando lentamente el calor. Ahora es el momento de explorar otras plataformas móviles, porque a medida que mejoran, lo principal que atrae a las personas a la plataforma Apple es la falta de aplicaciones en otras plataformas.
fuente
Pasé meses de noches trabajando en ideas para una aplicación asesina de iPhone en el Objetivo C. Mi trabajo diario es C #. Descargué MonoTouch C # cuando se convirtió en una alternativa viable y acabo de pasar 3 meses convirtiendo mi código a MonoTouch C # específico para iPhone. Lo que me impidió volverme loco al cambiar de C # / Objetivo C.
¡¿Qué hago ahora, lo tiro todo y empiezo de nuevo o me doy por vencido?!
Lo siento mucho por los chicos de Mono. Esto es completamente incorrecto. Una cosa es detener a Adobe que no ha lanzado su producto y no tiene clientes, y detener a MonoTouch que sí lo hizo y también tiene un producto aprobado en la AppStore.
¿Por qué alguien querría construir un negocio e invertir en Apple cuando se lo quitarán todo en un momento sin ser responsables ni cuestionables?
Claramente, los desarrolladores y clientes de Apple que los cuidan a ellos y sus productos es una calle de sentido único.
fuente
Espero que Apple sea derrotado por esta política ridícula. La arrogancia no es atractiva y generalmente es mala para los negocios. Esta es una de las razones por las que no he comenzado el desarrollo de iPhone.
La mayoría de los proveedores de hardware y SO están contentos de tener herramientas y audiencia adicionales para escribir en su plataforma. Apple está adoptando la postura de que sus herramientas (braindead) son el único juego en la ciudad.
El anuncio de "Gran Hermano" de 1984 es cada vez más relevante ...
EDITAR
La forma en que está escrito también parece implicar que si escribí un traductor .net al objetivo C / apple, el código no es aceptable porque el código original no era objetivo c. Eso es ridículo (e inaplicable).
fuente
Unity también se basa en Mono y, al ser un producto comercial considerable, imagino que este es un problema que aún no hemos escuchado.
Prohibir todas las aplicaciones que no están escritas en Obj-C / C ++, en teoría también prohibiría todos los juegos de Unity, de los cuales ya hay un gran número en la tienda de aplicaciones.
Esta pregunta también se hizo en el sitio de Unity Answers, y su respuesta oficial es:
Sea interesante para ver lo que Apple les cuenta.
La cuestión es que decir con certeza que una aplicación debe escribirse en cierto idioma es un nombre poco apropiado, ya que una vez que la aplicación se compila, siempre es un binario nativo, independientemente de cómo se haya creado. Supongo que todo lo que pueden buscar es algún tipo de firma en el binario para detectar con qué herramienta se creó. Un enfoque defectuoso.
EDITAR: Hay una visión general interesante de la situación en este blog: monotouch ahora muerto en el agua, ¿qué significa el nuevo acuerdo de desarrollador de iPhone de Apple?
fuente
El nuevo acuerdo de licencia es explícitamente claro al respecto. Entonces SÍ, será prohibido.
Consejo, si realmente quieres desarrollar para iPhone, prueba XCode. Si ya está familiarizado con Java o C # o aún mejor C ++, entonces aprender Objective-C no será tan difícil.
iPhone / iPad es un nuevo negocio exitoso de Apple, y harán cualquier cosa para mantener este negocio en crecimiento, tal vez no prohibirán las aplicaciones Monotouch ahora, pero ¿quién sabe el próximo paso? Entonces, si está realmente muy interesado en el desarrollo del iPhone, en lugar de tener pesadillas, su trabajo podría ser rechazado. Simplemente cambie a XCode, al menos eso reducirá el porcentaje de rechazo de su aplicación. Por lo tanto, mi consejo.
fuente
Creo que algo a tener en cuenta es la motivación de Apple.
Estoy de acuerdo con otros sentimientos publicados en línea de que Apple está tratando de evitar la mercantilización de las aplicaciones, es decir, tener cada vez más aplicaciones escritas utilizando marcos que generan aplicaciones que pueden ejecutarse en múltiples dispositivos.
Pero eso no es lo que es Monotouch. Monotouch se trata de usar los marcos de Apple para escribir aplicaciones, pero a través de Mono, no Objective-C. Entonces, desde ese punto de vista, lo que Monotouch está haciendo no es algo que realmente deba molestar a Apple.
Todavía sostengo que es mejor que los desarrolladores escriban en el idioma nativo de la plataforma que están utilizando, ya que las cosas son generalmente más fluidas cuando no se introduce un sistema que puede tener una falta de coincidencia de impedancia de abstracción: los marcos de Cocoa se construyeron para ser utilizados Objective-C, y tienen más sentido cuando estás acostumbrado a la filosofía de Objective-C. Pero sí espero que Apple deje de permitir el uso de MonoTouch.
fuente
Todo lo que Apple dice es que ahora deben usar los idiomas de los años 80 para desarrollar su competencia superando las aplicaciones móviles de última generación ...
Tiene mucho sentido. Suena como una estrategia ganadora para mí.
También le impide usar bibliotecas de terceros que no puede garantizar que se hayan desarrollado en C, C ++ u Objective C.
Básicamente significa que no puedes comprar en API de juegos como Unity.
fuente
Solo agrego mis 2 centavos. Parece que después de leer esta parte: (por ejemplo, las aplicaciones que enlazan a API documentadas a través de una traducción intermedia o una capa o herramienta de compatibilidad están prohibidas) no hay nada que discutir. Los han expresado sin ambigüedad. No solo están prohibiendo MonoTouch y Unity3d, parece que también están prohibiendo Titanium Framework . Sin embargo, después de leer este artículo, me encontré realmente confundido. No estoy familiarizado con las leyes estadounidenses, pero ¿es legal? Quiero decir, ¿no están violando algunas leyes antimonopolio?
Además de todo esto, no puedo entender su motivación. No solo perderán en parte el interés de los desarrolladores, sino que también perderán el respeto de los desarrolladores, creo.
fuente
A partir de hoy, la Sección 3.3.1 de la Licencia del Programa para Desarrolladores de Apple iOS se ha revertido al texto anterior:
Apple ha publicado una declaración oficial sobre los cambios de licencia.
Esto indicaría que ahora está permitido usar MonoTouch.
fuente
Uno de los objetivos del equipo Mono es llevar Silverlight al iPhone mediante MonoTouch / Moonlight para el desarrollo multiplataforma. Eso es un poco como portar Flash al iPhone. También hay Monodroid en el camino para ayudarnos a portar aplicaciones y, ya sabes, Apple se ejecuta cada vez que alguien dice "Android" :-) En mi humilde opinión, si Apple está apuntando a Adobe con el nuevo acuerdo, también está apuntando a Novela. Probablemente estamos especulando y hay una NDA, pero muchos de nosotros invertimos mucho tiempo en esta plataforma, por lo que debemos aclarar la situación. No podemos esperar el próximo verano para discutir este asunto. Por ejemplo, un amigo me pidió que ayudara a su empresa a crear un prototipo de una aplicación MonoTouch para un cliente. ¿El nuevo acuerdo solo afecta la distribución de la App Store? ¿Qué pasa con la distribución interna?
fuente
Esta hoja de cálculo de Google Docs tiene una larga lista de aplicaciones que se verán afectadas por el nuevo acuerdo. Algunos notables que han sido # 1 en la tienda de aplicaciones para su categoría:
Una de las inclusiones divertidas es Toy Story.
fuente
o Muchas aplicaciones han sido aceptadas en los últimos días escritas con la ayuda de monotouch y unity, mientras que también las estoy usando, así como obj-c, desde el anuncio y el cambio en el acuerdo, así que VAYA A LA IMAGEN, ... lo bueno OL'WTF viene a la mente. Es una alcancía bipolar, parece.
TAMBIÉN, el último Unity Game GiantMOTO, que está bajo HOT NEW GAMES - YESTERDAY, tiene en su pantalla de inicio onLoad en letras grandes, POWERED BY UNITY. Entonces, todas las conjeturas, suposiciones, etc. están realmente fuera de la puerta. Podría decir todo eso en la nueva versión, ciertamente NO se aplica. Y montouch es la única plataforma de desarrollo que expone TOTALMENTE la API de iPhone y se construye COMPLETAMENTE en obj-c usando XCode.
fuente
Por lo que dice el acuerdo de licencia, las aplicaciones MonoTouch claramente no se permitirán en la AppStore.
Sin embargo, la pregunta más interesante es, ¿contra qué marco / aplicaciones la harán cumplir? También tendrán que escribir pruebas automatizadas para verificar si las aplicaciones se escribieron de forma nativa o no, porque las personas que aprueban las aplicaciones no tendrán el tiempo / las habilidades para hacerlo en cada aplicación. Estas aplicaciones no pondrán una pegatina allí 'Usando MonoTouch / Flash'.
fuente
La respuesta corta a todo ese blob en el acuerdo es SÍ .
Apple básicamente se está disparando en el pie al limitar los programas a unos pocos idiomas:
Están limitando deliberadamente qué herramientas puedes usar para desarrollar para iPhone, lo que casi seguro los meterá en serios problemas. Estoy seguro de que una buena parte de la comunidad simplemente abandonará el desarrollo de iPhone y migrará a una plataforma diferente como Windows Mobile, Symbian, Android o Maemo, que son totalmente abiertas: puede escribir su aplicación en LOLCODE.
Además de posiblemente hacer basura de iPhone para desarrolladores, también le da un beso a Adobe: Apple bloquea deliberadamente Flash desde iPad, y ahora también lo está bloqueando desde iPhone. El número es la característica más grande de Adobe Flash CS5 es implementar aplicaciones Flash en iPhone.
tl; dr: Apple básicamente se está disparando en el pie con este movimiento.
fuente
Han pasado meses después de la debacle de Flash y es bastante obvio que Monotouch y Unity están bien.
Según "Las aplicaciones que enlazan a API documentadas a través de una traducción intermedia o una capa o herramienta de compatibilidad están prohibidas"
Monotouch compila el código en un binario nativo, no hay "capa". Se refieren a algo como un tiempo de ejecución de .NET, Java JVM o tiempo de ejecución de Flash.
fuente
Las aplicaciones Mono normalmente se compilarían en bytecode, que es y requeriría una compilación JIT (justo a tiempo) para ejecutarlas, por lo que se requiere un marco .Net o un marco Mono. Sin embargo, en el caso de iOS y Android, la aplicación Mono compila en código nativo. Por lo tanto, a los ojos de Apple, no hay una tercera capa , Apple nunca prohibirá Mono. Para que pueda desarrollar con MonoTouch y distribuir sus aplicaciones. Para garantizarle aún más, hay varias aplicaciones Mono (incluidos juegos y aplicaciones) en la AppStore que han existido durante mucho tiempo.
fuente