2010-06-06 5 views
5

Apple möchte nicht, dass jemand iPhone-Apps außerhalb der Xcode/Objective-C-Umgebung erstellt. Wie können sie das durchsetzen?Neue iPhone Dev-Richtlinie ... wie setzt Apple dies durch?

Wenn die Nicht-Xcode-IDE, z. B. Unity, mit einer ausführbaren iPhone-Datei kompiliert wird, wie weiß Apple dann, welche Entwicklungsumgebung Sie zum Erstellen der App verwendet haben? Können sie Xcode eine Art von Signatur in die ausführbare Datei kompilieren, die niemand kennt?

+0

@Longpoke: Ich denke, es wurde in erster Linie eingerichtet, um Adobe zu stoppen. – dreamlax

+3

Warte, was? subjektiv und argumentativ? Ich stimme nicht zu, ich denke, das ist eine gute Frage - wie kann Apple einen 3.3.1 Verstoß erkennen? – Colin

+2

Warum ist das "subjektiv"? Es gibt nur eine richtige Antwort, entweder haben sie eine Möglichkeit zu wissen, wer die Regel ohne Ninjas bricht oder nicht. –

Antwort

1

Für Tools wie Unity, Corona, Flash und andere Plattformen, die zum Generieren von iPhone-Apps verwendet werden, kann Apple in der Lage sein, Ihre App zu "dekompilieren" und zu untersuchen (siehe Muster generierter Funktionen usw.). Daraus können sie möglicherweise erraten, dass Ihre App mit einem solchen Tool erstellt wurde.

Im Grenzbereich ist dies unmöglich. Bedenken Sie Folgendes: Ich schreibe einen Skriptcode, um einen Haufen Zielcode zu generieren. Dann importiere ich manuell die Ziel-C-Dateien in xcode und baue die App. Wie könnte Apple den vom Skript generierten Code vom menschlich geschriebenen Code unterscheiden? Vielleicht tendiere ich dazu, Code zu schreiben, der maschinengeneriert aussieht. Es gibt keine Möglichkeit für Apple festzustellen, ob der Code "ursprünglich in Objective-C, C, C++ oder Javascript geschrieben wurde" oder nicht, aber dies würde technisch noch immer die Vereinbarung verletzen. Deshalb ist der 3.3.1 Teil der Vereinbarung Unsinn.

0

Ich glaube, dass viele dieser Übersetzerwerkzeuge eine Art gemeinsame Laufzeitfunktionsbibliothek haben, die sich um die Teile kümmern, die nicht 1: 1 übersetzt werden konnten. Diese Funktion könnte dann unabhängig von Ihrer Anwendung ziemlich konstant sein. Auf diese Weise würde es nicht wirklich nötig sein, die App zu dekompilieren. Suchen Sie stattdessen nach der Verwendung dieser Funktionssignaturen.

FWIW Ich finde die ganze Idee der Begrenzung der Benutzerauswahl von Werkzeugen ist ein schlechter Zug.

1

Die meisten automatisierten Systeme tun Dinge auf eine bestimmte Art, die nicht schwer zu erkennen ist. Wenn Sie sich zum Beispiel einmal den PHP- oder JavaScript-Code angeschaut haben, den Adobe Dreamweaver erzeugt, wissen Sie, wie einfach es ist, so etwas zu finden.

1

Damit verhindert Apple, dass Adobe das Flash-Entwicklungsframework verwendet. Es sollte auch angemerkt werden, dass die Entscheidung von Apple, Anwendungs-Frameworks wie diese zu beschränken, das DOJ/FTC oder eine Regierungsbehörde veranlasst, eine informelle Untersuchung monopolistischer Praktiken zu beginnen.

From this article: „Nach der Hollywood Quelle der Post, Apples Verbot des Adobe Flash-Technologie auf dem iPhone und iPad ist das, was die Regierung aufgefordert, um zu stoßen.“

Sie wirklich bis jetzt nicht ein Problem haben mit anderen Frameworks, weil Adobe nicht auf der Flash-Umgebung basiert. Jetzt, wo es einen gibt, wird Apple alles beschränken, was auf dem iPhone spricht/aussieht/riecht/sich wie eine Adobe Flash-App verhält. Meiner Meinung nach werden sie mit anderen Frameworks nichts anfangen, aber sie werden die Regel nur für Adobe durchsetzen. Das bringt die ganze monopolistische Praxis herauf.

Verwandte Themen