Zaczynasz tworzenie aplikacji na iPhone'a w systemie Linux? [Zamknięte]


529

Słyszałem, że musisz mieć komputer Mac, jeśli chcesz tworzyć aplikacje na iPhone'a. Czy to prawda?

Czy można tworzyć aplikacje na iPhone'a za pomocą Linuksa? Jeśli tak, czego potrzebuję i skąd pobrać niezbędne narzędzia?



2
czy ktoś może edytować ten s / Linux / unix, aby go uogólnić?
Good Person

5
@GoodPerson Następnie zacierasz granicę między OS X a innymi systemami operacyjnymi, o to właśnie chodzi w tym pytaniu.
Pan Lister,

2
jeden z najważniejszych fragmentów informacji, jakie kiedykolwiek znalazłem. absolutnie w temacie, powiedziałbym ...
Marco Faustinelli

Odpowiedzi:


303

Aby uzyskać odmienną odpowiedź, używam OS X i Xcode na maszynie zwirtualizowanej (VMware) w systemie Linux. Procesor to Core2Quad (Q8800) i jest on bardzo szybki. Znalazłem online gotową maszynę wirtualną (pozostawię to Tobie do znalezienia) Programowanie Xcode / iPhone działa idealnie, podobnie jak debugowanie przez USB do samego telefonu.

Właściwie bardzo mnie to zaskoczyło - ale nie miałem żadnych problemów.


11
Czy zatem, korzystając z tego podejścia, możesz podpisać i rozpowszechnić go w iTunes?
Eldelshell,

43
Tak - żadnych problemów. Używasz XCode, podpisywanie działa dobrze, teraz mam w sklepie aplikację produkcyjną przesłaną z maszyny wirtualnej. Nie wymienię tego z oczywistych powodów.
Chaos

18
@Chaos: Czy możesz zamieścić linki do tego, czego dokładnie użyłeś, aby uruchomić instalację?
Glycan

4
Czy można zaufać fabrycznie zbudowanej maszynie wirtualnej? Mam na myśli oprogramowanie wbudowane winowajców, backdoory ...
DummyBeginner

2
Ok. Moja opinia na ten temat. Po opracowaniu aplikacji możesz skorzystać z tej usługi, aby opublikować macincloud.com
Fabrizio Bertoglio,

75

Odpowiedź na to pytanie naprawdę zależy od tego, czy chcesz tworzyć aplikacje, które są następnie dystrybuowane za pośrednictwem sklepu iPhone. Jeśli tego nie zrobisz i nie masz nic przeciwko tworzeniu dla tłumu iPhone'ów z „jailbreak” - możliwe jest rozwijanie z Linuksa.

Zajrzyj na stronę tego faceta, by znaleźć obszerny (choć trochę skomplikowany) przewodnik na temat tego, co robić:

http://www.saurik.com/id/4


26

Jak dotąd wydaje się to prawdą. Jedyny zestaw SDK dostępny w Apple dotyczy tylko środowiska MacOS. Byłem tym zdenerwowany, ale teraz zastanawiam się nad kupnem komputera Mac, tylko po to, aby opracować iPhone'a. Naprawdę nie podoba mi się to, co robią i mam nadzieję, że dobry zestaw SDK wyjdzie dla innych środowisk, takich jak Linux i Windows.

Przeszkody dotyczące zestawu SDK:

IPhone SDK i darmowe oprogramowanie: nie pasują

Niedawno firma Apple wydała zestaw programistyczny (SDK) dla iPhone'a, ale jeśli masz nadzieję na przeniesienie lub opracowanie oryginalnego oprogramowania open source, wiadomości nie są dobre. Warunki podpisywania kodu i nieujawniania sprawiają, że wolne oprogramowanie jest zabronione.

Sam zestaw SDK można pobrać bezpłatnie, za pomocą którego można pisać programy i uruchamiać je na symulatorze oprogramowania. Aby jednak faktycznie wydać napisane przez Ciebie oprogramowanie, musisz zarejestrować się w Programie dla deweloperów iPhone'a - krok inny niż pobieranie pakietu SDK i taki, który wymaga zgody Apple.

Myślę, że to raczej elitarne, by sądzić, że tylko użytkownicy makr są wystarczająco dobrzy, aby pisać programy na swój telefon, a fakt, że musisz kupić licencję za 100 USD, jeśli chcesz opublikować swoje rzeczy, naprawdę utrudnia programistom hobbystycznym. Chociaż jeśli to właśnie musisz zrobić, planuję skakać przez ich obręcze; Naprawdę chciałbym opracować kilka rzeczy na moim iPhonie.


9
Jak już powiedziano wcześniej, nie sądzę, że jest to wina elitarności. XCode i wszystkie pozostałe narzędzia programistyczne (z wyjątkiem elementów niskiego poziomu, takich jak GCC) są napisane w Cocoa, podobnie jak wszystkie frameworki iPhone'a. Najpierw musieliby to wszystko przenieść na inne systemy operacyjne. To niemałe zadanie.
Brad Larson

24
Daj mi znać, kiedy Microsoft wyda Visual Studio dla systemów Linux i Mac ...
Stephen Darlington

12
Daj mi znać, kiedy Microsoft wyda Visual Studio, Access, Frontpage, XNA, DirectX, Office (ze wszystkimi funkcjami), Movie Maker, Visio, IIS lub Exchange for Mac / Linux.
Brock Woolf,

97
Daj mi znać, kiedy Microsoft przeciwstawi się EULA, aby uruchomić Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS lub Exchange w (Dar) Wine.
lfaraone

5
@MarceloMason Rodzaj. To Visual Studio Code , a nie pełne IDE.
Stephen Darlington,

20

Był kiedyś projekt poświęcony rozwiązaniu tej wady: iphone-dev

Celem projektu iPhone-dev jest stworzenie bezpłatnego, przenośnego, wysokiej jakości zestawu narzędzi, który umożliwi rozwój Apple iPhone i innych urządzeń wbudowanych opartych na platformie ARM / Darwin.


4
Wygląda na to, że projekt nie jest regularnie rozwijany ani konserwowany ze strony (np. Wpisy na Wiki dotyczące budowy narzędzia / przenośności pochodzą z lutego 2010).
ely

4
@Pan. F, rzeczywiście jest martwy.
Johan Boulé

13

Jeśli chodzi o alternatywny łańcuch narzędzi, strona Saurika jest przydatna, ale w przypadku najnowszego oprogramowania układowego wskazuje na zbudowanie samego iPhone'a i nie wskazuje, że konieczne może być skopiowanie niezbędnych plików oprogramowania iPhone do środowiska Linux. Nie jest to niemożliwe, ale wymaga tylko dodatkowej pracy, szczególnie w celu podpisania kodu (istnieją również otwarte alternatywne rozwiązania).

Zobacz także inne przewodniki (dla tego samego łańcucha narzędzi), które podchodzą do niego bardziej metodycznie.

Sugeruję, aby nadal wykonać ostateczną kompilację, podpisywanie kodu i pakowanie w XCode (co może oznaczać pożyczanie czyjegoś Maca) na wypadek, gdybyś miał problemy z przesłaniem aplikacji do Apple. Korzystanie z alternatywnego łańcucha narzędzi otwiera (przynajmniej na Macu) możliwość użycia innych IDE innych niż XCode do opracowania aplikacji i ponownego skorzystania z XCode do wdrożenia i testowania z symulatorem.

Oczywiście, jeśli podpisywanie kodu / generowanie certyfikatu działa z wiersza poleceń spoza XCode, możesz zainstalować certyfikat na swoim iPhonie i tam przetestować (instalując aplikację przez iTunes z twoim certyfikatem).


7

Jedynym znanym mi sposobem programowania w Linuksie dla iPhone'a jest instalacja Vmware i praca nad uruchomieniem OS X na maszynie wirtualnej. Biorąc to pod uwagę, istnieją przy tym pewne „prawne” obawy. Mówi się, że OS X Server można zwirtualizować, ale o ile nie wiem o rozwoju.

Jeśli naprawdę mówisz poważnie, to właśnie to zbadam.

Powodzenia.


4
Wypróbowałem opcję VMWare i przynajmniej na moim sprzęcie (T5200 Core2, 2M RAM), jest to niezwykle wolne. Mój przyjaciel miał podobne doświadczenie.
Parand

3
Ja też. Powoli, powoli, powoli. Nawet nie chcesz próbować.
Nosredna

5
@Parand Oczywiście będzie wolniej na 2M pamięci RAM, jestem zaskoczony, że nawet buty!
Jeshurun

2
Możesz wypróbować VirtualBox zamiast vmware. Moim zdaniem VMWare jest zbyt rozdęty.
Harindaka

5

Możesz użyć Tersus (open source), co pozwala wyeksportować aplikację jako projekt Xcode.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK. Dlatego nie będzie w stanie spełnić i podpisać natywnej aplikacji na iOS
MarSoft,

5

Możesz być w stanie napisać kod na komputerze z systemem Linux, który ostatecznie znajdzie się na iPhonie lub iPadzie, ale ostatecznie potrzebujesz komputera Mac, aby przetestować lub wdrożyć kod na iPhonie lub przesłać go do App Store. W końcu potrzebujesz komputera Mac, więc równie dobrze możesz wykonać pracę na komputerze Mac, korzystając ze wszystkich narzędzi, które zapewnia Apple. Istnieją alternatywy dla Xcode i Objective-C, takie jak Monotouch - ale wykorzystują one również narzędzia Apple.

Możesz przy odrobinie pracy uruchomić system OS X na maszynie wirtualnej w systemie Linux. Należy jednak zauważyć, że spowoduje to złamanie umowy licencyjnej OSX, nawet jeśli kupisz kopię OSX - ponieważ jest ona licencjonowana tylko do uruchamiania na sprzęcie Apple.

Przykro nam, że przekazuję tę wiadomość - ekosystem wokół iPhone'a / iPada jest bardzo ściśle kontrolowany.

EDYCJA: Jednym z głównych wyjątków jest pisanie aplikacji internetowej na iPhone'a. Istnieje kilka doskonałych aplikacji internetowych na iPhone'a, które są prawie tak dobre, jak wrażenia użytkownika, jak aplikacja natywna. Zinterpretowałem jednak twoje pytanie dotyczące tworzenia aplikacji natywnych. Aplikacje internetowe, chociaż użytkownik może utworzyć ikonę do ich uruchomienia - nadal są obywatelami drugiej kategorii.


4
Chociaż dozwolone jest uruchamianie Lion w wirtualizacji, jeśli używasz Linuksa na komputerze Mac.
Cajunluke

4

Odniosłem sukces w budowaniu aplikacji dla systemu iOS na systemie Linux przy użyciu narzędzia clang systemu iOS firmy cjacker . Zasadniczo składa się z wcześniejszych narzędzi clang i lvvm z twojej dystrybucji Linuksa, portu linuksowego linkera Apple'a i kilku dodatkowych narzędzi, które upraszczają proces kompilacji (takich jak konwertowanie projektów xcode do formatu Makefile).

Instalacja zajmuje kilka kroków, ale jesteś programistą, więc przywykniesz do tego. Opublikowałem aktualne howto dla Debiana 7 (Wheezy) online:

http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7

W przeciwnym razie chcesz przejść do instrukcji ogólnych, które są nieco starsze:

http://code.google.com/p/ios-toolchain-based-on-clang-for-linux/wiki/HowTo_en

Powodzenia.


2

Istnieje framework o nazwie Rhodes .

Koncepcja opiera się na Ruby on Rails, a Ty tworzysz swoją aplikację mobilną w Ruby i HTML, a także możesz pisać kod w środowisku Linux. Następnie możesz utworzyć konto w Rhohub , do którego dodajesz kod (za pośrednictwem GitHub ), i pozwala on na kompilowanie go dla iPhone'a, Blackberry, Androida, Windows Mobile i Symbian, wszystkie z tym samym kodem. Nie musisz kodować w Objective-C na iPhone'a, ani Java na Androida, itd. Konwertuje to za Ciebie. Wszystko, co musisz zrobić, to przestrzegać zasad tworzenia aplikacji na iPhone'a (lub telefonów, dla których chcesz opracować), aby można je było zaakceptować w iTunes (lub na równoważnym rynku).

Umożliwi to również dodanie aplikacji do iTunes.

Nie znalazłem jednak żadnych emulatorów, co oznacza, że ​​aby przetestować aplikację, musisz zainstalować ją na iPhonie, co jest misją.

Korzystam z tej opcji, ponieważ chcę tworzyć aplikacje na wszystkie telefony i już używam Ruby on Rails. Jeśli chcesz tylko stworzyć aplikację na iPhone'a, zainwestuj w komputer Mac.

Mam nadzieję że to pomoże.


1

Masz rację, telefony z wyłączonym więzieniem są ograniczone do sklepu Apple App Store, a Apple „ma prawo” egzekwować dowolną zasadę, jest to całkowicie niewolne terytorium. Jednak podczas opracowywania nie trzeba w ogóle mieć do czynienia z Apple. Możesz użyć np. Rsync do przesłania kodu do urządzenia i przetestowania go.


Czy ten projekt rozwiązuje problem, który przedstawił Stephen Cox? „Nigdy nie uzyskasz zatwierdzenia aplikacji przez Apple, jeśli nie zostanie ona opracowana przy użyciu Xcode. Nigdy. A jeśli włamiesz się do SDK, aby rozwijać się w systemie Linux, a Apple się o tym dowie” Dzięki
podczas gdy prawdziwe

libmobiledevice faktycznie ma przyzwoity interfejs do instalowania aplikacji bez potrzeby używania rsync / ssh na iDevice.
Dwight Spencer,

1

W pewnym stopniu tak, jest to możliwe. Możesz wpisać kod celu C i skonfigurować swoje projekty. Możesz nawet przetestować części C i C ++ swojego kodu za pomocą gcc.

Czego nie możesz zrobić:

  • Skonfiguruj interfejs za pomocą Konstruktora interfejsów, ponieważ jest on przeznaczony tylko dla komputerów Mac. (Nie wymagane, ale zalecane.)
  • Skompiluj kod, który korzysta z klas Cocoa firmy Apple - nie istnieją one w systemie Linux.
  • Testuj kod w symulatorze - nie ma takiego dla Linuksa.
  • Skompiluj kod dla prawdziwych urządzeń lub App Store - wszystko to wymaga narzędzi, które Apple udostępnia tylko dla OS X.

kiedy mówisz, że klasy nie istnieją, co masz na myśli? Potrzebuję tylko nagłówków, Apple i tak je dla mnie połączy. Tak działa przesyłanie aplikacji, AFAIK.
Janus Troelsen

1

Musisz zdobyć Maca. Dostępnych jest kilka łańcuchów narzędzi (takich jak Win-Chain), które pozwalają pisać i budować aplikacje i Phone na Windowsie. Istnieje kilka powiązanych samouczków dotyczących budowania kodu Celu C w systemie Windows. Ale jest problem, dlatego opracowane w ten sposób aplikacje będą działać tylko na Jail broken i Telefony.

Widzieliśmy kilka hacków, aby sobie z tym poradzić i przejść do App Store, ale ponieważ Apple ciągle aktualizuje zestawy SDK, łańcuchy narzędzi wymagają regularnych aktualizacji. Cały czas trzeba sobie z tym poradzić. Jeśli chcesz mieć gotową aplikację, możesz również skorzystać z pomocy Arcappa, która uruchamia aplikacje w rozsądnej cenie. tworzenie aplikacji na iPhone'a



0

Polecam uzyskanie Maca, ponieważ symulator iOS jest niesamowity do testowania na wczesnych etapach aplikacji. Ale wiem o małej firmie, z którą współpracujemy, która rozwija się przy użyciu Unity, więc nie potrzebują mnóstwa komputerów Mac. W ten sposób potrzebują tylko jednego komputera Mac do biura, a to tylko do skompilowania ostatecznej wersji. Oznacza to również, że działa na Androidzie, ale tak naprawdę zależy od tego, co budujesz, ponieważ jest to silnik gier. Możesz zajrzeć do aplikacji internetowych przy użyciu platform takich jak Sencha Touch Mobile

Jedność: http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/


-5

Jeśli cenisz swój czas, kup komputer Mac! Nie wiem wystarczająco dużo o opcjach programistycznych dla Linuksa, aby zaoferować realne rozwiązanie, ale wydaje się, że proponowane metody wymagają całkiem niezłej pracy. Jeśli planujesz poważnie pisać i sprzedawać aplikacje na iPhone'a, myślę, że z łatwością możesz odzyskać koszty komputera Mac Mini lub Macbook. :-)


4
Teraz, gdy istnieje około 50 000 aplikacji, niekoniecznie łatwo jest zarobić dużo. Być może dni sałatki już minęły.
Nosredna

@Nosredna Ja lubię wierzyć, że dni sałatki znów tu są. Ale tak na poważnie, masz rację.
Wyatt8740,

Koleś, jeśli szukamy alternatywy, to dlatego, że kupienie nie jest dostępną opcją.
Roger Russel

-5

Nigdy nie uzyskasz zatwierdzenia aplikacji przez Apple, jeśli nie zostanie ona opracowana przy użyciu Xcode. Nigdy. A jeśli włamiesz się do SDK, aby rozwijać się w systemie Linux, a Apple się dowie, nie zdziw się, gdy zostaniesz obsłużony. Jestem członkiem programu dla programistów ADC i iPhone. Zaufaj, Apple poważnie podchodzi do tego.

Nie ryzykuj, kup Macbooka lub Maca mini (tak, mini może uruchomić Xcode - choć powoli - zwiększ pamięć RAM, jeśli korzystasz z mini). Ponadto, chociaż widziałem włamanie się OS X na VMware, nigdy nie widziałem nikogo, kto uruchomiłby Xcode na VM. Więc powodzenia. I sprawdziłbym EULA zanim przejdziesz przez kłopoty.

PS: Po przeczytaniu powyższego, tak, zgadzam się Jeśli włamiesz się do SDK i opracujesz w Linuksie, przynajmniej zrób ostateczne opakowanie na Macu. I prześlij go za pośrednictwem komputera Mac. Apple nie przebiega przez wiersz po wierszu, więc wątpię, żeby to złapali. Ale stary, to dużo jeśli i praca. Zabaw się jednak. :)


1
Nowe minis są odpowiednie do tego zadania. Sądzę, że kosztują około 600 USD i możesz używać dowolnej myszy, klawiatury i monitora. Skalibruj monitor! XCode wydaje się działać całkiem dobrze na moim nierozwiniętym mini.
Nosredna

7
Xcode działa dobrze na maszynie wirtualnej Mac OS X.
dave1010

2
Apple cały czas zatwierdza aplikacje Air SDK, zero interakcji z XCode. Możesz zrobić całą kompilację na systemie Linux / Windows.
j_mcnally
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.