Mac'iniz olmadan bir iOS uygulaması mı oluşturacaksınız? [kapalı]


98

Yanılıyorsam lütfen beni düzeltin.

Mobil geliştirmede yeniyim ve apple mağazasına göndermek için bir uygulama geliştirmek istiyorum.

Ancak uygulamayı aklımda geliştirdiğim mac'lerin fiyatları beni çok rahatsız ediyor.

Diyelim ki tam olarak ne istediğimi ve onu nasıl kodlayacağımı biliyorum.

Bir geliştirici hesabı oluşturacak ve ücreti ödeyecek olsaydım - arkadaşlarımın Mac'ini ödünç alın, kodu yazın ve kodumu apple'a gönderin. Mac'e ihtiyacım olan tek şey bu mu? Ve sonra tüm istatistiklere vb. Windows bilgisayarımdaki iTunes aracılığıyla erişebilir miyim?

Biri bana hayal gördüğümü söyleyebilir mi?


2
Sizin bahsettiğiniz şekilde başarılabilir, ancak bunun üzerine düşünün ki, uygulamanızın herhangi bir güncellemeye veya küçük bir hata veya değişikliğe ihtiyacı varsa o zaman? her zaman arkadaşından bir iyilik isteyeceksin?
D-eptdeveloper

5
Ciddi iOS geliştirme için bir Mac'e ihtiyacınız var. Dönem. Ve sonuçta o kadar da pahalı değiller. Ve üzerinde test edilecek bir avuç iOS cihazını da unutmayın - mevcut donanım üzerinde test edilmeyen uygulamalar genellikle eksiklikler gösterir.
Eiko

1
Sanrısal kısım "Onu nasıl kodlayacağımı biliyorum" ile başlar ... Eğer kendinizi kodlarsanız (başka bir deyişle başkaları tarafından sözleşme yapılmazsa), çok sayıda teste ve hata ayıklamaya ihtiyacınız olacaktır . Birine göstermeye değer bir proje yürütmek için birkaç hafta düşünün. Parlatmak ve "dükkana yakışır" hale getirmek zor bir iş olacaktır. Gerçekten sadece Mac'te bir gün içinde inşa edilir en yararsız uygulamalar (yani "web sitesi sarmalayıcıları") düşünebiliriz eğer zaten iOS geliştirici yaşanır.
Eiko

Linux üzerinde GCC tabanlı bir iOS araç zinciri oluşturmak mümkündür. Xcode bir derleyici değildir - yalnızca uygulamanızı AppStore'a göndermek için sertifikaları oluşturmak için gereklidir.
Paramagnetic Kruvasan

2
Intel işlemcilerde Mac OS çalıştırmaya izin veren Hackintosh'u arayabilirsiniz, ancak bu yasadışı olduğunu düşünüyorum.
Borzh

Yanıtlar:


32

Birkaç yıl önce adım adım anlatayım ben de aynı durumdaydım.

Yani iki aşamamız var

  1. iPhone / iPad (iOS) uygulama geliştirme
  2. iPhone / iPad (iOS) uygulama geliştirme ve iTunes Store'da yayınlama

1. iPhone / iPad (iOS) uygulama geliştirme

Dolayısıyla, yalnızca iOS uygulamaları geliştirmek istiyorsanız, hiçbir şey ödemek istemezsiniz.

Sadece Mac + XCode IDE'ye ihtiyacınız var

  1. Mac Mini veya Mac Machine Edinin
  2. Apple'da ücretsiz Geliştirici Hesabı oluşturun
  3. Geliştirici hesabına giriş yaptıktan sonra Xcode IDE'nin .dmg dosyasını indirebilirsiniz.
  4. Bu kadar.

Şimdi Xcode'u kurun ve iOS uygulamaları geliştirmeye ve Simulator ile test / hata ayıklamaya başlayın ..

2. iPhone / iPad (iOS) uygulama geliştirme ve iTunes Store'da yayınlama

uygulamanızı iTunes mağazasında yayınlamak için ödemeniz gerekir (örneğin, 99 $ / yıl).

Tam iOS Geliştirme Kurulumu için ihtiyacınız olan

  1. Mac Mini veya Mac Machine Edinin
  2. Apple'da ücretsiz Geliştirici Hesabı oluşturun
  3. Geliştirici hesabına giriş yaptıktan sonra Xcode IDE'nin .dmg dosyasını indirebilirsiniz.
  4. iTunes'da uygulama yayınlamak için 99 $ ödeyin
  5. apple hesabınızda geliştirme / dağıtım için sertifikalarınızı oluşturun
  6. Mac makinedeki tüm sertifikayı indirin ve Anahtar Zinciri aracını kullanarak XCode'a yükleyin
  7. En az bir iOS Cihazı edinin
  8. Apple hesabınıza cihazınızı kaydedin
  9. Artık iOS uygulaması geliştirebilir, Gerçek Cihazda test edebilir ve ayrıca iTunes Store'da yayınlayabilirsiniz.


Ama soru özellikle "bir
mac'iniz

29

Windows'ta, Mac'i sanal bir makinede kullanabilirsiniz (bu muhtemelen Linux'ta da çalışır, ancak ben test etmedim). Sanal makine, temelde bilgisayarınızda çalıştırdığınız ve bir işletim sistemini diğerinin içindeki bir pencerede çalıştırmanıza izin veren bir programdır. Sabit sürücünüzde en az 60 GB boş alan olduğundan emin olun. İndireceğiniz sanal sabit disk başlangıçta 10 GB yer kaplıyor ancak iOS uygulamaları geliştirmek için gerekli tüm programları yüklediğinizde boyutu kolayca 50 GB'a çıkabilir (her ihtimale karşı birkaç GB marj bırakmanızı öneririm).

Windows'ta bir Mac sanal makinesinin nasıl kurulacağına ilişkin bazı ayrıntılı adımlar şunlardır:

  1. VirtualBox'ı kurun .

  2. BIOS'ta sanallaştırmayı etkinleştirmelisiniz. Windows 10'da BIOS'u açmak için Shift, başlat menüsünde Yeniden Başlat düğmesine basarken tuşuna basılı tutarak başlamanız gerekir . Ardından, bazı seçeneklerle mavi bir ekran alacaksınız. "Sorun Giderme" yi, ardından "Gelişmiş seçenekler" i, ardından "UEFI Ürün Yazılımı Ayarları" nı ve ardından "Yeniden Başlat" ı seçin. Ardından bilgisayarınız yeniden başlatılacak ve BIOS'u doğrudan açacaktır. Windows'un eski sürümlerinde, bilgisayarı normal şekilde kapatın, F2tuşu basılı tutun, bilgisayarınızı yeniden başlatın F2ve BIOS'a girene kadar bırakmayın . Bazı bilgisayarlarda, bundan başka bir tuşa basmanız gerekebilir F2.

  3. Artık BIOS'tasınız, sanallaştırmayı etkinleştirmeniz gerekiyor. Hangi ayarı değiştirmeniz gerektiği, kullandığınız bilgisayara bağlıdır. Bu, aynı Windows sürümüne sahip iki bilgisayar arasında bile değişebilir. Benim bilgisayarda, sette gerek Intel Virtual Technologyiçinde Configurationhiç sekme Enabled. Diğer bilgisayarlarda örneğin içinde Security -> Virtualizationveya içinde olabilir Advanced -> CPU Setup. Bu seçeneklerden hiçbirini bulamazsanız, Google'da arayın . BIOS'ta herhangi bir şeyi rastgele değiştirmeyin, aksi takdirde bilgisayarınızda sorunlara neden olabilir. Sanallaştırmayı etkinleştirdiğinizde, değişiklikleri kaydedin ve BIOS'tan çıkın. Bu genellikle sekmede yapılır .enable virtualization (the kind of computer you have)Exit

  4. Bu dosyayı indirin (yükleyen kişiyle hiçbir ilişkim yok, ancak onu kendim kullandım, bu yüzden virüs olmadığından eminim). Bağlantı koparsa, bana bildirmek için bir yorum gönderin, dosyayı başka bir yere yüklemeyi deneyeceğim. 7Z dosyasını açma parolası stackoverflow.com. Bu 7Z dosyası, Mac sanal makinesi için sabit disk görevi görecek bir VMDK dosyası içerir. Bu VMDK dosyasını çıkartın. Disk alanı sizin için bir sorunsa, VMDK dosyasını çıkardıktan sonra, 7Z dosyasını silebilir ve dolayısıyla 7 GB tasarruf edebilirsiniz.

  5. 1. adımda kurduğunuz VirtualBox'ı açın. Araç çubuğunda Yeni düğmesine basın. Sonra sanal makineniz için bir isim seçin (isim önemsiz, ben ona "Mac" dedim). "Tür" bölümünde "Mac OS X" öğesini seçin ve "Sürüm" bölümünde "macOS 10.13 High Sierra (64 bit)" öğesini seçin (sanal makineye yükleyeceğiniz Mac sürümü aslında Catalina'dır, ancak VirtualBox bu seçeneğe sahip değildir henüz ve VirtualBox High Sierra olduğunu düşünüyorsa gayet iyi çalışıyor).

    4. adımda çıkardığınız VMDK dosyasını "Makine Klasörü" altında listelenen klasöre (yukarıdaki ekran görüntüsünde) taşımak da iyi bir fikirdir (ancak gerekli değildir C:\Users\myname\VirtualBox VMs).

  6. Sanal makinenizin kullanabileceği bellek miktarını seçin. Miktarı dengelemeye çalışın çünkü çok az bellek, sanal makinenin düşük performansa sahip olmasına neden olur ve çok fazla bellek, ana sisteminizin (Windows) belleğinin tükenmesine neden olarak sanal makineye ve / veya diğer programlara neden olur. Windows'ta çökmek için yeniden çalışıyor. 4GB boş belleği olan bir bilgisayarda 2GB iyi bir miktardı. Kötü bir miktar seçerseniz endişelenmeyin, istediğiniz zaman değiştirebileceksiniz (sanal makinenin çalıştığı zamanlar hariç).

  7. Sabit disk adımında, "Mevcut bir sanal sabit disk dosyasını kullan" ı seçin ve açılır listenin sağındaki küçük klasör simgesine tıklayın. Bu yeni bir pencere açacaktır. Bu yeni pencerede, bir gözatma penceresi açacak olan sol üstteki "Ekle" düğmesine tıklayın. 4. adımda indirdiğiniz ve çıkardığınız VMDK dosyasını seçin, ardından "Seç" e tıklayın.

    Bununla işiniz bittiğinde, "Oluştur" u tıklayın.

  8. Pencerenin solundaki listeden sanal makineyi seçin ve araç çubuğundaki Ayarlar butonuna tıklayın. Sistem -> İşlemci'de 2 CPU seçin; ve Network -> Attached to, Bridged Adapter'ı seçin. Daha sonra 6. adımda sorunlara neden olan bir bellek miktarı seçtiğinizi fark ederseniz, bunu Sistem -> Ana Karttan değiştirebilirsiniz. Ayarları değiştirmeyi tamamladığınızda Tamam'ı tıklayın.

  9. Komut istemini ( C:\Windows\System32\cmd.exe) açın. "Your VM Name"5. adımda sanal makinenizi adlandırdığınız şeyle değiştirerek aşağıdaki komutları orada çalıştırın (örneğin "Mac") (tırnak işaretlerini saklayın):

    cd "C:\Program Files\Oracle\VirtualBox\"
    VBoxManage.exe modifyvm "Your VM Name" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
    VBoxManage setextradata "Your VM Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" C02L280HFMR7
    
  10. Artık sanal makineyi kullanmanız için her şey hazır. VirtualBox'ta, Başlat düğmesine tıklayın ve Mac için kurulum talimatlarını izleyin. Mac'i sanal makineye yükledikten sonra, iOS uygulamanızı tıpkı gerçek bir Mac'iniz gibi geliştirebilirsiniz.

Not: Sabit diskinizde yer kazanmak istiyorsanız, 4. adımda çıkardığınız ve 7. adımda kullandığınız VMDK dosyasını sıkıştırabilirsiniz. Bunu yapmak için üzerine sağ tıklayın, Özellikler'i seçin, Gelişmiş ... Sağ alttaki düğmesine basın ve "Disk alanından tasarruf etmek için içeriği sıkıştır" onay kutusunu işaretleyin. Bu, bu çok büyük dosyanın herhangi bir şeyin daha az iyi çalışmasını sağlamadan daha az disk alanı kaplamasını sağlayacaktır. Bunu yaptım ve VMDK dosyasının disk boyutunu hiçbir veri kaybetmeden 50GB'tan 40GB'a düşürdüm.


2
Vm iyi çalışıyor. Ama bir oyun makinesi olan benim makinemde çok yavaş.
Reuel Ribeiro

@ReuelRibeiro Bilgisayarınız için optimize edildiğinden emin olmak için sanal makinenizin yapılandırmasını kontrol etmek isteyebilirsiniz. İşte konuyla ilgili yararlı bir makale: hanselman.com/blog/…
Technoguyfication

2
9. adımda Apple
ID'mi

1
Bu işe yarayabilir, ancak en son xcode sürümü şu anda Google Drive'da bulunan IOS 10.11 (El Captain) ile uyumlu değildir. MacOS'un daha yeni bir sürümüne sahip misiniz?
CularBytes

1
@RahulShah Gerçek bir Mac'te yapabileceğiniz her şeyi yapabilirsiniz.
Ördek Donald

26

09 / 2017'den güncelleme

Mac sahibi olmadan React Native + Expo kullanarak iOS (ve aynı anda Android) uygulaması geliştirmek mümkündür . İOS uygulamanızı geliştirirken iOS Expo uygulaması içinde de çalıştırabileceksiniz . (Başkalarının erişmesi için bile yayınlayabilirsiniz, ancak yalnızca Expo uygulaması içinde çalışacaktır). İşte bağımsız uygulamanın nasıl oluşturulacağına dair Expo'dan bir sayfa .

Bu sayfadaki adımlar:

Bir : Yükleme expçalıştıraraknpm install -g exp

İki : app.json'u yapılandırın (bu satırlarda bir yerde):

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "17.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname"
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }

Üç : expPaketleyiciyi başlatexp start

Dört : koş exp build:androidveya exp build:ios.

Sizden bazı girdiler istenecektir. Android için seçebilirsiniz1) Let Expo handle the process! için anahtar deponuzun olup olmadığını (veya ne olduğunu bilmiyorsanız) seçebilirsiniz. İOS için Apple geliştirici kimlik bilgilerinizi girmeniz gerekecektir. Daha sonra dağıtım sertifikası sağlayabilir veya bunu fuarın halletmesine izin verebilirsiniz.

Beş : Arada bir geri gelip exp build:status, yapınızın tamamlanıp tamamlanmadığını kontrol etmek için komutu çalıştırmanız gerekecektir. Tamamlanırsa, size doğrudan bir bağlantı .apkveya .ipadosya sağlanacaktır .

Bu yaklaşımın tek dezavantajı, Swift'de iOS uygulaması yazmak kadar yerel olmayacağı ve zayıf yazılmış js, npm ile geliştirme sırasında karşılaşabileceğiniz sorunların üstesinden gelmeniz gerekecek ve bağımlılığı- başka bir kitaplığın belirli sürümüyle ilgili sorunlar ve diğer şeyler.


Bu, Qt ve JavaFXPorts gibi diğer çerçevelerle de mümkün müdür?
Daniel Ziltener

@DanielZiltener Ben de aşina değilim, ama cevabın hayır olduğunu düşünüyorum.
2018


13

Phonegap'i (Cordova) bir Mac olmadan iOS Uygulamaları geliştirmek için kullanabilirsiniz, ancak uygulamanızı App Store'a göndermek için yine de bir Mac'e ihtiyacınız olacaktır. Uygulamanızı Mac https://www.wenz.io/ApplicationLoader olmadan da yayınlayabilen bir bulut uygulaması geliştirdik . Şu anda beta sürümündeyiz ve hizmeti ücretsiz olarak kullanabilirsiniz.

Saygılarımızla, Steffen Wenz

(Sitenin yaratıcısıyım)


1
Wenz'in uygulama yükleyicisini kullanıyorum. Bunun için yalnızca yükleme iznine sahip özel bir Apple Kimliği oluşturdum. IPA'nızın imzalanması gerektiğinden, şifreniz sızdırılsa bile hala güvenlidir.
user1219721

Hizmetlerinize göndermek için bir Mac olmadan bir IPA dosyası oluşturmanın bir yolu var mı?
12 eşkenar dörtgen ızgarada köşesiz

12

Kısa cevap: teorik olarak EVET, ancak bu ÇOK İYİ bir arkadaşınız olmalı, ancak yine, kullanılmış bir mac-mini satın almayı tercih edebilirsiniz

TLDR: Uygulama gereksinimlerinize, geliştirme becerilerinize ve Apple'daki şansınıza bağlı olarak bu Mac'e gerçekten uzun bir süre ihtiyacınız olacak. Örneğin:

  1. Xcode'u ve gerekli SDK'ları ve Kitaplıkları kurmak için birkaç güne ihtiyacınız olabilir.
  2. Bu Geliştirici Hesabını almak biraz zaman alabilir, bazen isteğinizin incelenmesi için bile çok fazla bekleyebilirsiniz.
  3. Başvurunuzu ilk kez gönderdiğinizde, uygulamanızın incelenmesi için bir süre, belki birkaç haftaya kadar, hatta aylarca beklemeniz gerekecektir.
  4. Uygulamanız her reddedildiğinde, sorunlarınızı bulmanız ve düzeltmeniz gerekir (Apple'dan fazla yardım almadan, başka bir deyişle, ihlal ettiğiniz yönerge kuralını belirtmeniz gerekir), ardından uygulamanızı incelenmek üzere yeniden göndermeniz ve tekrar beklemeniz gerekir.
  5. Zaten dağıtılmış uygulamanız için bir yama uygulamayı her denediğinizde, uygulamanızı gözden geçirmeniz gerekecek ve daha önce yasal uygulamanızın artık yeni bir yönergeyi ihlal etme ihtimali var, bu nedenle yeniden gönderin ve bekleyin

Bu yüzden, benim deneyimlerime göre, bir iOS uygulamasının geliştirilmesi, gerçek kod geliştirme süresini dikkate almadan çok uzun bir prosedürdür. O kadar uzun bir Mac ödünç alabilir misin?


Ben teşekkür ederim böylece hem siz hem de diğer adam benim için çok açıklığa kavuşturmuştur
Cescy

1
Rica ederim. Deneyimsiz bir geliştirici için bir iOS uygulaması olarak gördüğüm kadarıyla uzun bir çekim ve büyük bir taahhüt. Önce size 25 dolara (ömür boyu geliştirme lisansı) mal olacak bir android uygulamasıyla başlayabilirsiniz.
yannicuLar


4

Ayrıca biraz para biriktirmek istiyorsanız Mac satın almanıza gerek yok. Bunu yapmanın başka yolları da var:

1.) Sanal makinede en son MacOS'u çalıştırmak için hemen hemen her işletim sistemini kullanabilirsiniz (YouTube'a bakın). Bu yöntemi VMWare ile pencerelerde herhangi bir sorun yaşamadan çok uzun zamandır kullanıyorum.

2.) Hackintosh. MacOS'u PC'nize yükleyin. Uyumlu bileşenlere sahip olmalısınız, ancak varsa, bu en iyi yol, çünkü VM'deki gecikmeleri ortadan kaldırıyorsunuz ... Bu sefer bunu kullanıyorum. Mükemmel. Dizüstü bilgisayarımda, ama lütfen bunu Apple'a söylemeyin çünkü pratikte bu yasadışı

3.) Minimum kullanıcı arayüzüne sahip basit uygulamalar yapıyorsanız, Theos'u kullanabilirsiniz . Ayrıca Theos ile cydia tweaks oluşturabilirsiniz. Tek bir sorun: kod işareti. App Store'da uygulama yayınlamak istiyorsanız, yine de MacOS'a sahip olmalısınız, ancak evde uygulama yapmak istiyorsanız , uygulamaları Apple ID ile imzalamak için CydiaImpactor'ı kullanabilirsiniz .

Tüm bu yolları kullandım ve hepsi işe yarıyor. Hackintosh'u kurarak çok fazla zaman harcamak istemiyorsanız, sanal makinem en iyi çözümdür.


3

React Native ve Ionic gibi çoğu çerçeve, sunucularında oluşturmanıza izin verir. Yani, derlemenize ve size .ipa dosyası sağlamanıza yardımcı olabilirler.

Sorun, uygulamanızı Apple App Store Connect'e göndermek için Xcode veya Uygulama yükleyiciye ihtiyacınız olmasıdır. Bunların ikisi de yalnızca OSX'te mevcuttur. Bu çözümün üstesinden gelmek için bildiğim 2 seçeneğiniz var

  1. Mac'i sanal olarak kiralayın. http://www.macincloud.com
  2. Uygulamanızı yüklemenize yardımcı olan web sitesini kullanın (.ipa dosyasına sahip olmanız gerekir). http://www.connectuploader.com

2

Uygulamanızı javascript ile geliştirmek için Smartface'i kullanabilir ve Mac olmadan doğrudan mağazalara dağıtabilirsiniz. Söyledikleri aşağıda.

Cloud Build modülü ile Smartface, uygulama dağıtımının tüm zorluklarını ortadan kaldırır. Kod imzalama sertifikalarını yönetme ve uygulamalarınızı imzalamak için bir Mac'e sahip olma konusunda endişelenmenize gerek yok. Smartface Cloud, tüm iOS sertifikalarınızı ve Android anahtar depolarınızı tek bir yerde depolayabilir ve imzalama ve oluşturma tamamen bulutta olur. Hangi işletim sistemini kullanırsanız kullanın, mağazaya hazır (veya kurumsal dağıtım) ikili dosyalar alabilirsiniz. Smartface sizi Mac'e bağımlı olmaktan kurtarır ve geliştirme için en sevdiğiniz işletim sistemini kullanmanıza olanak tanır.

https://www.smartface.io/smartface/


1

Deneyimim, Ionic Pro'nun ( https://ionicframework.com/pro ) Geliştirme ve Yayınlama işinin çoğunu yapabileceği, ancak yine de aşağıdaki adımlarda bulutta Mac veya Mac'e ihtiyacınız olduğu yönünde:

  • .p12 Sertifika dosyası oluştur
  • .ipa dosyasını App Store'a yükleyin

Sertifika dosyanızı oluşturduktan sonra, Ionic Pro'ya yükleyebilirsiniz. Bulutta uygun kimlik bilgileriyle .ipa dosyaları oluşturabilirsiniz. Ancak maalesef .ipa dosyasını App Store'a yüklemenin başka bir yolunu bulamadım, yalnızca Mac'ten Application Loader ile.

Bu yüzden, Mac'te geçirdiğim süre çok sınırlı olduğundan (Uygulama yayını başına birkaç dakika) bulut hesabında kullandığın kadar öde bir Mac kullanmaya karar verdim (yalnızca oturum açtığınız dakikalar için ödeme yaparsınız).


-7

XAMARIN CROSS Platformu

IDE Visual Studio ile çapraz bir platform olan Xamarin'i kullanabilir ve xamarin'i buna entegre edebilirsiniz. Xamarin'e kodlamak ve ios uygulamalarınızı C # kodu kullanarak oluşturmak çok basittir.


11
Evet, ancak derlemek için bir mac gerekiyor.
Maarten Peels
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.