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 к iPhone в предстоящем Профессионале Flash Adobe выпуск CS5. Это также запрещает приложения, скомпилированные с помощью MonoTouch — инструмент, который компилирует C# и приложения.NET к iPhone.

Это на самом деле запрещает использование Монокасания для iPhone?

156
задан casperOne 5 December 2012 в 12:52
поделиться

16 ответов

Обновление -

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

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

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

Они даже немного усложняют это:

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

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

88
ответ дан 23 November 2019 в 21:51
поделиться

Обновление:

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


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

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

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

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

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

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

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

49
ответ дан 23 November 2019 в 21:51
поделиться

В этой электронной таблице документов Google есть длинный список приложений, на которые повлияет новое соглашение. Некоторые примечательные из них, которые заняли первое место в магазине приложений в своей категории:

  • Монополия
  • Лимонадный магнат
  • Скиболл
  • Поселенцы
  • Зомбивилль

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

2
ответ дан 23 November 2019 в 21:51
поделиться

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

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

4
ответ дан 23 November 2019 в 21:51
поделиться

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

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

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

EDIT

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

.
9
ответ дан 23 November 2019 в 21:51
поделиться

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

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

1
ответ дан 23 November 2019 в 21:51
поделиться

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

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

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

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

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

10
ответ дан 23 November 2019 в 21:51
поделиться

Короткий ответ на весь этот сгусток в соглашении - ДА.

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

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

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

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

tl;dr: Этим шагом Apple, по сути, сама себя подставила под удар.

1
ответ дан 23 November 2019 в 21:51
поделиться

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

3
ответ дан 23 November 2019 в 21:51
поделиться

Я думаю, что следует серьезно подумать о мотивации Apple.

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

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

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

6
ответ дан 23 November 2019 в 21:51
поделиться

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

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

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

7
ответ дан 23 November 2019 в 21:51
поделиться

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

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

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

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

Интересно будет узнать, что им скажет Apple.

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

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

7
ответ дан 23 November 2019 в 21:51
поделиться

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

Совершенно логично. Для меня это похоже на выигрышную стратегию.

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

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

5
ответ дан 23 November 2019 в 21:51
поделиться

Обновление:

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


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

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

27
ответ дан 23 November 2019 в 21:51
поделиться

oМногие приложения были приняты за последние несколько дней, написанные с помощью monotouch и unity, в то время как я также использую его вместе с obj-c, после объявления и изменения в соглашении, так что ИДИТЕ РИСУНОК, ... на ум приходит старый добрый WTF. Похоже, это биполярная копилка.

ТАКЖЕ, в последней игре Unity GiantMOTO, которая находится в разделе ГОРЯЧИЕ НОВЫЕ ИГРЫ - ВЧЕРА, на заставке большими буквами значится надпись POWERED BY UNITY. Итак, все домыслы, предположения и т. Д. Действительно вышли за дверь. Можно сказать, что все это в новой версии, безусловно, НЕ применяется. И montouch - единственная платформа разработки, которая ПОЛНОСТЬЮ предоставляет iPhone API и ПОЛНОСТЬЮ встраивает в obj-c с использованием XCode.

2
ответ дан 23 November 2019 в 21:51
поделиться

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

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

Monotouch компилирует код в собственный двоичный код, «уровня» нет. Они имеют в виду что-то вроде среды выполнения .NET, Java JVM или среды выполнения Flash.

1
ответ дан 23 November 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: