Rozumiem, dlaczego nie możesz tworzyć aplikacji OS X na komputerze z systemem Linux, ale czy istnieje dobry techniczny powód, dla którego nie możesz tworzyć aplikacji na iPhone'a i iPada w systemie Linux? Dlaczego nie jest możliwe skompilowanie kodu źródłowego iOS do pliku wykonywalnego iOS i uruchomienie go w symulatorze iOS w systemie Linux lub zainstalowanie go na rozwojowym urządzeniu z systemem iOS?
Czy to tylko dlatego, że XCode IDE jest aplikacją Cocoa?
Wygląda na to, że możesz tworzyć aplikacje na Androida na dowolnej platformie. Nie rozumiem, dlaczego to samo nie może dotyczyć iOS.
Odpowiedzi:
Mac OS X może być uruchamiany tylko na podstawie umowy na sprzęcie Apple. iOS wymaga frameworka Cocoa i dostępu do komputera Mac w celu podpisania pęku kluczy. Chociaż możesz używać Objective-C w systemie Linux przy użyciu bibliotek OpenStep, nie możesz wypychać tworzonych aplikacji do iOS z powodu braku odpowiednich bibliotek interfejsu API Cocoa i możesz przesyłać do urządzenia z uszkodzonym jailem bez pęku kluczy z pełnym programistą konto, aby sprzedać tę aplikację lub nawet pobrać ją publicznie, postępujesz zgodnie z zasadami Apple.
źródło
Nie ma żadnego szczególnego powodu technicznego, ale narzędzia dla programistów, które Apple udostępnia tylko na komputerach Mac, i nie widzę, żeby się spieszyły, aby to zmienić.
Jeśli chodzi o narzędzia deweloperskie innych firm, Apple bardzo ich nie lubi, a biorąc pod uwagę absolutną władzę weta Apple nad tym, co dostaje się w App Store, nie jest dobrym pomysłem inwestowanie znacznego czasu na tworzenie i korzystanie z nich.
(Jedno z narzędzi programistycznych - Symulator iOS - jest bardzo mocno związane z MacOS X z ważnych powodów technicznych. AFAIK to tak naprawdę cienkie opakowanie między iOS i bardzo podobnymi interfejsami API MacOS X, co byłoby nieskończenie trudniejsze w innym systemie operacyjnym Musiałbyś zacząć od nowa od zera i prawdopodobnie skończyć z czymś tak wolnym od psów i okropnym jak emulator Androida)
źródło
To zależy od tego, co rozumiesz przez „powód techniczny”
Ściśle mówiąc, nie sądzę, aby istniał techniczny powód, dla którego nie można było opracować aplikacji na iOS w systemie Linux. Wymagałoby to jakiegoś podmiotu, czy to Apple, czy grupy przedsiębiorczych / utalentowanych hakerów, aby stworzyć dla niego zestaw narzędzi (kompilatory, może IDE, coś, co można uzyskać przez telefon).
Więc jeśli z „technicznego powodu” masz na myśli „coś specjalnego w Macintoshu, co jest niemożliwe i nie mogłoby istnieć na innej platformie”, to nie, nie sądzę, żeby tak było. Na przykład Macintosh nie wymaga specjalnego układu.
Jeśli z „technicznego powodu” masz na myśli „coś, co uniemożliwia mi to, żebym mógł to zrobić dzisiaj”, to tak, cały podpisany bit kodu nie istnieje w systemie Linux i jeśli Apple go nie przeniesie, to jest to gra w piłkę.
źródło
Myślę, że należy powiedzieć, że możesz tworzyć dla iOS na innych platformach, po prostu nie możesz tworzyć na nich końcowych aplikacji .
W zaakceptowanej odpowiedzi wyjaśniono, dlaczego nie można budować poza systemem OS X, ale istnieje wiele narzędzi programistycznych, które pozwalają pisać aplikacje na iOS na innych platformach.
Niektóre z używanych przeze mnie narzędzi programistycznych, które to umożliwiają:
Qt Framework (C ++ i Qml): aplikacje można pisać w systemie Windows lub Linux, a następnie aplikacja iOS jest budowana za pomocą XCode na OS X.
Unity3D (C #, UnityScript i Boo): Możesz programować w systemie Windows i budować system iOS na dowolnej platformie, na której generujesz projekt XCode. Pozwala to również na dalszą integrację z innym kodem Objective-C.
Xamarin (C #): Możesz programować w systemie Windows (i uważam, że Linux) i używać komputera z systemem OS X jako hosta kompilacji.
Kivy (Python): generuje również projekty XCode.
I możesz znaleźć wiele innych takich projektów, zwłaszcza gdy zaczniesz patrzeć na hybrydowe i mobilne frameworki aplikacji internetowych, takie jak Appcelerator.
źródło
Nie ma żadnego technicznego powodu, abyś nie był w stanie tworzyć aplikacji iOS na Linuksie. W rzeczywistości dzieje się to już w systemie Windows w Delphi XE. Tam możesz całkowicie tworzyć aplikacje na iOS w systemie Windows. Na końcu jedyne, czego potrzeba, to podpisanie aplikacji. Można to zrobić tylko na komputerze Mac.
źródło
Istnieje techniczny powód, dla którego Xcode nie pozwoli na tworzenie aplikacji na iOS na innych systemach.
iOS jest pod wieloma względami podobny do OS X. Wiele frameworków jest identycznych lub bardzo blisko. Symulator iOS wykorzystuje to do zapewnienia bardzo szybkiego środowiska testowego. Kiedy Xcode kompiluje aplikację do uruchomienia w symulatorze, tworzy pliki binarne x86, które łączą się z frameworkami, które przeważnie działają na frameworkach OS X. W efekcie powstaje kompilacja debugowania, która działa natywnie na komputerze Mac, która ma doskonałą wydajność.
Jeśli spojrzysz na Androida, tworzy niezależne od platformy aplikacje, które są następnie emulowane w jednym emulatorze Androida. Spowoduje to uruchomienie maszyny wirtualnej, która uruchamia cały stos Androida do debugowania. Istnieją emulatory, które są szybsze niż inne, ale wszystkie z nich są znacznie wolniejsze niż symulator. Zaletą jest to, że są one wieloplatformowe.
Aby Apple zezwalało na budowanie aplikacji na iOS na innych systemach, musiałyby albo przenieść frameworki do tych systemów operacyjnych, aby napisać symulator, albo musiałyby zbudować emulator. Każda z nich byłaby kawałkiem pracy, która zabierałaby trochę czasu na tworzenie nowych funkcji.
źródło
Chociaż nie można podpisywać aplikacji dla systemu iOS w systemie Linux, a tym samym rozpowszechniać je za pomocą przyjętych metod, można opracowywać (z tymi samymi interfejsami API) w systemie Linux za pomocą systemu Theos. Jest to zestaw narzędzi używany przez społeczność jailbreak do opracowywania aplikacji na iOS i jest on wieloplatformowy. Jeśli twoje urządzenie z iOS jest zepsute, wierzę, że będziesz w stanie wypchnąć skompilowaną aplikację na urządzenie za pośrednictwem libimobiledevice, ale ktoś może mnie poprawić, jeśli się mylę.
Więcej informacji: http://iphonedevwiki.net/index.php/Theos
Planuję wypróbować to w ciągu następnego dnia i dostarczę aktualizacje.
źródło