Niedawny post Johna Grubera zauważa, że następujący język prawniczy:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Został poprawiony w następujący sposób:
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).
I czyni następującą obserwację:
Czytam o tym nowym języku, że kompilatory krzyżowe, takie jak kompilator Flash-to-iPhone w nadchodzącej wersji Flash Professional CS5 firmy Adobe, są zabronione. Zakazuje to również aplikacji skompilowanych przy użyciu MonoTouch - narzędzia, które kompiluje aplikacje C # i .NET na iPhone'a.
Czy to faktycznie zakazuje używania Monotouch na iPhonie?
źródło
Odpowiedzi:
Aktualizacja -
Tak, teraz wydaje się całkiem jasne, że z umowy licencyjnej wynika, że jeśli oryginalna aplikacja jest napisana w C #, to naruszałoby to licencję:
Wbijają go nawet trochę dalej:
Coś dziwnego, MonoTouch i konwerter Flash CS5 -> iPhone są bardzo fajne.
źródło
Aktualizacja:
Apple zrzucił (prawie) wszystkie wymagania techniczne dotyczące języków i bibliotek dla iOS, więc MonoTouch jest bez wątpienia opłacalnym rozwiązaniem. Zobacz ogłoszenie Apple .
Większość ludzi tutaj po prostu chce wziąć dokument Apple'a za słowo i powiedzieć „tak, to zakazane”. Cóż, oto mój punkt widzenia: w tym momencie nikt tak naprawdę nie ma pojęcia, czy MonoTouch zostanie zbanowany, czy nie, i wyjaśnię dlaczego:
Umowa Apple w wersji 3 (nie najnowsza, poprzednia) wyraźnie stwierdza, że nielegalne jest używanie jakichkolwiek innych frameworków do tworzenia aplikacji innych niż te dostarczone przez Apple:
Chociaż tak jest (i faktycznie tak było od 2.x, Apple nie ma żadnego problemu z akceptacją aplikacji, które robią dokładnie to). Na przykład WSZYSTKIE gry EA używają skryptów Lua, a wiele osób korzysta z bibliotek zewnętrznych, które nie są natywne dla iPhone'a. Nawet jeśli iPhone ma te natywne interfejsy API, Apple nigdy nie miał problemu z akceptowaniem aplikacji z różnymi wersjami tego, jak SQLite.
Chodzi mi o to, że powiedzenie „TAK, będą zbanowane” w tej chwili jest po prostu WAAY za wcześnie. Jedyną jasną rzeczą w tym momencie jest to, że Apple może w rzeczywistości użyć tego do blokowania aplikacji. Tak jak akceptują dziś aplikacje, które są sprzeczne z niektórymi ich zasadami, prawdopodobnie będą to kontynuować.
Istnieje również fakt, że w sklepie są obecnie setki (lub prawdopodobnie kilka tysięcy?) Aplikacji, w których działa Mono, a Apple będzie musiał akceptować aktualizacje tych aplikacji. Główne aplikacje z milionami sprzedaży zostały stworzone przy użyciu Mono (i Lua) i wątpię, czy zwróciliby pieniądze każdemu użytkownikowi.
Wreszcie aplikacje korporacyjne są wdrażane na iPhone'ach bez zgody Apple, a to jest duży rynek, na którym działa MonoTouch (sam tworzę aplikacje korporacyjne). W tej chwili nie ma możliwości, aby Apple mógł zablokować MonoTouch dla tych aplikacji, a to prawdopodobnie wystarczy, aby utrzymać MonoTouch przy życiu przez długi czas.
źródło
Aktualizacja:
Nowe zmiany w sekcjach 3.3.1, 3.3.2 i 3.3.9 sprawiły, że MonoTouch (i wszystkie inne kompilatory krzyżowe / języki / itp.) Są całkowicie akceptowalne na iPhonie. Zobacz ogłoszenie Apple
Miguel chyba tak nie myśli. Zobacz tweet i odpowiedź Miguela . Nie przesadzajmy w tym miejscu i nie mówmy, że Monotouch nie żyje, lub przestańmy rozwijać się z Monotouch, dopóki wszystkie zaangażowane strony nie zostaną wyjaśnione.
To powiedziawszy, zdecydowanie zacznę grzać Apple za tak drakońskie polityki rozwojowe. Takie rzeczy i mglisty proces, jakim jest polityka zatwierdzania aplikacji na iPhone / iPad / touch, powinny budzić strach w sercach programistów. Co dalej, ich licencja stwierdzająca, że jedyną platformą reklamową, z której możesz korzystać, jest iAd? Nie zezwalasz na dystrybucję bezpłatnych aplikacji bez iAd? Powoli zwiększasz udział Apple w przychodach ze sprzedaży aplikacji? Jako programiści w zamkniętym ekosystemie, jesteśmy jakby żabami w garnku z gorącą wodą, a Apple powoli podkręca temperaturę. Nadszedł czas, aby zbadać inne platformy mobilne, ponieważ w miarę ich ulepszania najważniejszą rzeczą trzymającą ludzi na platformie Apple jest brak aplikacji na innych platformach.
źródło
Miesiące wieczory spędzałem nad pomysłami na zabójczą aplikację na iPhone'a w Objective C. Na co dzień pracuję w C #. Pobrałem MonoTouch C #, gdy stał się realną alternatywą i właśnie spędziłem 3 miesiące na konwersji mojego kodu do MonoTouch C # specyficznego dla iPhone'a. Co powstrzymało mnie przed szaleństwem podczas przechodzenia z C # / Objective C.
Co mam teraz zrobić, wyrzucić to wszystko i zacząć od nowa lub poddać się!?!
Bardzo mi przykro z powodu facetów z Mono. To jest po prostu błędne. Jedną rzeczą jest powstrzymanie Adobe, które nie wypuściło swojego produktu i nie ma klientów, i powstrzymanie MonoTouch, który to robi i ma również zatwierdzony produkt w AppStore.
Dlaczego ktokolwiek miałby chcieć budować biznes i inwestować w Apple, skoro zabiorą to wszystko w mgnieniu oka, nie odpowiadając ani nie kwestionując?
Najwyraźniej deweloperzy i klienci Apple dbający o nich i ich produkty to droga jednokierunkowa.
źródło
Mam nadzieję, że Apple zostanie oszukany za tę absurdalną politykę. Arogancja nie jest atrakcyjna i generalnie zła dla biznesu. To jeden z powodów, dla których nie zacząłem projektowania iPhone'a.
Większość dostawców sprzętu i systemów operacyjnych jest zadowolona z dodatkowych narzędzi i odbiorców do pisania na ich platformie. Apple stoi na stanowisku, że jego (Braindead) narzędzia są jedyną grą w mieście.
Reklama „Big Brother” z 1984 roku jest coraz bardziej aktualna ...
EDYTOWAĆ
Sposób, w jaki jest napisany, wydaje się również sugerować, że jeśli napiszę .net dla obiektywnego tłumacza C / apple, kod nie jest akceptowalny, ponieważ oryginalny kod nie był obiektywny c. To jest śmieszne (i niewykonalne).
źródło
Unity również bazuje na Mono, a ponieważ jest to spory produkt komercyjny, wyobrażam sobie, że jest to kwestia, o której jeszcze nie słyszeliśmy.
Banowanie wszystkich aplikacji, które nie są napisane w Obj-C / C ++, teoretycznie zablokowałoby również wszystkie gry Unity, których duża liczba jest już w sklepie z aplikacjami.
To pytanie zostało również zadane w witrynie Unity Answers, a ich oficjalna odpowiedź brzmi:
Ciekawe, co powiedzą im od Apple.
Chodzi o to, że na pewno trzeba napisać aplikację w określonym języku, jest trochę mylące, ponieważ po skompilowaniu aplikacji jest to zawsze natywny plik binarny, niezależnie od tego, jak została zbudowana. Domyślam się, że wszystko, czego mogą szukać, to jakiś rodzaj sygnatury w pliku binarnym, aby wykryć, z jakim narzędziem został zbudowany. Wadliwe podejście.
EDYCJA: Na tym blogu jest ciekawy przegląd sytuacji: monotouch teraz martwy w wodzie, co oznacza jabłka nowa umowa deweloperska iPhone'a
źródło
Nowa umowa licencyjna jest tego wyraźnie jasna. Więc TAK, zostanie to zbanowane.
Porada, jeśli naprawdę chcesz programować na iPhone'a, wypróbuj XCode. Jeśli znasz już Javę, C # lub jeszcze lepszy C ++, to nauka Objective-C nie będzie taka trudna.
iPhone / iPad to nowy, odnoszący sukcesy biznes firmy Apple i zrobią wszystko, aby ten biznes się rozwijał, może teraz nie zablokują aplikacji Monotouch, ale kto wie, jaki jest następny krok? Więc jeśli naprawdę interesuje Cię tworzenie iPhone'a, zamiast koszmarów, że Twoja praca może zostać odrzucona. Po prostu przejdź na XCode, co najmniej obniży procent odrzuconych aplikacji. Stąd moja rada.
źródło
Myślę, że coś, co należy mocno rozważyć, to motywacja Apple.
Zgadzam się z innymi opiniami publikowanymi w Internecie, że Apple stara się zapobiegać utowarowieniu aplikacji - to znaczy, że coraz więcej aplikacji pisze się za pomocą frameworków, które generują aplikacje, które mogą działać na wielu urządzeniach.
Ale to nie jest tym, czym jest Monotouch. Monotouch polega na używaniu frameworków Apple do pisania aplikacji - ale za pośrednictwem Mono, a nie Objective-C. Z tego punktu widzenia to, co robi Monotouch, nie powinno naprawdę przeszkadzać Apple.
Nadal uważam, że programistom lepiej jest pisać w języku ojczystym platformy, której używają, ponieważ ogólnie rzecz biorąc, rzeczy są po prostu płynniejsze, gdy nie wprowadza się systemu, który może mieć niedopasowanie impedancji abstrakcji - wszystkie frameworki Cocoa zostały zbudowane do użytku z Objective-C i mają one największy sens, kiedy jesteś przyzwyczajony do filozofii Objective-C. Ale mam nadzieję, że Apple poprze zezwolenie na użycie MonoTouch.
źródło
Apple mówi tylko, że wszyscy musicie teraz używać języków lat 80-tych, aby rozwijać swoją konkurencję, pokonując najnowocześniejsze aplikacje mobilne ...
To ma sens. Brzmi jak zwycięska strategia.
Uniemożliwia również korzystanie z jakichkolwiek bibliotek innych firm, których nie możesz zagwarantować, a które zostały opracowane w prostym języku C, C ++ lub Objective C.
Zasadniczo oznacza to, że nie można kupować w interfejsach Games API, takich jak Unity.
źródło
Dodam tylko moje 2 centy. Wydaje się, że po przeczytaniu tej części: (np. Aplikacje, które odsyłają do udokumentowanych interfejsów API za pośrednictwem pośredniego tłumaczenia lub warstwy lub narzędzia kompatybilności są zabronione) nie ma nic do omówienia. Wyrazili je jednoznacznie. Nie tylko banują MonoTouch i Unity3d, ale wygląda na to, że zakazują także Titanium Framework . Jednak po przeczytaniu tego artykułu poczułem się naprawdę zdezorientowany. Nie znam prawa Stanów Zjednoczonych, ale czy jest to legalne? To znaczy, czy nie łamią jakichś praw antymonopolowych?
Poza tym nie rozumiem ich motywacji. Nie tylko częściowo stracą zainteresowanie deweloperów, ale też, jak sądzę, stracą ich szacunek.
źródło
Na dzień dzisiejszy sekcja 3.3.1 licencji programu Apple iOS Developer została przywrócona do starego tekstu:
Apple wydało oficjalne oświadczenie w sprawie zmian w licencji.
Oznaczałoby to, że można teraz używać MonoTouch.
źródło
Jednym z celów zespołu Mono jest przeniesienie Silverlight na iPhone'a za pomocą MonoTouch / Moonlight w celu programowania międzyplatformowego. To trochę jak przenoszenie Flasha na iPhone'a. Jest też Monodroid, który pomoże nam w przenoszeniu aplikacji, a wiesz, Apple uruchamia amonk za każdym razem, gdy ktoś mówi „Android” :-) IMHO, jeśli Apple celuje w Adobe z nową umową, to także Novel. Prawdopodobnie spekulujemy i istnieje umowa NDA, ale wielu z nas zainwestowało dużo czasu w tę platformę, więc musimy wyjaśnić sytuację. Nie możemy się doczekać następnego lata, aby omówić tę sprawę. Na przykład znajomy poprosił mnie o pomoc w opracowaniu prototypu aplikacji MonoTouch dla klienta. Czy nowa umowa ma wpływ tylko na dystrybucję App Store? A co z dystrybucją wewnętrzną?
źródło
Ten arkusz kalkulacyjny Google Docs zawiera długą listę aplikacji, na które będzie miała wpływ nowa umowa. Niektóre z nich, które były nr 1 w Appstore w swojej kategorii:
Jednym z zabawnych dodatków jest Toy Story.
źródło
oWiele aplikacji zostało zaakceptowanych w ciągu ostatnich kilku dni napisanych przy pomocy monotouch i jedności, ale ja również używam go i obj-c, od ogłoszenia i zmiany w umowie, więc GO FIGURE, ... dobrze na myśl przychodzi ol'WTF. Wydaje się, że jest to dwubiegunowa skarbonka.
TAKŻE ostatnia gra Unity GiantMOTO, która znajduje się w GORĄCYCH NOWYCH GRACH - WCZORAJ, ma na ekranie powitalnym onLoad napisany dużymi literami, ZASILANIE JEDNOSTKĄ. Tak więc wszystkie domysły, przypuszczenia itp. Są naprawdę na wyciągnięcie ręki. To wszystko mogłoby powiedzieć, że w nowej wersji na pewno NIE jest to egzekwowane. Montouch to jedyna platforma programistyczna, która W PEŁNI udostępnia API iPhone'a i CAŁKOWICIE buduje w obj-c przy użyciu XCode.
źródło
Z tego, co mówi umowa licencyjna, aplikacje MonoTouch wyraźnie nie będą dozwolone w AppStore.
Bardziej interesujące jest jednak pytanie, w odniesieniu do jakich frameworków / aplikacji będą to egzekwować? Będą również musieli napisać testy automatyczne, aby sprawdzić, czy aplikacje zostały napisane natywnie, czy nie, ponieważ osoby, które zatwierdzają aplikacje, nie będą miały czasu / umiejętności, aby to zrobić dla każdej aplikacji. Te aplikacje nie umieszczą tam naklejki „Korzystanie z MonoTouch / Flash”.
źródło
Krótka odpowiedź na wszystkie te plamy w umowie brzmi TAK .
Apple w zasadzie strzela sobie w stopę, ograniczając programy do kilku języków:
Celowo ograniczają narzędzia, których można użyć do stworzenia iPhone'a, co prawie na pewno wpędzi ich w poważne kłopoty. Jestem pewien, że spora część społeczności po prostu zrezygnuje z tworzenia iPhone'a i przeniesie się na inną platformę, taką jak Windows Mobile, Symbian, Android lub Maemo, które są całkowicie otwarte - możesz napisać swoją aplikację w LOLCODE.
Oprócz tego, że prawdopodobnie robi to z iPhone'a śmieciami dla programistów, daje również Adobe miłego pocałunku: Apple celowo blokuje Flasha na iPadzie, a teraz blokuje go również z iPhone'a. Nummer to największa funkcja Adobe Flash w CS5, polegająca na wdrażaniu aplikacji Flash na iPhonie.
tl; dr: Apple po prostu strzela sobie w stopę tym ruchem.
źródło
Minęły miesiące po flashowej porażce i jest całkiem oczywiste, że Monotouch i Unity radzą sobie dobrze.
Zgodnie z „Zabronione są aplikacje, które zawierają odsyłacze do udokumentowanych interfejsów API za pośrednictwem pośredniego tłumaczenia lub warstwy zgodności lub narzędzia”
Monotouch kompiluje kod do natywnego pliku binarnego, nie ma „warstwy”. Odnoszą się do czegoś takiego jak środowisko uruchomieniowe .NET, Java JVM lub Flash.
źródło
Aplikacje mono normalnie kompilowałyby się do kodu bajtowego, który jest i wymagałby kompilacji JIT (just in time) do ich uruchomienia, dlatego wymagana jest struktura .Net lub Mono. Jednak w przypadku systemów iOS i Android aplikacja Mono jest kompilowana do kodu natywnego. Dlatego w oczach Apple nie ma trzeciej warstwy , Apple nigdy nie zablokuje Mono. Możesz więc swobodnie rozwijać się za pomocą MonoTouch i rozpowszechniać swoje aplikacje. Aby zapewnić Ci więcej, w AppStore są różne aplikacje Mono (w tym gry i aplikacje), które istnieją od dłuższego czasu.
źródło