Linux bilgisayarda iOS uygulamaları geliştirememenizin teknik bir nedeni var mı?


23

Linux bilgisayarda neden OS X uygulamaları geliştiremediğinizi anlıyorum, ancak Linux'ta iPhone ve iPad uygulamaları geliştirememenizin iyi bir teknik nedeni var mı? İOS kaynak kodunu bir iOS çalıştırılabilir dosyasında derlemek ve Linux'ta bir iOS simülatöründe çalıştırmak veya bir geliştirme iOS cihazına yüklemek neden mümkün değil?

Sadece XCode IDE bir Cocoa uygulaması olduğu için mi?

Her türlü platformda Android uygulamaları geliştirebilirsiniz, öyle görünüyor. Aynı neden iOS için doğru olamıyor anlamıyorum.


29
Bu sorunun cevabını, ne yazık ki, "hayır; Apple sadece öyle dedi" olacağını hayal ediyorum.
Jon Purdy

11
soru "küfür" için kapalı;)
thorsten müller

1
Bir yandan notta, "Mac Mini" makineyi alabilirsiniz. Gerçekten iyi bir makine olduğunu söylememek ucuz.
Chiron

2
@ 1982 Efsanesi: İnce makineyi zaman makinesi olarak yanlış tanıdım ve eşzamanlı bir çocuksu heyecan ve tefekkür anı yaşadım .
Jon Purdy

@Jon Purdy Well Apple "Zaman Makinesi" ve "Zaman Kapsülü" :) sunuyor
Chiron

Yanıtlar:


17

Mac OS X yalnızca sözleşmeli olarak Apple Hardware'de çalıştırılabilir. iOS, Cocoa çerçevesini ve anahtarlığı imzalamak için bir Mac'e erişebilmesini gerektirir. OpenStep kütüphanelerini kullanarak Linux'ta Objective-C'yi kullanabilseniz de, doğru Cocoa API kütüphanelerinin bulunmamasından dolayı geliştirdiğiniz uygulamaları iOS'a zorlayamazsınız ve tam bir geliştiriciyle anahtarlık yapmadan hapsedilmiş bir cihaza zorlayabilirsiniz. Söz konusu uygulamayı satmak ya da kamuoyunu indirmek için hesap açmak için Apple'ın kurallarına göre oynuyorsunuz.


17
"Mac OS X yalnızca Apple Hardware'de yasal olarak çalıştırılabilir" - Aklı başında herhangi bir yasal sistemde doğru olsaydı çok şaşırırdım. Ben biliyorum o bir gerçeği değil , Microsoft aynı dublör çekmeye çalıştı çünkü Almanya'da gerçek, insanlar, Microsoft dava ve kayıp, bunu görmezden geldi.
Jörg W Mittag

4
Daha fazla hassasiyet için onu "sözleşmeye bağlı" olarak değiştireceğim.
Dünya Mühendisi

3
Sözleşmenin şartlarını ihlal etmeniz, temel olarak sizi yalnızca destek ayrıcalıklarından çıkarmaktadır. Apple, iyi müşteri hizmeti sunmak istiyor ve bunu yapmanın en basit yolu, her şeyden önce yanlış giden alanı sınırlamak. İşletim sistemlerini Apple dışı donanımda çalıştırıyorsanız, kendi başınızasınız.
Jon Purdy

@ JörgWMittag Microsoft nasıl yapmaya çalıştı? Microsoft'un ilk başta donanım oluşturduğunun farkında değilim.
Nadir Sampaoli

4
@NadirSampaoli: Almanya'da, Microsoft, Windows lisanslarını PC üreticileri için çok ucuza satıyor , böylece işletim sistemlerini kullanmayan bir PC'ye veya bir Linux'a kıyasla maliyeti çok fazla artırmadan Windows'u bilgisayarlarıyla birlikte paketleyebiliyorlar. Amaç, bu lisansların bilgisayarlara önceden yüklenmiş olmasıdır. Bununla birlikte, PC üreticileri bu lisansları ayrı olarak satabileceklerini, kendileri için ödediklerine kıyasla çok büyük bir kar elde ettiklerini, ancak yine de Microsoft'tan daha ucuz olduğunu fark ettiler. Microsoft, bu lisansların yalnızca bu üreticilerin bilgisayarlarıyla kullanılabileceği, ancak kaybedileceği gerekçesiyle dava açtı.
Jörg W Mittag

17

Belirli bir teknik neden yok, ancak Apple'ın sağladığı geliştirici araçlar yalnızca Mac'lerde çalışıyor ve bunları değiştirmek için acele ettiklerini görmüyorum.

Üçüncü taraf geliştirici araçları ile ilgili olarak Apple, herkese açık bir şekilde onları beğenmez ve Apple'ın App Store'da ne olduğu konusunda mutlak veto gücü verildiğinde, bunları yapmak / kullanmak için önemli bir geliştirme zamanı yatırmak iyi bir fikir değildir.

Geliştirme araçları (biri - iOS Simülatörü - edilmektedir çok güçlü ses teknik nedenlerden dolayı MacOS X bağlı AFAIK aslında başka bir işletim sistemi üzerinde yapılacak sonsuz zor olacağını iOS ve çok benzer MacOS X API'leri, arasında ince bir sarıcı var. Sıfırdan yeniden başlamak zorundasınız ve muhtemelen Android emülatörü kadar yavaş ve korkunç bir köpek gibi bir şeyle bitirdiniz.


8

"Teknik sebep" ile ne kastettiğinize bağlı

Açıkçası, iOS Apps'ın Linux'ta geliştirilememesinin teknik bir nedeni olduğuna inanmıyorum. Bunun için bir araç zinciri (derleyiciler, belki de bir IDE, telefonda almak için bir şeyler) yazmak için, Apple veya bir girişimci / yetenekli bilgisayar korsanları grubu olsun, bir varlık gerektirecektir.

Eğer "teknik sebep" ile "Macintosh'ta özel olan ve imkansız olan ve başka bir platformda bulunamayan bir şey" demek istiyorsan "hayır" olduğunu sanmıyorum. Örneğin Macintosh'ta bunun için gerekli olan bazı özel yongalar yoktur.

Eğer "teknik sebep" derken, "bugün yapmamı engelleyen bir şey" demek istiyorsan "evet", evet, imzalı kod bitinin tümü Linux üzerinde mevcut değil ve Apple onu geçmediği sürece top budur.


4

Diğer platformlarda iOS için geliştirebileceğinizi söylemesi gerektiğini düşünüyorum , bunlara nihai uygulamalar yapamazsınız .

Neden OS X dışında yapamayacağınız kabul edilen cevapta açıklanmıştır, ancak iOS uygulamalarını diğer platformlara yazmanıza izin veren birçok geliştirme aracı bulunmaktadır.

Buna izin verdiğim geliştirme araçlarından bazıları:

  • Qt Framework (C ++ ve Qml): Uygulamalar Windows veya Linux'ta yazılabilir, ardından iOS uygulaması OS X'te XCode ile birlikte oluşturulur.

  • Unity3D (C #, UnityScript ve Boo): Windows üzerinde geliştirebilir ve bir XCode projesi oluşturduğunuz herhangi bir platformda bir iOS oluşturabilirsiniz. Bu aynı zamanda diğer Objective-C kodlarıyla daha fazla entegrasyona izin verir.

  • Xamarin (C #): Windows üzerinde geliştirebilir (ve Linux'a inanıyorum) ve bir OS X makinesini yapı sunucusu olarak kullanabilirsiniz.

  • Kivy (Python): Ayrıca XCode Projeleri Üretiyor .

Ve bunun gibi daha birçok projeyi bulabilirsiniz , özellikle Appcelerator gibi hibrit ve mobil web uygulaması çerçevelerine bakmaya başladığınızda.


0

Linux'ta ios uygulamaları geliştirememeniz için hiçbir teknik neden yok. Aslında zaten Delphi XE'deki pencerelerde oluyor. Orada ios uygulamalarınızı tamamen pencerelerde geliştirebilirsiniz. Sonunda gereken tek şey, uygulamalarınızın imzalanması gerektiğidir. Bu sadece bir mac üzerinde yapılabilir.


0

Xcode'ın diğer sistemlerde iOS uygulamalarının geliştirilmesine izin vermemesinin teknik bir nedeni vardır.

iOS, OS X'e birçok açıdan benzer. Çerçevelerin çoğu aynı veya çok yakın. İOS Simulator bunu çok hızlı bir test ortamı sağlamak için kullanır. Xcode, simülatörde çalıştırılacak bir uygulamayı derlediğinde, çoğunlukla OS X çerçevelerine çökertilen çerçevelere bağlanan x86 ikili dosyaları oluşturur. Mükemmel performansa sahip olan Mac'inizde yerel olarak çalışan bir hata ayıklama yapısıyla bitirdiniz.

Android'e bakarsanız, daha sonra bir Android emülatöründe veya başka birinde taklit edilen platformdan bağımsız uygulamalar oluşturur. Bu hata ayıklama için tüm Android yığınını çalıştıran sanal bir makine çalıştırır. Diğerlerinden daha hızlı olan emülatörler var, ancak hepsi simülatörden çok daha yavaş. Bunun yararı, platformlar arası olmalarıdır.

Apple'ın iOS uygulamalarının başka sistemlerde kurulmasına izin vermesi için, çerçeveleri simülatör yazabilmeleri için ya da bir emülatör kurmaları gerekecek şekilde, bu işletim sistemlerine taşıması gerekir. Bunlardan biri, yeni özellikler oluşturmaktan zaman alacak bir iş parçası olacaktı.


0

İOS için uygulamaları Linux'ta imzalayamaz ve böylece bunları kabul edilen yöntemlerle dağıtamazsanız, Linux'ta Theos kullanarak (aynı API'lerle) geliştirebilirsiniz. Bu, jailbreak topluluğu tarafından iOS için uygulamalar geliştirmek için kullanılan alet zinciridir ve çapraz platformdur. Eğer iOS cihazınız hapse atıldıysa, derlenmiş uygulamayı libimobiledevice aracılığıyla cihazınıza aktarabileceğinize inanıyorum, ancak birileri beni yanlış yaparsa düzeltebilir.

Daha fazla bilgi: http://iphonedevwiki.net/index.php/Theos

Bunu ertesi güne kadar bırakmayı düşünüyorum ve güncellemeler sunacağım.


1
Güncellemeler lütfen!
Kyle Strand,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.