Memulai pengembangan aplikasi iPhone di Linux? [Tutup]

529

Saya pernah mendengar bahwa Anda perlu mendapatkan Mac jika Anda ingin mengembangkan aplikasi iPhone. Apakah ini benar?

Apakah mungkin untuk mengembangkan aplikasi iPhone menggunakan Linux? Jika ya, apa yang saya butuhkan dan di mana saya mengunduh alat yang diperlukan?

javac
sumber
2
dapatkah seseorang mengedit s / Linux / unix ini untuk menggeneralisasikannya?
Orang Baik
5
@GoodPerson Kemudian Anda akan mengaburkan batas antara OS X dan OS lainnya, yang menjadi tujuan pertanyaan ini.
Tn. Lister
2
salah satu bit informasi paling penting yang pernah saya temukan. benar-benar dalam topik, saya akan mengatakan ...
Marco Faustinelli
Tutorial
sondra.kinsey

Jawaban:

303

Untuk memberikan respons yang berbeda, saya menjalankan OS X dan Xcode pada mesin virtualisasi (VMware) di Linux. CPU adalah Core2Quad (Q8800), dan itu sangat cepat. Saya menemukan VM prebuilt online (saya akan menyerahkan kepada Anda untuk menemukan) pengembangan Xcode / iPhone berfungsi dengan baik, seperti halnya debugging melalui USB ke telepon itu sendiri.

Ini benar-benar mengejutkan saya - tapi saya tidak punya masalah sama sekali.

Kekacauan
sumber
11
Jadi, menggunakan pendekatan Anda, dapatkah Anda masuk dan mendistribusikannya di iTunes?
Eldelshell
43
Yap - tidak ada masalah. Anda menggunakan XCode, penandatanganan berfungsi dengan baik, saya sekarang punya aplikasi produksi di toko, diajukan dari VM. Saya tidak akan menyebutkannya karena alasan yang jelas.
Chaos
18
@Chaos: Bisakah Anda memposting tautan ke apa yang sebenarnya Anda gunakan untuk menjalankan pengaturan Anda?
Glycan
4
Bisakah VM prebuilt dipercaya? Maksudku softwares pelanggar tertanam, backdoors ...
DummyBeginner
2
Baik. Pendapat saya tentang ini. Setelah aplikasi dikembangkan, Anda dapat menggunakan layanan ini untuk menerbitkan macincloud.com
Fabrizio Bertoglio
75

Jawabannya sangat tergantung pada apakah Anda ingin mengembangkan aplikasi yang kemudian didistribusikan melalui toko iPhone. Jika Anda tidak, dan tidak keberatan mengembangkan untuk kerumunan iPhone "jailbroken" - maka mungkin untuk mengembangkan dari Linux.

Periksa halaman bab ini untuk panduan komprehensif (jika sedikit rumit) tentang apa yang harus dilakukan:

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

GodEater
sumber
26

Tampaknya benar sejauh ini. Satu-satunya SDK yang tersedia dari Apple hanya menargetkan lingkungan MacOS. Saya kesal tentang itu, tapi saya ingin membeli mac sekarang, hanya untuk melakukan pengembangan iPhone. Saya benar-benar tidak suka apa yang mereka lakukan, dan saya berharap SDK yang bagus keluar untuk lingkungan lain, seperti Linux dan Windows.

Hambatan tentang SDK:

IPhone SDK dan perangkat lunak bebas: tidak cocok

Apple baru-baru ini merilis perangkat pengembangan perangkat lunak (SDK) untuk iPhone, tetapi jika Anda berharap untuk port atau mengembangkan perangkat lunak open source asli dengan itu, berita itu tidak baik. Penandatanganan kode dan ketentuan kerahasiaan membuat perangkat lunak bebas tidak dapat digunakan.

SDK itu sendiri adalah unduhan gratis, yang dengannya Anda dapat menulis program dan menjalankannya pada simulator perangkat lunak. Tetapi untuk benar-benar merilis perangkat lunak yang Anda tulis, Anda harus mendaftar di Program Pengembang iPhone - langkah terpisah dari mengunduh SDK, dan yang membutuhkan persetujuan Apple.

Saya pikir itu agak elitis bagi mereka untuk berpikir hanya pengguna makro yang cukup baik untuk menulis program untuk ponsel mereka, dan fakta bahwa Anda perlu membeli lisensi $ 100 jika Anda ingin mempublikasikan barang-barang Anda, benar-benar membuatnya lebih sulit bagi programmer penghobi. Padahal, jika itu yang perlu Anda lakukan, saya berencana untuk melompat melalui lingkaran mereka; Saya benar-benar ingin mendapatkan beberapa hal yang dikembangkan di iPhone saya.

stephenbayer
sumber
9
Seperti yang telah dikatakan sebelumnya, saya pikir ini bukan kesalahan elitisme. XCode dan semua alat pengembangan lainnya (dengan pengecualian item tingkat rendah seperti GCC) ditulis dalam Cocoa, seperti halnya semua kerangka kerja iPhone. Mereka harus mem-porting semua ini ke OS lain terlebih dahulu. Itu bukan tugas kecil.
Brad Larson
24
Beri tahu saya ketika Microsoft merilis Visual Studio untuk Linux dan Mac ...
Stephen Darlington
12
Beritahu saya ketika Microsoft merilis Visual Studio, Access, Frontpage, XNA, DirectX, Office (dengan semua fitur), Movie Maker, Visio, IIS atau Exchange for Mac / Linux.
Brock Woolf
97
Beritahu saya ketika Microsoft membuatnya menentang EULA untuk menjalankan Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS atau Exchange dalam (Dar) Wine.
lfaraone
5
@MarceloMason Jenis Ini Visual Studio Code , bukan IDE lengkap.
Stephen Darlington
20

Ada yang digunakan untuk menjadi proyek yang didedikasikan untuk memecahkan cacat ini: iphone-dev

Tujuan dari proyek iphone-dev adalah untuk menciptakan toolchain gratis, portabel, berkualitas tinggi untuk memungkinkan pengembangan untuk iPhone Apple dan perangkat tertanam lainnya berdasarkan pada platform ARM / Darwin.

Johan Boulé
sumber
4
Proyek ini tampaknya tidak mengalami pengembangan atau pemeliharaan rutin dari situs tersebut (misalnya entri Wiki untuk membangun alat / portabilitas berasal dari Februari 2010).
Ely
4
@Pak. F, Memang sudah mati.
Johan Boulé
13

Mengenai rantai alat alternatif, situs Saurik berguna tetapi untuk pengembangan firmware terbaru, ia menunjukkan pembangunan di iPhone itu sendiri dan tetap menunjukkan bahwa Anda mungkin perlu menyalin file firmware iPhone yang diperlukan ke lingkungan Linux Anda. Bukan tidak mungkin, tetapi hanya membutuhkan pekerjaan tambahan, terutama untuk menandatangani kode (ada solusi alternatif terbuka di luar sana juga).

Juga, lihat panduan lain (untuk rantai alat yang sama) yang mendekatinya secara lebih sistematis.

Saya menyarankan untuk tetap melakukan pembuatan akhir dan penandatanganan kode dan pengemasan dalam XCode (yang dapat berarti meminjam Mac seseorang) jika Anda mengalami masalah ketika mengirimkan aplikasi ke Apple. Menggunakan rantai alat alternatif membuka (setidaknya pada Mac) kemungkinan menggunakan IDE lain selain XCode untuk mengembangkan aplikasi dan kembali menggunakan XCode untuk penyebaran dan pengujian dengan simulator.

Tentu saja jika Anda mendapatkan penandatanganan kode / pembuatan sertifikat bekerja dari baris perintah di luar XCode maka Anda dapat menginstal sertifikat pada iPhone Anda yang sebenarnya dan menguji di sana (menginstal aplikasi melalui iTunes dengan sertifikat Anda).

dljava
sumber
7

Satu-satunya cara saya tahu melakukan pengembangan di Linux untuk iPhone adalah menginstal Vmware dan bekerja untuk menjalankan OS X di mesin virtual. Dengan mengatakan bahwa ada beberapa kekhawatiran "hukum" dalam melakukan itu. Dilaporkan bahwa OS X Server dapat divirtualisasi tetapi sejauh cerita pengembangan tentang itu saya tidak tahu.

Jika Anda benar-benar serius, itulah yang akan saya selidiki.

Semoga berhasil.

Keith Elder
sumber
4
Saya sudah mencoba opsi VMWare dan setidaknya pada perangkat keras saya (T5200 Core2, ram 2M), ini sangat lambat. Teman saya punya pengalaman serupa.
Parand
3
Saya juga. Lambat, lambat, lambat. Anda bahkan tidak ingin mencoba.
Nosredna
5
@Parand Tentu saja akan lambat pada ram 2M, saya terkejut bahkan boot!
Jeshurun
2
Anda mungkin ingin mencoba VirtualBox daripada vmware. VMWare terlalu kembung menurut saya.
Harindaka
5

Anda dapat menggunakan Tersus (sumber terbuka), dan itu memungkinkan Anda mengekspor aplikasi sebagai proyek Xcode.

Ofer Brandes
sumber
Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Jadi tidak akan bisa mengeluh & menandatangani aplikasi iOS asli
MarSoft
5

Anda mungkin dapat menulis kode pada kotak Linux yang pada akhirnya akan menemukan dirinya sendiri di iPhone atau iPad, tetapi pada akhirnya Anda akan membutuhkan Mac untuk menguji atau menyebarkan kode ke iPhone atau mengirimkannya ke App store. Jadi pada akhirnya Anda membutuhkan Mac, jadi sebaiknya Anda juga mengerjakan Mac, dengan semua alat yang disediakan Apple. Ada alternatif untuk Xcode & Objective-C, seperti Monotouch - tetapi ini juga menggunakan alat Apple.

Anda dapat dengan beberapa pekerjaan menjalankan OS X dalam VM di Linux. Namun saya harus menunjukkan bahwa ini akan melanggar perjanjian lisensi OSX, bahkan jika Anda membeli salinan OSX - karena hanya berlisensi untuk dijalankan pada perangkat keras Apple.

Maaf memberi Anda kabar ini - ekosistem di sekitar iPhone / iPad dikontrol dengan sangat ketat.

EDIT: Satu pengecualian utama untuk ini adalah menulis aplikasi web untuk iPhone. Ada beberapa aplikasi web luar biasa untuk iPhone yang hampir sebagus pengalaman pengguna sebagai aplikasi asli. Namun saya menafsirkan pertanyaan Anda tentang pengembangan aplikasi asli. Aplikasi web, meskipun pengguna dapat membuat ikon untuk meluncurkannya - masih merupakan warga negara 'kelas dua'.

iandotkelly
sumber
4
Meskipun mungkin diizinkan untuk menjalankan Lion dalam virtualisasi jika Anda menjalankan Linux pada Mac.
Cajunluke
4

Saya telah berhasil membangun aplikasi iOS di linux menggunakan toolchain dentang iOS oleh cjacker . Pada dasarnya itu terdiri dari alat hulu clang dan llvm dari distro linux Anda, port linux dari linker apel dan beberapa alat tambahan untuk membantu menyederhanakan proses pembangunan (seperti mengkonversi proyek xcode ke format Makefile).

Memang perlu beberapa langkah untuk menginstal, tetapi Anda adalah seorang pengembang perangkat lunak sehingga Anda akan terbiasa dengan hal itu. Saya memposting howto terkini untuk Debian 7 (Wheezy) online:

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

Kalau tidak, Anda ingin pergi dengan instruksi umum yang sedikit lebih tua:

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

Semoga berhasil.

Roger Keays
sumber
2

Ada kerangka kerja yang disebut Rhodes .

Konsep ini didasarkan pada Ruby on Rails dan Anda mengembangkan aplikasi seluler Anda dalam Ruby dan HTML, dan Anda dapat menulis kode di lingkungan Linux. Anda kemudian dapat membuat akun di Rhohub , tempat Anda menambahkan kode (melalui GitHub ), dan memungkinkan Anda untuk mengompilasinya untuk iPhone, Blackberry, Android, Windows Mobile dan Symbian, semuanya dengan kode yang sama. Anda tidak perlu kode di Objective-C untuk iPhone, atau Java untuk Android, dll. Itu konversi untuk Anda. Yang perlu Anda lakukan adalah tetap berpegang pada Aturan untuk membuat aplikasi iPhone (atau telepon yang ingin Anda kembangkan) sehingga dapat diterima di iTunes (atau pasar yang setara).

Ini akan memungkinkan Anda untuk menambahkan aplikasi ke iTunes juga.

Namun, saya belum menemukan emulator, yang artinya untuk menguji aplikasi Anda, Anda harus meletakkannya di iPhone, yang merupakan sebuah misi.

Saya menggunakan opsi ini karena saya ingin membuat aplikasi untuk semua telepon dan saya sudah menggunakan Ruby on Rails. Jika Anda hanya ingin membuat aplikasi untuk iPhone, berinvestasi di Mac.

Semoga ini membantu.

Theo Scholiadis
sumber
1

Anda benar ponsel yang tidak dipenjara terbatas pada App Store Apple dan Apple "memiliki hak" untuk menegakkan aturan apa pun, itu sepenuhnya wilayah yang tidak bebas. Namun saat berkembang, seseorang tidak harus berurusan dengan Apple sama sekali. Anda dapat menggunakan misalnya rsync untuk mengunggah kode ke perangkat dan mengujinya.

Johan Boulé
sumber
Apakah proyek ini mengatasi masalah yang disajikan Stephen Cox? "Anda tidak akan pernah mendapatkan aplikasi Anda disetujui oleh Apple jika tidak dikembangkan menggunakan Xcode. Tidak pernah. Dan jika Anda meretas SDK untuk dikembangkan di Linux dan Apple mengetahuinya" Terima kasih
sementara benar
libmobiledevice sebenarnya memiliki antarmuka yang layak untuk menginstal aplikasi tanpa perlu rsync / ssh pada iDevice.
Dwight Spencer
1

Sampai batas tertentu, ya, itu mungkin. Anda dapat mengetik kode Objective-C dan mengatur proyek Anda. Anda bahkan dapat menguji bagian C dan C ++ dari kode Anda dengan gcc.

Apa yang tidak dapat Anda lakukan:

  • Gunakan Interface Builder untuk mengatur antarmuka Anda, karena hanya Mac. (Tidak wajib, tetapi disarankan.)
  • Kompilasi kode yang menggunakan kelas Cocoa Apple - mereka tidak ada di Linux.
  • Kode uji di Simulator - tidak ada satu untuk Linux.
  • Kompilasi kode untuk perangkat nyata atau untuk App Store - semua ini membutuhkan alat yang hanya disediakan oleh Apple untuk OS X.
Cajunluke
sumber
ketika Anda mengatakan bahwa kelas tidak ada, apa maksud Anda? Saya hanya perlu tajuk, Apple akan menautkannya untuk saya. Begitulah cara kerja pengiriman aplikasi, AFAIK.
Janus Troelsen
1

Anda perlu mendapatkan mac untuk itu. Ada beberapa rantai alat yang tersedia (seperti win-chain) yang sebenarnya memungkinkan Anda menulis dan membangun aplikasi i Phone di windows. Ada beberapa tutorial terkait untuk membangun kode Objective C pada Windows. Tetapi ada masalah, aplikasi yang dikembangkan akan bekerja hanya di Telepon rusak di Penjara.

Kami telah melihat beberapa peretasan untuk mengatasi itu dan membuatnya ke App Store, tetapi karena Apple terus memperbarui SDK, rantai alat memerlukan pembaruan rutin. Ini merepotkan untuk memperbaikinya setiap saat. Jika Anda ingin mendapatkan aplikasi siap, Anda juga dapat mengambil bantuan dari arcapps meluncurkan aplikasi dengan harga yang wajar. pengembangan aplikasi iphone

Isabella Jacob
sumber
1

Saya melakukan upaya untuk port cocos2d-iphone ke GNUstep sehingga Anda dapat Mengembangkan game berdasarkan cocos2d. Namun untuk penerbitan Anda memerlukan mac. cocos2d-GNUstep .

pengguna602592
sumber
0

Saya akan merekomendasikan mendapatkan mac karena simulator ios luar biasa untuk pengujian pada tahap awal suatu aplikasi. Tapi saya tahu perusahaan kecil tempat kami bekerja yang mengembangkan menggunakan Unity sehingga mereka tidak membutuhkan banyak mac. Dengan begitu mereka hanya membutuhkan satu mac untuk kantor dan itu hanya untuk mengkompilasi build terakhir. Ini juga berarti ini berfungsi di Android tetapi sangat tergantung pada apa bangunan Anda karena itu adalah mesin permainan. Anda mungkin ingin melihat ke dalam aplikasi web menggunakan kerangka kerja seperti Sencha Touch Mobile

Unity: http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/

dciso
sumber
-5

Jika Anda menghargai waktu Anda, belilah Mac! Saya tidak cukup tahu tentang opsi pengembangan Linux untuk menawarkan solusi yang layak, tetapi tampaknya metode yang diusulkan melibatkan beberapa pekerjaan bundaran yang cantik. Jika Anda berencana untuk serius menulis dan menjual aplikasi iPhone, saya pikir Anda dapat dengan mudah mengganti biaya Mac Mini atau Macbook. :-)

Ben Gotow
sumber
4
Sekarang ada sekitar 50.000 aplikasi, itu tidak selalu mudah untuk menghasilkan banyak. Hari salad mungkin sudah berlalu.
Nosredna
@Nosredna I untuk yang suka percaya hari salad ada di sini lagi. Tapi serius, kamu benar.
Wyatt8740
Kawan, Jika kita mencari alternatif untuk itu, itu karena beli satu bukan pilihan yang tersedia.
Roger Russel
-5

Anda tidak akan pernah mendapatkan aplikasi Anda disetujui oleh Apple jika tidak dikembangkan menggunakan Xcode. Tidak pernah. Dan jika Anda meretas SDK untuk dikembangkan di Linux dan Apple mengetahuinya, jangan kaget ketika Anda dilayani. Saya adalah anggota dari ADC dan program pengembang iPhone. Percayalah, Apple SANGAT serius tentang ini.

Jangan ambil risiko, Beli Macbook atau Mac mini (ya mini bisa menjalankan Xcode - meskipun perlahan - meningkatkan RAM jika Anda menggunakan mini). Juga, sementara saya melihat OS X diretas untuk dijalankan di VMware saya belum pernah melihat orang yang menjalankan Xcode pada VM. Semoga beruntung. Dan saya akan memeriksa EULA sebelum Anda melewati masalah.

PS: Setelah membaca di atas, ya saya setuju. Jika Anda meretas SDK dan mengembangkannya di Linux, setidaknya lakukan pengemasan akhir pada Mac. Dan kirimkan melalui Mac. Apple tidak menjalankan kode baris demi baris jadi saya ragu mereka akan menangkapnya. Tapi man, itu banyak jika dan bekerja. Tetaplah menyenangkan untuk dilakukan. :)

Stephen Cox
sumber
1
Mini baru baik untuk tugas itu. Saya pikir harganya sekitar $ 600 dan Anda dapat menggunakan hampir semua mouse, keyboard, dan monitor. Pastikan untuk mengkalibrasi monitor! XCode tampaknya berjalan cukup baik di mini saya yang belum dikembangkan.
Nosredna
7
Xcode berjalan dengan baik di mesin virtual Mac OS X.
dave1010
2
Apple menyetujui aplikasi Air SDK sepanjang waktu, tanpa interaksi dengan XCode. Anda dapat melakukan seluruh build di linux / windows.
j_mcnally