Apakah ada alasan teknis mengapa Anda tidak bisa mengembangkan aplikasi iOS di komputer Linux?

23

Saya mengerti mengapa Anda tidak dapat mengembangkan aplikasi OS X di komputer Linux, tetapi adakah alasan teknis yang bagus mengapa Anda tidak dapat mengembangkan aplikasi iPhone dan iPad di Linux? Mengapa tidak mungkin untuk mengkompilasi kode sumber iOS menjadi executable iOS dan menjalankannya dalam simulator iOS di Linux atau menginstalnya pada perangkat pengembangan iOS?

Apakah hanya karena XCode IDE adalah aplikasi Kakao?

Anda dapat mengembangkan aplikasi Android pada platform apa pun, tampaknya. Saya tidak mengerti mengapa hal yang sama tidak berlaku untuk iOS.

dan
sumber
29
Saya membayangkan jawaban untuk pertanyaan ini, sayangnya, akan menjadi "tidak; Apple hanya berkata begitu".
Jon Purdy
11
pertanyaan ditutup untuk "penistaan ​​agama";)
thorsten müller
1
Sebagai catatan, Anda bisa mendapatkan mesin "Mac Mini". Itu murah belum lagi itu benar-benar mesin yang bagus.
Chiron
2
@The Legend of 1982: Saya salah membaca mesin halus sebagai mesin waktu , dan mengalami kegembiraan kekanak-kanakan serentak dan penghinaan terhadap Apple.
Jon Purdy
@Jon Purdy Well Apple menawarkan "Time Machine" dan "Time Capsule" :)
Chiron

Jawaban:

17

Mac OS X hanya dapat dijalankan secara kontraktual di Apple Hardware. iOS membutuhkan kerangka kerja Kakao dan memiliki akses ke Mac untuk menandatangani gantungan kunci. Meskipun Anda dapat menggunakan Objective-C di Linux menggunakan pustaka OpenStep, Anda tidak bisa mendorong aplikasi yang Anda kembangkan ke iOS karena kurangnya pustaka Cocoa API yang benar dan sementara Anda bisa mendorong ke perangkat yang di-jailbreak tanpa gantungan kunci dengan pengembang penuh akun, untuk menjual aplikasi tersebut atau bahkan agar publik mengunduhnya, Anda telah bermain sesuai aturan Apple.

Insinyur Dunia
sumber
17
"Mac OS X hanya dapat dijalankan secara legal di Apple Hardware" - Saya akan sangat terkejut jika itu benar dalam sistem hukum yang waras. Saya tahu pasti bahwa itu tidak benar di Jerman, karena Microsoft mencoba menarik aksi yang sama, orang-orang mengabaikannya, Microsoft menggugat, dan kalah.
Jörg W Mittag
4
Saya akan mengubahnya ke "kontraktual" untuk lebih presisi.
Insinyur Dunia
3
Melanggar ketentuan kontrak pada dasarnya hanya melucuti Anda dari hak dukungan. Apple ingin memberikan layanan pelanggan yang baik, dan cara paling sederhana untuk melakukannya adalah membatasi ruang di mana hal-hal yang salah bisa terjadi. Jika Anda menjalankan OS mereka pada perangkat keras non-Apple, Anda sendiri.
Jon Purdy
@ JörgWMittag Bagaimana Microsoft mencoba melakukan itu? Saya tidak tahu kalau Microsoft membuat perangkat keras sama sekali.
Nadir Sampaoli
4
@NadirSampaoli: Di ​​Jerman, Microsoft menjual lisensi Windows yang sangat murah untuk pembuat PC, sehingga mereka dapat membundel Windows dengan PC mereka tanpa menambah biaya terlalu banyak dibandingkan dengan PC tanpa OS atau dengan Linux yang dibundel. Maksudnya adalah bahwa lisensi ini sudah diinstal sebelumnya pada PC. Namun, para pembuat PC menyadari bahwa mereka dapat menjual lisensi-lisensi itu secara terpisah, dengan keuntungan besar dibandingkan dengan apa yang mereka bayar untuk itu, tetapi masih jauh lebih murah daripada Microsoft. Microsoft menggugat dengan alasan bahwa lisensi tersebut hanya dapat digunakan dengan PC dari pembangun itu, tetapi hilang.
Jörg W Mittag
17

Tidak ada alasan teknis khusus, tetapi alat pengembang yang disediakan Apple hanya berjalan di Mac, dan saya tidak melihat mereka sedang terburu-buru untuk mengubahnya.

Berkenaan dengan alat pengembang pihak ketiga, Apple sangat membenci mereka, dan diberi hak veto mutlak Apple atas apa yang didapat di App Store, itu bukan ide bagus untuk menginvestasikan waktu pengembangan yang signifikan dalam membuat / menggunakannya.

(Salah satu alat pengembangan - iOS Simulator - adalah sangat kuat terkait dengan MacOS X untuk alasan suara teknis AFAIK itu sebenarnya bungkus tipis antara iOS dan sangat mirip MacOS X API, yang akan jauh lebih sulit untuk dilakukan pada OS lain. Anda harus memulai lagi dari awal dan kemungkinan berakhir dengan sesuatu yang lamban dan mengerikan seperti emulator Android)

grahampark
sumber
8

Itu tergantung pada apa yang Anda maksud dengan "alasan teknis"

Sebenarnya saya tidak percaya ada alasan teknis bahwa Aplikasi iOS tidak dapat dikembangkan di Linux. Diperlukan beberapa entitas, baik Apple atau sekelompok peretas yang giat / berbakat, untuk membuat rantai alat untuknya (penyusun, mungkin IDE, sesuatu untuk mendapatkannya di telepon).

Jadi jika dengan "alasan teknis" maksud Anda "sesuatu yang istimewa tentang Macintosh yang tidak mungkin dan tidak mungkin ada di platform lain" maka tidak, saya tidak percaya ada. Tidak ada chip khusus pada Macintosh yang diperlukan untuk ini, misalnya.

Jika dengan "alasan teknis" yang Anda maksudkan "sesuatu yang mencegah saya untuk dapat melakukannya hari ini" maka ya, seluruh kode yang ditandatangani tidak ada di Linux dan kecuali Apple mem-port-nya maka itu adalah permainan bola.

Tom Kidd
sumber
4

Saya pikir itu seharusnya mengatakan Anda dapat mengembangkan untuk iOS pada platform lain, Anda hanya tidak dapat membangun aplikasi akhir di atasnya.

Sudah dijelaskan dalam jawaban yang diterima mengapa Anda tidak bisa membangun di luar OS X, tetapi ada banyak alat pengembangan yang memungkinkan Anda untuk menulis aplikasi iOS di platform lain.

Beberapa alat pengembangan yang saya gunakan yang memungkinkan ini:

  • Qt Framework (C ++ dan Qml): Aplikasi dapat ditulis dalam Windows atau Linux maka aplikasi iOS dibangun dengan XCode pada OS X.

  • Unity3D (C #, UnityScript, dan Boo): Anda dapat mengembangkan di Windows dan membangun iOS di kedua platform yang Anda hasilkan dari proyek XCode. Ini juga memungkinkan integrasi lebih lanjut dengan kode Objective-C lainnya.

  • Xamarin (C #): Anda dapat mengembangkan di Windows (dan saya percaya Linux), dan menggunakan mesin OS X sebagai host build.

  • Kivy (Python): Juga Menghasilkan Proyek XCode.

Dan Anda dapat menemukan lebih banyak proyek seperti ini, terutama setelah Anda mulai melihat kerangka kerja aplikasi web hybrid dan seluler seperti Appcelerator.

Selali Adobor
sumber
0

Tidak ada alasan teknis sama sekali bahwa Anda tidak akan dapat mengembangkan aplikasi ios di linux. Sebenarnya itu sudah terjadi pada windows di Delphi XE. Di sana Anda dapat mengembangkan aplikasi ios Anda sepenuhnya di windows. Satu-satunya hal yang dibutuhkan pada akhirnya adalah aplikasi Anda harus ditandatangani. Ini hanya dapat dilakukan pada mac.

Pieter B
sumber
0

Ada alasan teknis bahwa Xcode tidak akan mengizinkan pengembangan aplikasi iOS di sistem lain.

iOS mirip dalam banyak hal dengan OS X. Banyak kerangka kerja yang identik atau sangat dekat. Simulator iOS memanfaatkan itu untuk menyediakan lingkungan pengujian yang sangat cepat. Ketika Xcode mengkompilasi aplikasi untuk dijalankan di simulator, itu membuat x86 binari yang menghubungkan kerangka kerja yang sebagian besar dibuang ke kerangka kerja OS X. Anda berakhir dengan build debug yang berjalan secara native di Mac Anda, yang memiliki kinerja hebat.

Jika Anda melihat Android, itu membuat platform independent apks yang kemudian ditiru dalam satu emulator Android atau lainnya. Ini menjalankan mesin virtual yang menjalankan seluruh tumpukan Android untuk Anda debug. Ada emulator yang lebih cepat dari yang lain, tetapi semuanya jauh lebih lambat daripada simulator. Namun, manfaatnya adalah mereka cross-platform.

Agar Apple mengizinkan aplikasi iOS dibangun di sistem lain, mereka perlu mem-porting frameworks ke OS tersebut sehingga mereka bisa menulis simulator, atau mereka harus membangun emulator. Salah satu dari mereka akan menjadi bagian dari pekerjaan yang akan mengambil waktu dari membangun fitur baru.

Alan Shutko
sumber
0

Meskipun Anda tidak dapat menandatangani aplikasi untuk iOS di Linux, dan dengan demikian mendistribusikannya melalui metode yang diterima, Anda dapat mengembangkan (dengan API yang sama) di Linux menggunakan Theos. Ini adalah toolchain yang digunakan oleh komunitas jailbreak untuk mengembangkan aplikasi untuk iOS, dan ini adalah lintas platform. Jika perangkat iOS Anda sudah di-jailbreak, saya yakin Anda bisa mendorong aplikasi yang dikompilasi ke perangkat Anda melalui libimobiledevice, tetapi seseorang dapat memperbaiki saya jika saya salah.

Beberapa informasi lebih lanjut: http://iphonedevwiki.net/index.php/Theos

Saya berencana untuk mencobanya di hari berikutnya, dan saya akan memberikan pembaruan.

sammoore
sumber
1
Tolong, Pembaruan!
Kyle Strand