2010-06-06 2 views
5

Apple не хочет, чтобы кто-либо создавал приложения для iPhone за пределами среды Xcode/Objective-C. Как они могут навязать это?Новая политика для разработчиков iPhone ... как Apple применяет это?

Если среда, отличная от Xcode, например Unity, компилируется в исполняемый файл iPhone, как Apple узнает, какую среду разработки вы использовали для создания приложения? Могут ли они скомпилировать Xcode какую-то подпись в исполняемом файле, о котором никто не знает?

+0

@ Longpoke: Я думаю, что это было сделано для того, чтобы остановить Adobe. – dreamlax

+3

Подождите, что? субъективным и аргументированным? Я не согласен, я думаю, что это хороший вопрос - как яблоко может распознать нарушение 3.3.1? – Colin

+2

Почему этот «субъективный»? Есть только один правильный ответ, либо у них есть какой-то способ узнать, кто нарушает правило без ниндзя, либо нет. –

ответ

1

Для таких инструментов, как единство, корона, вспышка и другие платформы, используемые для «создания» приложений iphone, Apple может «декомпилировать» и изучить ваше приложение (посмотреть на шаблоны сгенерированных функций и т. Д.). Из этого они могут угадать, что ваше приложение было создано с помощью такого инструмента.

В пределе это невозможно. Рассмотрим следующее: я пишу код сценария для создания кучи кода цели-c. Затем я вручную импортирую файлы цели-c в xcode и создаю приложение. Как яблоко сможет отличить созданный скриптом код от написания человеком кода? Возможно, я просто склонен писать код, который, по-видимому, выглядит машинным. Apple не может определить, был ли код «изначально написан на объективе c, c, C++ или javascript» или нет, но это все равно технически нарушит соглашение. Вот почему часть раздела 3.3.1 является бессмыслицей.

0

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

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

1

Большинство автоматизированных систем делают вещи определенным образом, что не так сложно обнаружить. Если вы когда-либо просматривали PHP или JavaScript-код, создаваемый Adobe Dreamweaver, например, вы знаете, как легко найти такие вещи.

1

Apple делает это, чтобы люди не использовали флэш-рамки Adobe Flash. Следует также отметить, что решение Apple ограничить рамки приложений, как это, заставляет DOJ/FTC или какое-либо правительственное агентство начать неофициальное расследование монополистической практики.

From this article: «Согласно Почте источника голливудского, запрет Apple, технология проигрыватель Adobe Flash на iPhone и IPad является то, что побудило правительство копаться.»

Они действительно не имеют проблемы до сих пор с другими фреймворками, потому что у Adobe не было основанного на среде Flash. Теперь, когда есть один, Apple собирается ограничить все, что говорит/смотрит/пахнет/действует как приложение Adobe Flash на iPhone. На мой взгляд, они ничего не будут делать с другими платформами, но они будут применять правило только для Adobe. Который воспитывает всю монополистическую практику.