Um post recente de John Gruber observa que os seguintes juridicos:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Foi revisado da seguinte forma:
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).
E faz a seguinte observação:
Minha leitura desse novo idioma é que são proibidos os compiladores cruzados, como o compilador de Flash para iPhone no próximo lançamento do Adobe Flash Professional CS5 da Adobe. Isso também proíbe aplicativos compilados usando o MonoTouch - uma ferramenta que compila aplicativos C # e .NET para o iPhone.
Isso de fato proíbe o uso do Monotouch para o iPhone?
fonte
Respostas:
Atualização -
Sim, parece bastante claro no contrato de licença deles agora que, se o aplicativo original for escrito em C #, ele estará violando a licença:
Eles ainda o martelam um pouco mais:
Que chatice, o MonoTouch e o conversor do Flash CS5 -> iPhone são muito legais.
fonte
Atualizar:
A Apple eliminou (quase) todos os requisitos técnicos para idiomas e bibliotecas para iOS, portanto o MonoTouch é sem dúvida uma solução viável. Veja o anúncio da Apple .
A maioria das pessoas aqui simplesmente quer pegar o documento da Apple com a palavra e dizer "sim, está proibido". Bem, aqui está o meu ponto de vista: neste momento, ninguém realmente tem idéia se o MonoTouch será banido ou não, e eu explicarei o porquê:
O contrato da Apple versão 3 (não a mais recente, a anterior) afirma claramente que é ilegal usar outras estruturas para desenvolver aplicativos diferentes dos fornecidos pela Apple:
Mesmo que esse seja o caso (e na verdade desde o 2.x, a apple não tem nenhum problema em aceitar aplicativos que fazem exatamente isso. Por exemplo, TODOS os jogos da EA usam scripts Lua, e muitas pessoas usam bibliotecas externas que Mesmo que o iPhone possua essas APIs nativas, a Apple nunca teve problemas em aceitar aplicativos com versões diferentes, como o SQLite.
O que quero dizer é que dizer "SIM, eles serão banidos" agora é simplesmente muito cedo. A única coisa clara neste momento é que a Apple poderia de fato usá-lo para banir aplicativos. Assim como eles aceitam aplicativos hoje contra algumas de suas regras, provavelmente continuarão fazendo isso.
Há também o fato de existirem centenas (ou provavelmente alguns milhares?) De aplicativos na loja atualmente executando o Mono, e a Apple precisará aceitar atualizações para esses aplicativos. Os principais aplicativos com milhões de vendas foram criados usando o Mono (e Lua), e duvido que reembolsariam todos os usuários.
Por fim, os aplicativos corporativos são implantados nos iPhones sem a aprovação da Apple, e esse é um grande mercado no qual o MonoTouch está (eu mesmo desenvolvo aplicativos corporativos). Neste momento, não há como a Apple banir o MonoTouch para esses aplicativos, e isso provavelmente será suficiente para manter o MonoTouch vivo por um longo tempo.
fonte
Atualizar:
Novas alterações nas seções 3.3.1, 3.3.2 e 3.3.9 tornaram o MonoTouch (e todos os outros compiladores / idiomas / etc) perfeitamente aceitáveis no iPhone. Veja o anúncio da Apple
Miguel parece não pensar assim. Veja o tweet e a resposta de Miguel . Não exagere aqui e diga que o Monotouch está morto ou pare de desenvolver com o Monotouch até que alguns esclarecimentos tenham sido feitos por todas as partes envolvidas.
Dito isto, eu definitivamente começaria a aquecer a Apple para essas políticas draconianas de desenvolvimento. Coisas assim, e o processo nebuloso que é a política de aprovação dos aplicativos para iphone / ipad / touch devem causar medo nos corações dos desenvolvedores. O que vem a seguir, a licença deles informando que a única plataforma de anúncios que você tem permissão para usar é o iAd? Não está permitindo a distribuição de aplicativos gratuitos sem o iAd? Aumentando lentamente a participação da Apple na receita de vendas de aplicativos? Como desenvolvedores de um ecossistema bloqueado, somos uma espécie de sapos em uma panela de água quente, e a Apple está aumentando lentamente o calor. Agora é a hora de explorar outras plataformas móveis, porque à medida que elas melhoram, a principal coisa que mantém as pessoas na plataforma Apple é a falta de aplicativos em outras plataformas.
fonte
Passei meses à noite trabalhando em idéias para um aplicativo matador de iPhone no Objetivo C. Meu trabalho diário é em C #. Baixei o MonoTouch C # quando ele se tornou uma alternativa viável e passei apenas três meses convertendo meu código em MonoTouch C # específico do iPhone. O que me impediu de enlouquecer ao mudar de C # / Objetivo C.
O que eu faço agora jogue tudo fora e comece de novo ou desista!?!
Sinto muito pelos caras Mono. Isso está completamente errado. Uma coisa é impedir a Adobe que não lançou seu produto e não possui clientes, além de impedir o MonoTouch que também possui o produto aprovado na AppStore.
Por que alguém iria querer construir um negócio e investir na Apple quando retiraria tudo em um instante sem ser responsável ou questionável?
Claramente, os desenvolvedores e clientes da Apple cuidando deles e de seus produtos são uma via de mão única.
fonte
Espero que a Apple seja criticada por essa política ridícula. A arrogância não é atraente e geralmente é ruim para os negócios. Essa é uma das razões pelas quais não iniciei o desenvolvimento do iPhone.
A maioria dos fornecedores de hardware e sistemas operacionais tem prazer em ter ferramentas e público-alvo adicionais para gravar em sua plataforma. A Apple está assumindo a posição de que suas ferramentas (braindead) são o único jogo na cidade.
O anúncio "Big Brother" de 1984 é cada vez mais relevante ...
EDITAR
O modo como está escrito também parece implicar que, se eu escrevesse um .net para um tradutor C / apple objetivo, o código não seria aceitável porque o código original não era objetivo c. Isso é ridículo (e inexequível.)
fonte
A unidade também se baseia no Mono e, como esse é um produto comercial considerável, imagino que esse seja um problema que ainda não ouvimos no final.
A proibição de todos os aplicativos não escritos no Obj-C / C ++ proibiria, em teoria, também todos os jogos do Unity, dos quais já existe um grande número na loja de aplicativos.
Essa pergunta também foi feita no site do Unity Answers, e sua resposta oficial é:
Seja interessante ver o que eles dizem pela Apple.
O fato é que, com certeza, dizer que um aplicativo precisa ser escrito em um determinado idioma é um pouco inadequado, pois uma vez que o aplicativo é compilado, ele sempre é um binário nativo, independentemente de como ele foi construído. Meu palpite é que tudo o que eles podem procurar é algum tipo de assinatura no binário para detectar com qual ferramenta ele foi construído. Uma abordagem falho.
EDIT: Há uma visão geral interessante da situação neste blog: monotouch agora morto na água o que significa o novo acordo de desenvolvedor de maçãs do iphone
fonte
O novo contrato de licença é explicitamente claro sobre isso. Então, sim, será banido.
Conselho, se você realmente deseja desenvolver para o iPhone, tente o XCode. Se você já está familiarizado com Java ou C # ou ainda com C ++ melhor, aprender Objective-C não será tão difícil.
O iPhone / iPad é um novo negócio de sucesso da Apple, e eles farão qualquer coisa para manter esse negócio em crescimento, talvez não banam os aplicativos Monotouch agora, mas quem sabe o próximo passo? Portanto, se você está realmente realmente interessado no desenvolvedor do iPhone, em vez de ter pesadelos, seu trabalho pode ser apenas rejeitado. Basta mudar para o XCode, pelo menos isso reduzirá a porcentagem de rejeições do seu aplicativo. Portanto, meu conselho.
fonte
Eu acho que algo a considerar fortemente é a motivação da Apple.
Concordo com outros sentimentos publicados on-line de que a Apple está tentando impedir a mercantilização de aplicativos - ou seja, tendo cada vez mais aplicativos escritos usando estruturas que geram aplicativos que podem ser executados em vários dispositivos.
Mas não é isso que Monotouch é. O Monotouch é sobre o uso das estruturas da Apple para escrever aplicativos - mas através do Mono, não do Objective-C. Portanto, desse ponto de vista, o que o Monotouch está fazendo não é algo que realmente deveria incomodar a Apple.
Eu continuo afirmando que é melhor os desenvolvedores escreverem no idioma nativo da plataforma que estão usando, pois as coisas geralmente são mais suaves quando você não apresenta um sistema que pode ter incompatibilidade de impedância de abstração - as estruturas Cocoa foram todas construídas para serem usadas a partir de Objective-C, e eles fazem mais sentido quando você está acostumado com a filosofia do Objective-C. Mas espero que a Apple se incline para permitir o uso do MonoTouch.
fonte
Tudo o que a Apple está dizendo é que agora você deve usar os idiomas dos anos 80 para desenvolver sua concorrência superando os aplicativos móveis de última geração ....
Faz todo o sentido. Parece uma estratégia vencedora para mim.
Também impede você de usar bibliotecas de terceiros que você não pode garantir que foram desenvolvidas em C, C ++ ou Objetivo C.
Então, basicamente, isso significa que você não pode comprar APIs de jogos, como o Unity.
fonte
Apenas adicionando meus 2 centavos. Parece que depois de ler esta parte: (por exemplo, aplicativos vinculados a APIs documentadas por meio de uma tradução intermediária ou camada ou ferramenta de compatibilidade são proibidos) não há nada a discutir. Eles os expressaram sem ambiguidade. Não apenas eles estão proibindo o MonoTouch e o Unity3d, como também estão proibindo o Titanium Framework . No entanto, depois de ler este artigo, fiquei realmente confuso. Eu não estou familiarizado com as leis dos EUA, mas é legal? Quero dizer, eles não estão violando algumas leis antimonopólio?
Além de tudo isso, não consigo entender a motivação deles. Eles não apenas perderão parcialmente o interesse dos desenvolvedores, mas também o respeito dos desenvolvedores, eu acho.
fonte
Atualmente, a Seção 3.3.1 da Licença do programa para desenvolvedores da Apple iOS foi revertida para o texto antigo:
A Apple divulgou uma declaração oficial sobre as alterações de licença.
Isso indicaria que agora é permitido usar o MonoTouch.
fonte
Um objetivo da equipe Mono é portar o Silverlight para o iPhone por meio do MonoTouch / Moonlight para o desenvolvimento de plataformas cruzadas. É como transportar o Flash para o iPhone. Há também o Monodroid a caminho para nos ajudar a portar aplicativos e, você sabe, a Apple fica louca toda vez que alguém diz "Android" :-) IMHO, se a Apple está mirando a Adobe com o novo contrato, ela também está voltada para a Novel. Provavelmente estamos especulando e há um NDA, mas muitos de nós investimos muito tempo nessa plataforma, portanto, precisamos esclarecer a situação. Mal podemos esperar no próximo verão para discutir esse assunto. Por exemplo, um amigo me pediu para ajudar sua empresa a criar um protótipo de um aplicativo MonoTouch para um cliente. O novo contrato afeta apenas a distribuição da App Store? E a distribuição interna?
fonte
Esta planilha do Google Docs possui uma longa lista de aplicativos que serão afetados pelo novo contrato. Alguns notáveis que foram o número 1 na appstore por sua categoria:
Uma das inclusões engraçadas é Toy Story.
fonte
oMuitos aplicativos foram aceitos nos últimos dias escritos com a ajuda do monotouch e da unidade, enquanto eu também o uso assim como o obj-c, desde o anúncio e a alteração do contrato, então, FIGURA, ... o bom ol'WTF vem à mente. Parece um banco piggy bipolar.
TAMBÉM, o último Unity Game GiantMOTO, que está sob HOT NEW GAMES - YESTERDAY, tem em sua tela inicial onLoad em grandes letras, POWERED BY UNITY. Então, todas as conjecturas, suposições etc. estão realmente fora da porta. Pode dizer tudo o que na nova versão, certamente não é aplicada. E o montouch é o único plataforma de desenvolvimento que EXPOSTA TOTALMENTE a API do iPhone e cria COMPLETAMENTE no obj-c usando o XCode.
fonte
Pelo que o contrato de licença diz, os aplicativos MonoTouch claramente não serão permitidos na AppStore.
A questão mais interessante é, porém, contra qual estrutura / aplicativos eles a aplicarão? Eles também terão que escrever testes automatizados para verificar se os aplicativos foram escritos nativamente ou não, porque as pessoas que aprovam os aplicativos não terão tempo / habilidades para fazer isso em todos os aplicativos. Esses aplicativos não colocarão um adesivo 'Como usar o MonoTouch / Flash'.
fonte
A resposta curta para toda essa bolha no contrato é SIM .
A Apple está basicamente se atirando no pé, limitando os programas a alguns idiomas:
Eles estão deliberadamente limitando as ferramentas que você pode usar para desenvolver o iPhone, o que quase certamente os colocará em sérios problemas. Tenho certeza de que uma parte de bom tamanho da comunidade simplesmente encerrou o desenvolvimento do iPhone e migrou para uma plataforma diferente, como Windows Mobile, Symbian, Android ou Maemo, totalmente aberta - você pode escrever seu aplicativo no LOLCODE.
Além de possivelmente tornar o iPhone inútil para desenvolvedores, também dá um beijo agradável na Adobe: a Apple bloqueia deliberadamente o Flash do iPad e agora eles também estão bloqueando o iPhone. O número é o maior recurso do Adobe Flash CS5: a implantação de aplicativos Flash no iPhone.
tl; dr: A Apple está basicamente atirando no próprio pé com esse movimento.
fonte
Já se passaram meses após o desastre instantâneo e é óbvio que Monotouch e Unity estão indo muito bem.
Conforme "Os aplicativos vinculados a APIs documentadas por meio de uma camada ou ferramenta intermediária de tradução ou compatibilidade são proibidos"
O Monotouch compila o código em um binário nativo, não há "camada". Eles estão se referindo a algo como um tempo de execução .NET, Java JVM ou Flash.
fonte
Os aplicativos mono normalmente compilam no bytecode, que é e exigiria a compilação JIT (just in time) para executá-los, portanto, é necessária uma estrutura .Net ou mono. No entanto, no caso de iOS e Android, o aplicativo Mono é compilado para o código nativo. Portanto, aos olhos da Apple, não há terceira camada , a Apple nunca proibirá Mono. Assim, você pode se sentir à vontade para desenvolver com o MonoTouch e distribuir seus aplicativos. Para garantir mais ainda, existem vários aplicativos Mono (incluindo jogos e aplicativos) na AppStore que existem há muito tempo.
fonte