Linux'ta iPhone uygulama geliştirmeye mi başlıyorsunuz? [kapalı]


529

İPhone uygulamaları geliştirmek istiyorsanız bir Mac almanız gerektiğini duydum. Bu doğru mu?

Linux kullanarak iPhone uygulamaları geliştirmek mümkün müdür? Evetse, neye ihtiyacım var ve gerekli araçları nereden indirebilirim?



2
birisi bu s / Linux / unix'i genelleştirmek için düzenleyebilir mi?
İyi İnsan

5
@GoodPerson O halde OS X ve diğer işletim sistemleri arasındaki çizgiyi bulanıklaştırırsınız, bu da bu sorunun konusu.
Bay Lister

2
şimdiye kadar bulduğum en önemli bilgi parçalarından biri. kesinlikle konu
başlığında

Yanıtlar:


303

Farklı bir yanıt sağlamak için, Linux'ta sanallaştırılmış (VMware) bir makinede OS X ve Xcode kullanıyorum. CPU bir Core2Quad (Q8800) ve mükemmel hızlı. Çevrimiçi olarak önceden oluşturulmuş bir VM buldum (bulmak için size bırakacağım) Xcode / iPhone geliştirme, USB üzerinden telefonun kendisine hata ayıklama gibi mükemmel çalışıyor.

Aslında beni çok şaşırttı - ama hiç sorun yaşamadım.


11
Peki, yaklaşımınızı kullanarak iTunes'da imzalayıp dağıtabilir misiniz?
Eldelshell

43
Evet - sorun yok. XCode kullanıyorsunuz, imzalama iyi çalışıyor, şimdi mağazadan VM'den gönderilen bir üretim uygulamam var. Açık nedenlerle adlandırmayacağım.
Kaos

18
@Chaos: Kurulumunuzu çalıştırmak için tam olarak kullandığınız şeylere bağlantı gönderebilir misiniz?
Glycan

4
Önceden oluşturulmuş bir VM'ye güvenilebilir mi? Yani gömülü suçlu Yazılımlar, arka kapılar ...
DummyBeginner

2
Tamam. Bu konudaki düşüncem. Uygulamayı geliştirdikten sonra macincloud.com
Fabrizio Bertoglio

75

Bunun cevabı, daha sonra iPhone mağazası aracılığıyla dağıtılan uygulamalar geliştirmek isteyip istemediğinize bağlıdır. Yapmazsanız ve "jailbreak" iPhone kalabalığı için gelişmeyi önemsemiyorsanız - o zaman Linux'tan geliştirmek mümkündür.

Ne yapılacağına dair kapsamlı (biraz karmaşıksa) bir kılavuz için bu arkadaşın sayfasına bakın:

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


26

Şimdiye kadar doğru gibi görünüyor. Apple tarafından sunulan tek SDK yalnızca MacOS ortamını hedefler. Bu konuda üzüldüm, ancak şimdi sadece iPhone geliştirme yapmak için bir mac satın almak istiyorum. Yaptıklarından gerçekten hoşlanmıyorum ve umarım Linux ve Windows gibi diğer ortamlar için iyi bir SDK çıkar.

SDK ile ilgili engeller :

İPhone SDK ve özgür yazılım: bir eşleşme değil

Apple son zamanlarda iPhone için bir yazılım geliştirme kiti (SDK) yayınladı, ancak orijinal açık kaynaklı yazılımı taşımayı veya geliştirmeyi umuyorsanız, haberler iyi değil. Kod imzalama ve gizlilikten korunma koşulları, özgür yazılımı hareketsiz hale getirir.

SDK'nın kendisi, programları yazıp bir yazılım simülatöründe çalıştırabileceğiniz ücretsiz bir indirme işlemidir. Ancak, yazdığınız yazılımı gerçekten yayınlamak için, SDK'yı indirmekten ayrı bir adım olan ve Apple'ın onayını gerektiren bir iPhone Geliştirici Programına kaydolmalısınız.

Bence sadece macos kullanıcılarının telefonlarına program yazmak için yeterince iyi olduğunu düşünmek oldukça elitist ve eşyalarınızı yayınlamak istiyorsanız 100 dolarlık bir lisans satın almanız gerekiyor, hobi programcısı için gerçekten zorlaşıyor. Gerçi, yapmanız gereken buysa, çemberlerinden atlamayı planlıyorum; İPhone'umda bazı şeyler geliştirmek istiyorum.


9
Daha önce de söylendiği gibi, elitizmin hatalı olduğunu sanmıyorum. XCode ve diğer tüm geliştirme araçları (GCC gibi düşük seviye öğeler hariç), tüm iPhone çerçeveleri gibi Kakao'da yazılmıştır. Önce tüm bunları diğer işletim sistemlerine taşıması gerekir. Bu küçük bir görev değil.
Brad Larson

24
Microsoft Linux ve Mac için Visual Studio'yu yayınladığında bana haber verin ...
Stephen Darlington

12
Microsoft Visual Studio, Access, Frontpage, XNA, DirectX, Office (tüm özelliklerle), Movie Maker, Visio, IIS veya Mac / Linux için Exchange'i piyasaya sürdüğünde bana bildirin.
Brock Woolf

97
Microsoft'un EULA'ya karşı Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS veya Exchange'i (Dar) Wine'da çalıştırmasını sağladığında bana bildirin.
lfaraone

5
@MarceloMason Tür. Visual Studio Code , tam IDE değil.
Stephen Darlington

20

Orada eskiden : Bu kusur çözmek için adanmış bir proje iphone-dev

İphone-dev projesinin amacı, Apple iPhone ve ARM / Darwin platformuna dayanan diğer gömülü cihazlar için geliştirme sağlamak için ücretsiz, taşınabilir, yüksek kaliteli bir araç zinciri oluşturmaktır.


4
Proje, siteden düzenli olarak geliştirme veya bakımdan geçiyor gibi görünmüyor (örneğin, aracı / taşınabilirliği oluşturma hakkındaki Wiki girişleri Şubat 2010'dan alınmıştır).
ely

4
@Bay. F, gerçekten de öldü.
Johan Boulé

13

Alternatif araç zinciri ile ilgili olarak, Saurik'in sitesi yararlıdır, ancak en son ürün yazılımı geliştirme için iPhone'un üzerine inşa edildiğini belirtir ve gerekli iPhone ürün yazılımı dosyalarını Linux ortamınıza kopyalamanız gerekebileceğini belirtmekten uzak kalır. Bu imkansız değil, ancak özellikle kodu imzalamak için sadece ek iş gerektiriyor (orada da açık alternatif çözümler var).

Ayrıca, ona daha metodik yaklaşan diğer kılavuzlara (aynı takım zinciri için) bir göz atın.

Hala Apple'a gönderirken sorun yaşarsanız XCode'daki son derlemeyi ve kod imzalamayı ve paketlemeyi (birinin Mac'ini ödünç almak anlamına gelebilir) yapmanızı öneririm. Alternatif araç zincirinin kullanılması (en azından Mac'te), uygulamayı geliştirmek için XCode dışındaki diğer IDE'leri kullanma ve simülatörle dağıtım ve test için tekrar XCode'a başvurma olasılığını açar.

Tabii ki kod imzalama / sertifika oluşturma işlemini XCode dışındaki komut satırından çalıştırırsanız, gerçek iPhone'unuza bir sertifika yükleyebilir ve orada test edebilirsiniz (uygulamayı sertifikanızla iTunes'u yükleyerek).


7

İPhone için Linux'ta geliştirme yapmanın tek yolu Vmware'i yüklemek ve OS X'i sanal bir makinede çalıştırmak için çalışmak olacaktır. Bununla birlikte, bunu yaparken bazı "yasal" endişeler vardır. OS X Server'ın sanallaştırılabileceği ancak bilmediğim geliştirme hikayesine kadar olduğu bildirildi.

Eğer gerçekten ciddiyseniz, araştırdığım şey buydu.

İyi şanslar.


4
VMWare seçeneğini denedim ve en azından donanımımda (T5200 Core2, 2M ram), alışılmadık derecede yavaş. Arkadaşım da benzer bir deneyim oldu.
Parand

3
Ben de. Yavaş, yavaş, yavaş. Denemek bile istemiyorsun.
Nosredna

5
@Parand Tabii ki 2M ram'da yavaş olacak, hatta botlara şaşırdım!
Jeshurun

2
VMware yerine VirtualBox'ı denemek isteyebilirsiniz. Bence VMWare çok şişkin.
Harindaka

5

Tersus'u (açık kaynak) kullanabilirsiniz ve uygulamayı bir Xcode projesi olarak dışa aktarmanıza izin verir.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Bu yüzden yerel bir iOS uygulamasını
tamamlayamayacak

5

Sonunda kendini bir iPhone veya iPad'de bulacak bir Linux kutusuna kod yazabilirsiniz, ancak sonunda kodu test etmek veya iPhone'a dağıtmak veya App Store'a göndermek için bir Mac'e ihtiyacınız olacaktır. Sonuçta bir Mac'e ihtiyacınız var, bu yüzden Apple'ın sağladığı tüm araçlarla Mac'teki işi de yapabilirsiniz. Xcode & Objective-C'ye Monotouch gibi alternatifler var - ancak bunlar Apple araçlarını da kullanıyor.

Bazı çalışmalarda Linux üzerinde bir VM'de OS X'i çalıştırabilirsiniz. Bununla birlikte, OSX kopyasını satın alsanız bile OSX lisans sözleşmesini kıracağına dikkat çekmeliyim - çünkü sadece Apple donanımında çalışmak üzere lisanslanmıştır.

Size bu haberi verdiğim için üzgünüm - iPhone / iPad çevresindeki ekosistem çok sıkı bir şekilde kontrol ediliyor.

EDIT: Bunun önemli bir istisnası iPhone için bir web uygulaması yazmak. İPhone için yerel bir uygulama kadar kullanıcı deneyimi kadar iyi olan bazı mükemmel web uygulamaları var. Ancak, sorunuzu yerel uygulama geliştirme ile ilgili olarak yorumladım. Web uygulamaları, kullanıcı bunları başlatmak için bir simge oluşturabilse de, hala 'ikinci sınıf' vatandaşlar.


4
Mac üzerinde Linux kullanıyorsanız Lion'u sanallaştırmada çalıştırmanıza izin verilebilir.
Cajunluke

4

Cjacker'ın iOS clang araç zincirini kullanarak linux üzerinde iOS uygulamaları oluşturmada başarılı oldum . Temel olarak linux dağıtımınızdan gelen yukarı akım clang ve llvm araçlarından, apple'ın bağlayıcısının linux portundan ve inşa sürecini basitleştirmeye yardımcı olacak bazı ekstra araçlardan (xcode projelerini Makefile formatına dönüştürmek gibi) oluşur.

Yüklemek için birkaç adım gerekiyor, ancak bir yazılım geliştiricisiniz, bu yüzden buna alışacaksınız. Ben Debian 7 (Wheezy) için güncel bir howto yayınladım:

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

Aksi takdirde, biraz daha eski olan genel talimatlarla gitmek istersiniz:

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

İyi şanslar.


2

Rodos adında bir çerçeve var .

Konsept Ruby on Rails'e dayanıyor ve mobil uygulamanızı Ruby ve HTML olarak geliştiriyorsunuz ve kodunuzu bir Linux ortamında yazabiliyorsunuz. Daha sonra Rhohub'da ( GitHub aracılığıyla ) kodu eklediğiniz bir hesap oluşturabilirsiniz ve bu, iPhone, Blackberry, Android, Windows Mobile ve Symbian için hepsini aynı koddan derlemenizi sağlar. İPhone için Objective-C veya Android için Java, vb kodlamak zorunda değilsiniz. Bu sizin için dönüşümleri yapar. Tek yapmanız gereken bir iPhone uygulaması (veya geliştirmek istediğiniz Telefon) oluşturmak için Kurallara bağlı kalmaktır, böylece iTunes'da (veya eşdeğer pazarda) kabul edilebilir.

Bu, uygulamayı iTunes'a da eklemenizi sağlar.

Bununla birlikte, herhangi bir emülatör bulamadım, yani uygulamanızı test etmek için bir görev olan bir iPhone'a koymanız gerekir.

Bu seçeneği tüm telefonlar için uygulama oluşturmak istediğim için kullanıyorum ve Ruby on Rails'i zaten kullanıyorum. Sadece bir iPhone için uygulama yapmak istiyorsanız, Mac'e yatırım yapın.

Bu yardımcı olur umarım.


1

Haklısın jailbreak yapmayan telefonlar Apple'ın App store'u ile sınırlıdır ve Apple "hangi kuralı uygularsa uygula" hakkına sahiptir, tamamen özgür olmayan bir bölgedir. Ancak gelişirken, Apple ile hiç uğraşmak zorunda kalmayacak. Kodu cihaza yüklemek ve test etmek için örneğin rsync kullanabilirsiniz.


Bu proje Stephen Cox'un sunduğu sorunun üstesinden geliyor mu? "Xcode kullanılarak geliştirilmediyse uygulamanızı Apple tarafından asla onaylatmayacaksınız. Asla. Ve Linux ve Apple'da geliştirmek için SDK'yı hack ederseniz" Teşekkürler
gerçek

libmobiledevice aslında bir iDevice üzerinde rsync / ssh'ye ihtiyaç duymadan uygulamaları yüklemek için iyi bir arayüze sahiptir.
Dwight Spencer

1

Belli bir dereceye kadar, evet, mümkün. Objective-C kodu yazabilir ve projelerinizi kurabilirsiniz. Kodunuzun C ve C ++ bölümlerini gcc ile bile test edebilirsiniz.

Neyi yapamazsın:

  • Arayüzünüzü sadece Mac olduğu için ayarlamak için Arayüz Oluşturucu'yu kullanın. (Gerekli değil, ancak önerilir.)
  • Apple'ın Kakao sınıflarını kullanan kodu derleyin - Linux'ta mevcut değiller.
  • Simülatörde test kodu - Linux için bir tane yok.
  • Kodu gerçek cihazlar veya App Store için derleyin - tüm bunlar Apple'ın yalnızca OS X için sağladığı araçları gerektirir.

derslerin olmadığını söyleyince ne demek istiyorsun? Sadece başlıklara ihtiyacım var, Apple yine de benim için bağlayacak. Uygulama gönderme böyle çalışır, AFAIK.
Janus Troelsen

1

Bunun için mac almanız gerekiyor. Windows'da i Phone uygulamaları yazmanıza ve oluşturmanıza olanak tanıyan çeşitli araç zincirleri (win-chain gibi) vardır. Windows'ta Objective C kodu oluşturmak için birkaç ilişkili öğretici vardır. Ancak bir sorun var, bu nedenle geliştirilen uygulamalar sadece Jail broken i Phones üzerinde çalışacak.

Bunu aşmak ve App Store'a ulaşmak için birkaç hack gördük, ancak Apple SDK'ları güncellemeye devam ederken, araç zincirlerinin düzenli güncellemelere ihtiyacı var. Bu her zaman telafi etmek için bir güçlük. Hazır app almak istiyorsanız, aynı zamanda lansman uygulamaları makul bir fiyata başlattı yardım alabilirsiniz. iphone uygulama geliştirme


1

Cocos2d tabanlı oyun geliştirebilmeniz için cocos2d-iphone'u GNUstep'e taşımaya çalıştım . Ancak yayınlamak için bir Mac'e ihtiyacınız var. cocos2d-GNUstep .


0

Bir mac almanızı tavsiye ederim çünkü ios simülatörü bir uygulamanın ilk aşamalarında test etmek için şaşırtıcıdır. Ama birlikte çalıştığımız Unity kullanarak gelişen küçük bir şirket olduğunu biliyorum, böylece bir sürü mac'a ihtiyaç duymuyorlar. Bu şekilde ofis için sadece bir mac'a ihtiyaçları var ve bu sadece son yapıyı derlemek için. Ayrıca android üzerinde çalıştığı anlamına gelir, ancak gerçekten bir oyun motoru olduğu için binanıza bağlıdır. Sencha Touch Mobile gibi çerçeveleri kullanarak web uygulamalarına bakmak isteyebilirsiniz

Birlik: http://unity3d.com/ Sencha Dokunma: http://www.sencha.com/products/touch/


-5

Zamanınıza değer veriyorsanız, bir Mac satın alın! Uygun bir çözüm sunmak için Linux geliştirme seçenekleri hakkında yeterince bilgim yok, ancak önerilen yöntemler bazı oldukça dolambaçlı çalışmalar içeriyor gibi görünüyor. İPhone uygulamalarını ciddi bir şekilde yazmayı ve satmayı planlıyorsanız, bir Mac Mini veya Macbook'un maliyetini kolayca telafi edebileceğinizi düşünüyorum. :-)


4
Artık 50.000 uygulama gibi bir şey olduğuna göre, çok fazla şey yapmak kolay değildir. Salata günleri gitmiş olabilir.
Nosredna

@Nosredna Salata günlerinin tekrar geldiğine inanmak isterim . Ama cidden, haklısın.
Wyatt8740

Dostum, bunun için bir alternatif arıyoruz, çünkü bir tane satın almak mevcut bir seçenek değil.
Roger Russel

-5

Xcode kullanılarak geliştirilmediyse uygulamanızı Apple tarafından asla onaylamazsınız. Asla. Ve SDK'nın Linux üzerinde gelişmesi için hack yaparsanız ve Apple öğrenirse, servis yaptığınızda şaşırmayın. ADC ve iPhone geliştirici programının üyesiyim. Güven, Apple bu konuda ÇOK ciddidir.

Risk almayın, bir Macbook veya Mac mini satın alın (evet, bir mini Xcode'u çalıştırabilir - yavaşça olsa da - mini ile giderseniz RAM'i yükseltin). Ayrıca, OS X'in VMware üzerinde çalıştırılmasını hacklerken, VM'de Xcode çalıştıran birini hiç görmedim. Çok iyi şanslar. Ve beladan önce EULA'yı kontrol ederim.

Not: Yukarıdakileri okuduktan sonra, evet, katılıyorum SDK'yı hack ederseniz ve Linux'ta geliştirirseniz, en azından Mac'te son ambalajı yapın. Ve Mac ile gönderin. Apple kod satır satır çalışmaz bu yüzden onlar bunu yakalamak şüpheliyim. Ama adamım, bu çok fazla ve işe yarar. Yine de eğlenceli olun. :)


1
Yeni minis görev için iyidir. Sanırım yaklaşık 600 dolar ve hemen hemen her fareyi, klavyeyi ve monitörü kullanabilirsiniz. Monitörü kalibre ettiğinizden emin olun! XCode, genişlememiş mini'mde oldukça iyi çalışıyor gibi görünüyor.
Nosredna

7
Xcode, bir Mac OS X sanal makinede iyi çalışır.
dave1010

2
Apple, Air SDK uygulamalarını her zaman onaylıyor, XCode ile sıfır etkileşimi. Yapının tamamını linux / windows üzerinde yapabilirsiniz.
j_mcnally
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.