Bei den Smartphone-Plattformen handelt es sich eigentlich um sehr geschlossene und reglementierte Systeme. Mit der Entwicklung von mobilen Anwendungen oder der Veröffentlichung dieser über die bereitgestellten Distributionskanäle (u. a. Apple App Store, Android Marketplace) ist der Entwickler gezwungen, den Bedingungen (z. B. Allgemeine Geschäftsbedingungen, Terms of Service) des Anbieters zuzustimmen.
Beinhalten diese zwar jetzt schon teilweise einige fragwürdige Paragraphen, wie das Recht des Anbieters theoretisch jede Anwendung ohne besonderen Grund von den Geräten zu löschen (heise online, 2008), sind diese insgesamt doch recht gut nachvollziehbar und für die meisten Entwickler akzeptabel. Allerdings ermöglichen sie jeder Zeit eine Änderung der Bedingungen um beliebige Anforderungen und Einschränkungen.
Der Anbieter könnte jederzeit die Entwicklung von plattformübergreifenden Anwendungen für seine Plattform verbieten und somit die vorgestellten Ansätze wertlos machen. Im April 2010 sah es kurzzeitig so aus, als hätte Apple mit der Veröffentlichung der Nutzungsbedingungen für das iOS 4.0 SDK genau das getan.
Apple iOS SDK §3.3.1
Am 8. April 2010 veröffentlichte Apple Version 4.0 Beta ihres Software Development Kits. Um dieses herunterladen zu können, mussten interessierte Entwickler überarbeiteten Nutzungsbedingungen (iPhone Developer Program License Agreement) zustimmen. Diese beinhalteten folgenden Abschnitt (Gruber, 2010):
1.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). [ref]Übersetzung: Anwendungen dürfen dokumentierte APIs nur in der von Apple vorgeschriebenen Art und Weise nutzen und keine privaten APIs nutzen oder aufrufen. Anwendungen müssen ursprünglich in Objective-C, C, C++ oder JavaScript, wie es von der iPhone OS WebKit Engine ausgeführt wird, geschrieben sein. Nur Code, der in C, C++ oder Objective-C geschrieben ist darf gegen die dokumentierten APIs kompilieren oder direkt darauf zugreifen (beispielsweise sind Anwendungen, die auf dokumentierte APIs über eine Zwischenübersetzung oder eine Kompatibilitätsebene oder -tool zugreifen, verboten).[/ref]
Der erste Satz war schon in vorherigen Versionen Teil der Bestimmungen. Satz zwei hingegen stellte neue Anforderungen an die ursprünglich genutzte Programmiersprache (Objective-C, C, C++ oder JavaScript) und verbot ausdrücklich Anwendungen, deren Code über eine Übersetzung oder eine Kompatibilitätsebene auf Funktionen des API zugreifen.
Da es sich bei den Nutzungsbedingungen um ein rechtliches und nicht um ein technisches Dokument handelt – das zudem einer Geheimhaltungsvereinbarung unterlag – war die Interpretation und Einschätzung dieser Aussagen nicht einfach. Je nach Ansicht könnten interpretierte (vgl. Abschnitt 4.3) oder durch einen Cross-Compiler erstellte Anwendungen (vgl. Abschnitt 4.4) gegen diesen Paragraphen verstoßen und damit nicht mehr zugelassen sein.
Adobe hatte für die neue Version CS5 ihres Programms Flash ein Tool zum Konvertieren von Flash- zu iPhone-Anwendungen angekündigt, das nur einige Tage nach der Bekanntgabe dieser neuen Bedingungen veröffentlicht werden sollte. Da Apple sich bisher vehement geweigert hatte, Flash-Anwendungen auf dem iPhone zuzulassen drängte sich der Verdacht auf, dass diese neuen Bedingungen eigentlich nur gegen Adobes Flash-zu-iPhone-Konverter gerichtet waren und plattformübergreifende Anwendungen als Kollateralschäden einfach nicht näher beachtet worden waren.
Auch weitere iPhone-spezifische Anwendungen wie die Spiele-Plattform Unity oder Tools zum Erstellen von iPhone-Anwendungen unter Nutzung anderer Programmier- und Skriptingsprachen wie Monotouch oder Corona wären theoretisch betroffen gewesen. Da diese jedoch bisher sehr gute Beziehungen zu Apple pflegten und gerade viele Spiele auf solche Lösungen angewiesen waren, verstärkte sich dieser Eindruck. Niemand ging davon aus, dass Apple auch diese Programme verbieten wollte.
Bis heute gibt es keine offizielle Verlautbarung von Apple zur Motivation hinter diesem Schritt. Adobe kündigte jedoch an, den Flash-Konverter in Zukunft nicht mehr weiter zu entwickeln. Soweit bekannt, wurden keine plattformübergreifenden Anwendungen oder andere betroffene Anwendungen zurückgezogen oder nachträglich aus dem Apple AppStore entfernt.