Сейчас MonoTouch запрещен на iPhone?

Недавняя публикация John Gruber отмечает, что следующая легализация:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

Был изменен следующим образом:

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).

И делает следующее наблюдение:

Мое чтение этого нового языка заключается в том, что кросс-компиляторы, такие как компилятор Flash-to-iPhone в выпуске Flash Professional CS5 от Adobes, запрещены. Это также запрещает приложения, скомпилированные с помощью MonoTouch - инструмента, который компилирует приложения на С# и .NET на iPhone.

Это фактически запрещает использование Monotouch для IPhone?

Ответ 1

Обновление -

Этот недавно изменился. MonoTouch больше не будет конфликтовать с соглашение. Все приведенные ниже утверждения носят чисто исторический характер.

Да, теперь довольно ясно из их лицензионного соглашения, что если исходное приложение написано на С#, это нарушит лицензию:

... Приложения должны быть изначально написаны в Objective-C, C, С++ или JavaScript, выполняемые движком Web OSK iPhone OS...

Они даже забивают его чуть дальше:

Приложения, которые ссылаются на Documented API через посреднический перевод или уровень совместимости или инструмент, запрещены

Вид обрыва, MonoTouch и Flash CS5 → iPhone-конвертер очень крутые.

Ответ 2

Update:

Apple снизила (почти) все технические требования к языкам и библиотекам для iOS, поэтому MonoTouch, без сомнения, является жизнеспособным решением. См. Объявление Apple.


Большинство людей здесь просто хотят взять документ Apple по слову и сказать "да, его запретили". Ну, вот моя точка зрения: на данный момент никто действительно не знает, будет ли MonoTouch запрещен или нет, и я объясню, почему:

В соглашении Apple 3 (но не последнее, предыдущее) четко указано, что его незаконно использовать любые другие структуры для разработки приложений, отличных от тех, которые предоставляются Apple:

3.3.2. Приложение не может самостоятельно устанавливать или запускать другой исполняемый код любыми способами, включая без ограничений посредством использования архитектуры подключаемого модуля, вызова других фреймворков, других API или других. Никакой интерпретируемый код не может быть загружен или использован в приложении, кроме кода, который интерпретируется и запускается Apple Documented API и встроенный интерпретатор (ы). http://adcdownload.apple.com/iphone/iphone_sdk_3.2__final/iphone_sdk_agreement.pdf

Несмотря на то, что в этом случае (и на самом деле это произошло с 2.x, у яблока нет проблем с принятием приложений, которые делают именно это. Например, во ВСЕХ играх EA используются сценарии Lua, и многие и многие люди используют внешние библиотеки, которые не являются родными для iPhone. Даже когда у iPhone есть эти собственные API, у Apple никогда не было проблем с приемом приложений с разными версиями, например, SQLite.

Я хочу сказать, что "ДА, они будут запрещены" прямо сейчас, просто WAAY слишком рано. Единственная очевидная вещь на данный момент заключается в том, что Apple может фактически использовать это, чтобы запретить приложения. Так же, как они принимают Приложения сегодня, которые противоречат некоторым их правилам, они, вероятно, продолжат это делать.

Также существует тот факт, что сотни приложений (или, возможно, несколько тысяч?) в магазине, в котором сейчас работает Mono, и Apple должны будут принимать обновления для этих приложений. Основные приложения с миллионами продаж были созданы с использованием Mono (и Lua), и я сомневаюсь, что они вернут каждого пользователя.

Наконец, корпоративные приложения развернуты на iPhone без одобрения Apple и на большом рынке, на котором работает MonoTouch (я сам разрабатываю корпоративные приложения). На данный момент нет никакого способа, чтобы Apple могла запретить MonoTouch для этих приложений, и этого, вероятно, будет достаточно, чтобы поддерживать MonoTouch в течение длительного времени.

Ответ 3

Обновление:

Новые изменения в разделах 3.3.1, 3.3.2 и 3.3.9 сделали MonoTouch (и все другие кросс-компиляторы/языки/и т.д.) вполне приемлемыми на iPhone. См. Apple анонс


Miguel, похоже, не так. См. твит и Miguel ответ. Давайте не будем слишком остро реагировать на это и скажем, что Monotouch мертв или перестать развиваться вместе с Monotouch до тех пор, пока все разъяснения не будут сделаны всеми участвующими сторонами.

Это говорит о том, что я определенно начну вкладывать тепло в Apple для такой драконовской политики развития. Такие вещи, и туманный процесс, который является политикой утверждения приложений iphone/ipad/touch, должен нанести страх в сердца разработчиков. Что дальше, их лицензия на то, что единственной платформой Ad, которую вы разрешили использовать, является iAd? Не разрешать распространение бесплатных приложений без iAd? Медленно увеличивая долю Apple в доходах от продаж приложений? Как разработчики в закрытой экосистеме, мы вроде лягушки в горшке с горячей водой, и Apple медленно поднимает жару. Сейчас самое время изучить другие мобильные платформы, потому что по мере того, как они становятся лучше, главное, чтобы люди на платформе Apple отсутствовали на других платформах.

Ответ 4

Я провел месяцы вечеров, работая над идеями для приложения iPhone-убийцы в Objective C. Моя дневная работа - С#. Я загрузил MonoTouch С#, когда стал жизнеспособной альтернативой, и только что потратил 3 месяца на мой код на iPhone MonoTouch С#. Который мешал мне сходить с ума, переключаясь с С#/Objective C.

Что мне теперь делать, отбросьте все это и начните снова или сдайтесь!?!

Мне очень жаль парней Mono. Это просто неправильно. Одно дело, чтобы остановить Adobe, которые не запустили свой продукт и не имеют клиентов, и остановить MonoTouch, которые делают и также одобрили продукт в AppStore.

Почему кто-то хочет построить бизнес и инвестировать в Apple, когда они будут принимать все это в одно мгновение без привлечения к ответственности или сомнительной?

Очевидно, разработчики и клиенты Apple, заботящиеся о них и их продуктах, - это улица в одну сторону.

Ответ 5

Я надеюсь, что Apple будет преследовать эту смешную политику. Высокомерие не привлекательно и вообще плохо для бизнеса. Это одна из причин, по которой я не начал разработку iPhone.

Большинство поставщиков оборудования и ОС рады иметь дополнительные инструменты и аудиторию для записи на свою платформу. Apple придерживается позиции, что его инструменты (braindead) - единственная игра в городе.

Объявление "Большой брат" с 1984 года становится все более актуальным...

ИЗМЕНИТЬ

То, как это написано, также, по-видимому, подразумевает, что если я написал .net для объектного транслятора C/apple, то код не приемлем, потому что исходный код не был объективным. c. Это смехотворно (и невыполнимо).

Ответ 6

В новом лицензионном соглашении прямо сказано об этом. Да, это будет запрещено.

Совет, если вы хотите действительно разработать для iPhone, попробуйте XCode. Если вы уже знакомы с Java или С# или еще лучше С++, тогда обучение Objective-C не будет таким трудным.

iPhone/iPad - это новый успешный бизнес Apple, и они будут делать все, чтобы этот бизнес рос, возможно, они не будут запрещать приложения Monotouch, но кто знает, что следующий шаг? Поэтому, если вы действительно действительно заинтересованы в iPhone dev, вместо того, чтобы иметь кошмары, что ваша работа может быть просто отвергнута. Просто переключитесь на XCode, по крайней мере, это снизит процент отклонения вашего приложения. Следовательно, мой совет.

Ответ 7

Unity также основан на Mono и с тем, что является значительным коммерческим продуктом. Я полагаю, что это проблема, которую мы имеем еще не слышал конца.

Запрет всех приложений, которые не написаны в Obj-C/С++, теоретически запретит также все игры Unity, из которых уже есть большое количество в магазине приложений.

Этот вопрос также задан на сайте Unity Answers, и их официальный ответ:

"Мы только что услышали об iPhone OS4.0 и новые условия предоставления услуг. В то время как мы что мы полностью совместимы с это мы сейчас делаем все, что мы может подтвердить это Apple. В виде как мы точно знаем, мы будем Поделитесь этой информацией со всеми. Пожалуйста, повесьте трубку, пока мы получаем это сумасшедший".

Интересно посмотреть, что им говорит Apple.

Дело в том, что, скажем, приложение должно быть написано на определенном языке, является немного неправильным, поскольку, как только приложение скомпилировано, оно всегда является родным двоичным кодом, независимо от того, как оно был построен. Я предполагаю, что все, что они могут искать, это какая-то подпись в двоичном коде, чтобы определить, с каким инструментом он был построен. Недостаток подхода.

РЕДАКТИРОВАТЬ: Есть интересный обзор ситуации в этом блоге: monotouch теперь мертв в воде, что делает яблоки новыми Соглашение о разработке iphone означает

Ответ 8

Я думаю, что что-то, что нужно учесть, - это мотивация Apple.

Я согласен с другими настроениями, опубликованными в Интернете, что Apple пытается предотвратить коммодизацию приложений, то есть иметь все больше и больше приложений, написанных с использованием фреймворков, которые генерируют приложения, которые могут работать на нескольких устройствах.

Но это не то, что Monotouch. Monotouch все об использовании фреймворков Apple для написания приложений - но через Mono, а не Objective-C. Итак, с этой точки зрения, что делает Monotouch, это не то, что должно действительно беспокоить Apple.

Я по-прежнему считаю, что разработчикам лучше писать на родном языке платформы, которую они используют, поскольку вещи просто более плавные, когда вы не вводите систему, которая может иметь несоответствие импеданса абстракции, - рамки Cocoa были все построенный для использования из Objective-C, и они имеют наибольший смысл, когда вы привыкли к философии Objective-C. Но я надеюсь, что Apple придет на сторону использования MonoTouch.

Ответ 9

Все Apple говорит, что вы все должны теперь использовать языки 1980 года, чтобы развить конкуренцию, избивая современные мобильные приложения....

Идеальный смысл. Похоже на выигрышную стратегию для меня.

Он также останавливает вас от использования каких-либо сторонних библиотек, которые вы не можете гарантировать, что они были разработаны на прямых C, С++ или Objective C.

Таким образом, в основном это означает, что вы не можете покупать в API игр, например Unity.

Ответ 10

Просто добавьте свои 2 цента. Похоже, что после прочтения этой части: (например, приложения, которые ссылаются на Documented API через посреднический перевод или уровень совместимости или инструмент) обсуждать нечего. Они выразили их недвусмысленно. Мало того, что они запрещают MonoTouch и Unity3d, похоже, они также запрещают Titanium Framework. Однако, прочитав эту статью, я действительно смутился. Я не знаком с законами США, но является ли он законным? Я имею в виду, разве они не нарушают некоторые антимонопольные законы?

Помимо всего этого, я не могу понять их мотивацию. Я думаю, что они не только частично потеряют интерес разработчиков, но и потеряют уважение разработчиков.

Ответ 11

На сегодняшний день раздел 3.3.1 Лицензии для программы разработчика Apple iOS теперь возвращен к старому тексту:

3.3.1 Приложения могут использовать Documented API только таким образом предписанные Apple и не должны использовать или вызвать любые частные API.

Apple выпустила официальное выражение о изменениях лицензии.

Это означает, что теперь разрешено использовать MonoTouch.

Ответ 12

Одна из целей команды Mono - переносить Silverlight на iPhone с помощью MonoTouch/Moonlight для кросс-платформенной разработки. Это немного напоминает перенос Flash на iPhone. Существует также Monodroid по пути, чтобы помочь нам портировать приложения, и, вы знаете, Apple запускает amonk каждый раз, когда кто-то говорит "Android":-) ИМХО, если Apple нацеливается на Adobe с новым соглашением, они также нацелены на Novel. Мы, вероятно, спекулируем и там NDA, но многие из нас инвестировали много времени на эту платформу, поэтому нам нужно сделать ситуацию ясной. Мы не можем ждать следующего лета, чтобы обсудить этот вопрос. Например, меня попросил друг помочь своей компании прототипировать приложение MonoTouch для клиента. Влияет ли новое соглашение только на дистрибутив App Store? Как насчет внутреннего распределения?

Ответ 13

В этой таблице google docs есть длинный список приложений, на которые повлияет новое соглашение. Некоторые примечательные, которые были # 1 в appstore для своей категории:

  • Монополия
  • Лимонад Tycoon
  • Skee ball
  • Поселенцы
  • Zombieville

Одна из забавных включений - История игрушек.

Ответ 14

oМногие приложения были приняты за последние несколько дней, написанные с помощью monotouch и единства, в то время как я также использую его, а также obj-c, с момента объявления и изменения соглашения, поэтому GO FIGURE,.. Хороший ol'WTF приходит на ум. Кажется, это биполярная копилка.

ТАКЖЕ, последняя Unity Game GiantMOTO, которая находится под HOT NEW GAMES - ВЧЕРА, имеет на своем всплеском экране onLoad большими буквами, POWERED UNITY. Таким образом, все предположения, предположения и т.д. Действительно находятся за дверью. Это может сказать все, что в новой версии, это, безусловно, НЕ применяется. Montouch - единственная платформа разработки, которая ПОЛНОСТЬЮ предоставляет iPhone API и ПОЛНОСТЬЮ реализует obj-c с использованием XCode.

Ответ 15

В соответствии с лицензионным соглашением приложения MonoTouch явно не будут разрешены в AppStore.

Более интересный вопрос заключается в том, какие рамки/приложения будут применять для этого? Им также придется писать автоматические тесты, чтобы проверить, были ли приложения написаны изначально или нет, потому что люди, которые одобряют приложения, не будут иметь время/навыки, чтобы сделать это для каждого отдельного приложения. Эти приложения не помещают наклейку "Использование MonoTouch/Flash".

Ответ 16

Короткий ответ на все, что blob в соглашении ДА.

Apple в основном стреляет в ногу, ограничивая программы на несколько языков:

  • C - который в настоящее время не подходит для разработки приложений, из-за этого низкого уровня. В основном это язык системного программирования.
  • С++ - что затрудняет съемку вашего телефона, но когда это происходит, это с базукой. Помимо Qt, в С++ нет каких-либо полных фреймворков приложений (а Qt еще не поддерживает iPhone).
  • Objective-C - который был изобретен Apple и, конечно же, будет поддержан.
  • JavaScript работает в WebKit - в основном веб-приложение.

Они намеренно ограничивают, какие инструменты вы можете использовать для разработки для iPhone, что почти наверняка вызовет у них серьезные проблемы. Я уверен, что хороший размер сообщества просто прекратит разработку iPhone и перейдет на другую платформу, такую ​​как Windows Mobile, Symbian, Android или Maemo, которые полностью открыты - вы можете писать свое приложение в LOLCODE.

Помимо возможности сделать iPhone для мусора для разработчиков, он также дает Adobe приятный поцелуй: Apple намеренно блокирует Flash от iPad, и теперь они также блокируют его от iPhone. Nummer является самой большой функцией Adobe Flash CS5 для развертывания Flash-приложений на iPhone.

tl; dr: Apple в основном стреляет в ногу с этим ходом.

Ответ 17

Теперь, через несколько месяцев после фиаско вспышки, и это довольно очевидно, Monotouch и Unity делают все в порядке.

В соответствии с "Приложения, которые ссылаются на Documented API через посреднический перевод или уровень совместимости или инструмент, запрещены"

Monotouch компилирует код до нативного двоичного файла, нет "слоя". Они имеют в виду somethign, как среда выполнения .NET, Java JVM или Flash runtime.

Ответ 18

Моно-приложения обычно компилируются в байт-код, который есть и требует компиляции JIT (только вовремя) для их запуска, поэтому требуется каркас .Net или Mono. Однако, в случае iOS и Android, приложение Mono компилируется в собственный код. Поэтому в глазах Apple нет третьего слоя , Apple никогда не запретит Mono. Поэтому вы можете свободно работать с MonoTouch и распространять свои приложения. Чтобы обеспечить вас дальше, в AppStore существует множество приложений Mono (включая игры и приложения), которые были в течение длительного времени.