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.
Jawaban:
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.
sumber
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)
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber