Zbudować aplikację na iOS bez posiadania komputera Mac? [Zamknięte]

99

Proszę popraw mnie jeżeli się mylę.

Jestem nowy w programowaniu mobilnym i chciałbym stworzyć aplikację do przesłania do Apple Store.

Ale jestem mocno zniechęcony cenami Maców, o których myślę.

Powiedzmy, że dokładnie wiem, czego chcę i jak to zakodować.

Gdybym miał założyć konto programisty i uiścić opłatę - to pożycz mojego przyjaciela Maca, napisz kod i prześlij mój kod do Apple. Czy to wszystko, do czego potrzebuję Maca? A potem będę mógł uzyskać dostęp do wszystkich statystyk itp. Przez iTunes na moim komputerze z systemem Windows?

Czy ktoś może mi powiedzieć, że mam urojenia?

Cescy
źródło
2
można to osiągnąć w sposób, o którym mówisz, ale pomyśl o tym, czy Twoja aplikacja wymaga aktualizacji, drobnych błędów lub zmian? za każdym razem, gdy poprosisz znajomego o przysługę?
D-eptdeveloper,
5
Potrzebujesz komputera Mac do poważnego rozwoju systemu iOS. Kropka. A przecież wcale nie są takie drogie. I nie zapomnij o kilku urządzeniach z iOS do przetestowania - aplikacje, które nie zostały przetestowane na dostępnym sprzęcie, generalnie wykazują braki.
Eiko,
1
Część urojeniowa zaczyna się od „Wiem, jak to zakodować”… jeśli kodujesz siebie (tj. Nie pracujesz na zlecenie innych osób), będziesz potrzebować dużo testów i debugowania. Pomyśl o kilku tygodniach, aby uruchomić projekt, który warto komuś pokazać. Wypolerowanie go i uczynienie „godnym sklepu” będzie ciężką pracą. Naprawdę przychodzą mi do głowy najbardziej bezużyteczne aplikacje (tj. „Otoki witryn”), które są tworzone w ciągu jednego dnia na komputerze Mac, jeśli jesteś już doświadczonym programistą iOS.
Eiko,
Możliwe jest zbudowanie opartego na GCC łańcucha narzędzi iOS w systemie Linux. Xcode nie jest kompilatorem - jest potrzebny tylko do generowania certyfikatów w celu przesłania aplikacji do AppStore.
Croissant Paramagnetic
2
Możesz poszukać Hackintosha, który pozwala uruchomić Mac OS na procesorach Intela, ale myślę, że jest to nielegalne.
Borzh

Odpowiedzi:

32

Pozwólcie, że powiem wam krok po kroku kilka lat temu byłem w tej samej sytuacji.

Mamy więc dwie fazy

  1. Tworzenie aplikacji na iPhone'a / iPada (iOS)
  2. Tworzenie aplikacji na iPhone'a / iPada (iOS) i publikowanie w sklepie iTunes Store

1. Tworzenie aplikacji na iPhone / iPad (iOS)

Jeśli więc chcesz tylko tworzyć aplikacje na iOS, nie chcesz nic płacić,

Potrzebujesz tylko Mac + XCode IDE

  1. Kup komputer Mac Mini lub Mac Machine
  2. Utwórz konto programisty w Apple za darmo
  3. Po zalogowaniu się na konto programisty możesz pobrać plik .dmg Xcode IDE
  4. To wszystko.

Teraz wystarczy zainstalować Xcode i rozpocząć tworzenie aplikacji na iOS oraz testować / debugować za pomocą symulatora.

2. Tworzenie aplikacji na iPhone / iPad (iOS) i publikowanie w sklepie iTunes Store

za opublikowanie aplikacji w sklepie iTunes trzeba zapłacić (na przykład 99 USD rocznie).

Aby uzyskać pełną konfigurację programowania iOS, potrzebujesz

  1. Kup komputer Mac Mini lub Mac Machine
  2. Utwórz konto programisty w Apple za darmo
  3. Po zalogowaniu się na konto programisty możesz pobrać plik .dmg Xcode IDE
  4. zapłać 99 USD za publikowanie aplikacji w iTunes
  5. utwórz swoje certyfikaty do rozwoju / dystrybucji na swoim koncie Apple
  6. pobierz cały certyfikat na komputer Mac i zainstaluj w XCode za pomocą narzędzia Keychain
  7. Zdobądź co najmniej jedno urządzenie iOS
  8. Zarejestruj swoje urządzenie na swoim koncie Apple
  9. Teraz możesz tworzyć aplikacje na iOS, testować je na prawdziwym urządzeniu, a także publikować w iTunes Store
swiftBoy
źródło
Sprawdź wymagania dotyczące systemu iOS dla dewelopera
platformy Xamarin.xamarin.com/guides/cross-platform/getting_started/ ...
Ale pytanie brzmi konkretnie „bez posiadania komputera Mac?”…
PF4Public
28

W systemie Windows można używać komputera Mac na maszynie wirtualnej (prawdopodobnie działa to również w systemie Linux, ale nie testowałem). Maszyna wirtualna to w zasadzie program uruchamiany na komputerze, który umożliwia uruchamianie jednego systemu operacyjnego w oknie w innym. Upewnij się, że masz co najmniej 60 GB wolnego miejsca na dysku twardym. Wirtualny dysk twardy, który pobierzesz, zajmuje początkowo 10 GB, ale po zainstalowaniu wszystkich niezbędnych programów do tworzenia aplikacji na iOS jego rozmiar może łatwo wzrosnąć do 50 GB (na wszelki wypadek zalecam pozostawienie marginesu kilku GB).

Oto szczegółowe kroki, jak zainstalować maszynę wirtualną Mac w systemie Windows:

  1. Zainstaluj VirtualBox .

  2. Musisz włączyć wirtualizację w BIOS-ie. Aby otworzyć BIOS w systemie Windows 10, musisz zacząć od przytrzymania Shiftklawisza podczas naciskania przycisku Uruchom ponownie w menu Start. Następnie pojawi się niebieski ekran z kilkoma opcjami. Wybierz „Rozwiązywanie problemów”, następnie „Opcje zaawansowane”, następnie „Ustawienia oprogramowania układowego UEFI”, a następnie „Uruchom ponownie”. Następnie komputer uruchomi się ponownie i bezpośrednio otworzy BIOS. W starszych wersjach systemu Windows wyłącz komputer normalnie, przytrzymaj F2klawisz, uruchom ponownie komputer i nie zwalniaj, F2dopóki nie znajdziesz się w systemie BIOS. Na niektórych komputerach może być konieczne przytrzymanie innego klawisza niż F2.

  3. Teraz, gdy jesteś w systemie BIOS, musisz włączyć wirtualizację. To, które ustawienie należy zmienić, zależy od używanego komputera. Może się to różnić nawet między dwoma komputerami z tą samą wersją systemu Windows. Na moim komputerze musisz ustawić Intel Virtual Technologyw Configurationzakładce Enabled. Na innych komputerach może to być na przykład Security -> Virtualizationlub w Advanced -> CPU Setup. Jeśli nie możesz znaleźć żadnej z tych opcji, wyszukaj w Google . Nie zmieniaj niczego w BIOS-ie przypadkowo, ponieważ w przeciwnym razie może to spowodować problemy z komputerem. Po włączeniu wirtualizacji zapisz zmiany i wyjdź z systemu BIOS. Zwykle robi się to w zakładce.enable virtualization (the kind of computer you have)Exit

  4. Pobierz ten plik (nie mam powiązania z osobą, która go przesłała, ale sam go użyłem, więc jestem pewien, że nie ma żadnych wirusów). Jeśli link się zepsuje, opublikuj komentarz, aby dać mi znać, a spróbuję przesłać plik gdzie indziej. Hasło do otwarcia pliku 7Z to stackoverflow.com. Ten plik 7Z zawiera plik VMDK, który będzie działał jako dysk twardy maszyny wirtualnej Mac. Wyodrębnij ten plik VMDK. Jeśli problemem jest miejsce na dysku, po wyodrębnieniu pliku VMDK możesz usunąć plik 7Z, a tym samym zaoszczędzić 7 GB.

  5. Otwórz VirtualBox, który zainstalowałeś w kroku 1. Na pasku narzędzi naciśnij przycisk Nowy. Następnie wybierz nazwę dla swojej maszyny wirtualnej (nazwa nie jest ważna, nazwałem ją „Mac”). W "Typ" wybierz "Mac OS X", aw "Wersja" wybierz "macOS 10.13 High Sierra (64-bitowy)" (wersja Mac, którą zainstalujesz na maszynie wirtualnej to faktycznie Catalina, ale VirtualBox nie ma tej opcji jeszcze i działa dobrze, jeśli VirtualBox uważa, że ​​to High Sierra).

    Dobrym pomysłem (choć nie jest to wymagane) jest również przeniesienie pliku VMDK wyodrębnionego w kroku 4 do folderu wymienionego w „Folderze maszynowym” (na powyższym zrzucie ekranu tak będzie C:\Users\myname\VirtualBox VMs).

  6. Wybierz ilość pamięci, której może używać Twoja maszyna wirtualna. Spróbuj zrównoważyć tę kwotę, ponieważ zbyt mała ilość pamięci spowoduje, że maszyna wirtualna będzie miała niską wydajność, a zbyt duża pamięć spowoduje, że w systemie hosta (Windows) zabraknie pamięci, co spowoduje, że maszyna wirtualna i / lub inne programy, które Ty '' działają w systemie Windows do awarii. Na komputerze z 4 GB dostępnej pamięci 2 GB to dobra ilość. Nie martw się, jeśli wybierzesz złą kwotę, będziesz mógł ją zmienić w dowolnym momencie (z wyjątkiem sytuacji, gdy maszyna wirtualna jest uruchomiona).

  7. W kroku Dysk twardy wybierz opcję „Użyj istniejącego pliku wirtualnego dysku twardego” i kliknij małą ikonę folderu po prawej stronie listy rozwijanej. Otworzy się nowe okno. W tym nowym oknie kliknij przycisk „Dodaj” w lewym górnym rogu, co spowoduje otwarcie okna przeglądania. Wybierz plik VMDK, który pobrałeś i rozpakowałeś w kroku 4, a następnie kliknij „Wybierz”.

    Kiedy skończysz, kliknij „Utwórz”.

  8. Wybierz maszynę wirtualną z listy po lewej stronie okna i kliknij przycisk Ustawienia na pasku narzędzi. W System -> Procesor wybierz 2 procesory; iw Network -> Attached to, wybierz Bridged Adapter. Jeśli później zorientujesz się, że w kroku 6 wybrałeś ilość pamięci, która powoduje problemy, możesz to zmienić w System -> Płyta główna. Kiedy skończysz zmieniać ustawienia, kliknij OK.

  9. Otwórz wiersz polecenia ( C:\Windows\System32\cmd.exe). Uruchom tam następujące polecenia, zastępując to, "Your VM Name"co nazwałeś swoją maszyną wirtualną w kroku 5 (na przykład "Mac") (zachowaj cudzysłowy):

    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. Teraz wszystko jest gotowe do użycia maszyny wirtualnej. W VirtualBox kliknij przycisk Start i postępuj zgodnie z instrukcjami instalacji dla komputerów Mac. Po zainstalowaniu komputera Mac na maszynie wirtualnej możesz opracować aplikację na iOS, tak jak na prawdziwym komputerze Mac.

Uwaga: Jeśli chcesz zaoszczędzić miejsce na dysku twardym, możesz skompresować plik VMDK, który został rozpakowany w kroku 4 i użyty w kroku 7. Aby to zrobić, kliknij go prawym przyciskiem myszy, wybierz Właściwości, kliknij Zaawansowane ... w prawym dolnym rogu i zaznacz pole wyboru „Kompresuj zawartość, aby zaoszczędzić miejsce na dysku”. Spowoduje to, że ten bardzo duży plik zajmie mniej miejsca na dysku, bez pogorszenia działania niczego. Zrobiłem to i zmniejszyłem rozmiar dysku pliku VMDK z 50 GB do 40 GB bez utraty danych.

Kaczor Donald
źródło
2
Vm działa dobrze. Ale na mojej maszynie, która jest maszyną do gier, działa bardzo wolno.
Reuel Ribeiro
@ReuelRibeiro Możesz chcieć sprawdzić konfigurację swojej maszyny wirtualnej, aby upewnić się, że jest zoptymalizowana dla twojego komputera. Oto pomocny artykuł na ten temat: hanselman.com/blog/…
Technoguyfication
2
W kroku 9 musiałem dodać VBoxManage setextradata "Your VM Name" "VBoxInternal / Devices / efi / 0 / Config / DmiSystemSerial" W1234567980, aby móc zalogować się przy użyciu mojego Apple ID
ikleiman
1
Chociaż może to zadziałać, najnowsza wersja xcode nie jest zgodna z systemem IOS 10.11 (El Captain), który jest obecnie na dysku Google. Czy masz nowszą wersję systemu MacOS?
CularBytes
1
@RahulShah Możesz zrobić wszystko, co możesz zrobić na prawdziwym Macu.
Kaczor Donald
26

Aktualizacja z 09/2017

Możliwe jest tworzenie aplikacji na iOS (i Androida jednocześnie) przy użyciu React Native + Expo bez posiadania Maca. Będziesz także mógł uruchamiać swoją aplikację na iOS w aplikacji iOS Expo podczas jej tworzenia. (Możesz nawet opublikować go, aby inne osoby miały do ​​niego dostęp, ale będzie działać tylko w aplikacji Expo). Oto strona z Expo o tym, jak wygenerować samodzielną aplikację.

Kroki z tej strony:

Jeden : Zainstaluj exp, uruchamiającnpm install -g exp

Dwa : Skonfiguruj app.json (gdzieś w tych liniach):

{
   "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"
    }
   }
 }

Trzy : Rozpocznij exppakowanie zexp start

Cztery : biegnij exp build:androidlub exp build:ios.

Zostaniesz poproszony o wprowadzenie danych. W przypadku Androida możesz wybrać 1) Let Expo handle the process!, czy nie masz magazynu kluczy (lub nie wiesz, co to jest). W przypadku iOS będziesz musiał wprowadzić poświadczenia programisty Apple. Następnie możesz dostarczyć certyfikat dystrybucyjny lub pozwolić expo się nim zająć.

Pięć : Raz na jakiś czas będziesz musiał wrócić i uruchomić exp build:statuspolecenie, aby sprawdzić, czy twoja kompilacja została ukończona. Jeśli pełna będzie wyposażony bezpośredni link do .apklub .ipapliku.

Jedyną wadą tego podejścia jest to, że nie będzie ono tak natywne, jak pisanie aplikacji na iOS w Swift, i będziesz musiał pogodzić się z paradą problemów, na które możesz napotkać podczas programowania ze słabo wpisanymi js, npm i jego zależnością. w sprawach dotyczących konkretnej-wersji-jakiejś-innej-biblioteki i innych rzeczy.

cokolwiek
źródło
Czy jest to również możliwe w przypadku innych frameworków, np. Qt i JavaFXPorts?
Daniel Ziltener,
@DanielZiltener Ja też nie jestem zaznajomiony, ale myślę, że odpowiedź brzmi: nie.
cokolwiek,
13

Możesz używać Phonegap (Cordova) do tworzenia aplikacji na iOS bez komputera Mac, ale nadal będziesz potrzebować komputera Mac, aby przesłać aplikację do App Store. Opracowaliśmy aplikację w chmurze, która może również publikować Twoją aplikację bez komputera Mac https://www.wenz.io/ApplicationLoader . Obecnie jesteśmy w fazie beta i możesz korzystać z usługi za darmo.

Pozdrawiam Steffen Wenz

(Jestem twórcą strony)

Steffen Wenz
źródło
1
Używam programu ładującego Wenz. W tym celu utworzyłem specjalny identyfikator Apple ID z tylko uprawnieniami do przesyłania. Ponieważ Twój IPA musi być podpisany, nadal jest bezpieczny, nawet jeśli Twoje hasło zostanie ujawnione.
user1219721
czy w ogóle istnieje możliwość wygenerowania pliku IPA bez komputera Mac do przesłania do usług?
12 rombów w siatce bez rogów
12

Krótka odpowiedź: teoretycznie TAK, ale to musi być twój BARDZO DOBRY przyjaciel, ale znowu możesz chcieć kupić używanego mac-mini

TLDR: Będziesz potrzebować tego Maca przez naprawdę długi czas, w zależności od wymagań aplikacji, umiejętności programistycznych i szczęścia w Apple. Na przykład:

  1. Skonfigurowanie Xcode oraz wymaganych zestawów SDK i bibliotek może zająć kilka dni.
  2. Uzyskanie tego konta programisty może zająć trochę czasu, czasami możesz czekać zbyt długo, nawet na rozpatrzenie wniosku.
  3. Kiedy składasz wniosek po raz pierwszy, będziesz musiał poczekać, może nawet kilka tygodni, a nawet miesięcy, na sprawdzenie aplikacji.
  4. Za każdym razem, gdy Twoja aplikacja zostanie odrzucona, będziesz musiał znaleźć i naprawić swoje problemy (bez większej pomocy ze strony Apple, innej niż wskazanie zasady wytycznej, którą złamałeś), a następnie ponownie przesłać aplikację do przeglądu i poczekać ponownie.
  5. Za każdym razem, gdy próbujesz zastosować poprawkę do już wdrożonej aplikacji, będziesz musiał sprawdzić swoją aplikację i istnieje szansa, że ​​Twoja wcześniej legalna aplikacja łamie nowe wytyczne, więc prześlij ją ponownie i poczekaj

Tak więc, z mojego doświadczenia wynika, że ​​tworzenie aplikacji na iOS jest bardzo długotrwałą procedurą, nawet bez uwzględnienia faktycznego czasu tworzenia kodu. Czy możesz pożyczyć Maca na tak długo?

yannicuLar
źródło
Zarówno ty, jak i ten drugi facet dużo dla mnie
wyjaśniliście,
1
Nie ma za co. Sposób, w jaki to widzę, aplikacja na iOS dla niedoświadczonego programisty, to długa szansa i wielkie zaangażowanie. Możesz zacząć od aplikacji na Androida, która będzie kosztować 25 USD (dożywotnia licencja deweloperska).
yannicuLar
11

Aktualizacja Intel XDK nie jest już dostępna.

Możesz używać Intel XDK, dzięki któremu możesz tworzyć i publikować aplikacje na iOS bez komputera Mac.

Kliknij tutaj, aby uzyskać szczegółowe informacje.

Hemant Singh Rathore
źródło
10
Intel XDK odszedł ... RIP
Nowdeen
4

Jeśli chcesz zaoszczędzić trochę pieniędzy, nie musisz kupować komputera Mac. Istnieją inne sposoby, jak to zrobić:

1.) Możesz użyć praktycznie dowolnego systemu operacyjnego, aby uruchomić najnowszy MacOS na maszynie wirtualnej (spójrz na YouTube). Używam tej metody naprawdę długo bez żadnych problemów na Windowsie z VMware.

2.) Hackintosh. Zainstaluj MacOS na swoim komputerze. Musisz mieć kompatybilne komponenty, ale jeśli masz, to jest najlepszy sposób, bo eliminujesz lagi w VM ... Używam tego w tym czasie. Idealny. Na moim laptopie, ale proszę, nie mów tego Apple, ponieważ praktycznie jest to nielegalne

3.) Jeśli tworzysz proste aplikacje z minimalnym interfejsem użytkownika, możesz użyć Theos . Również z Theosem możesz tworzyć poprawki Cydii. Tylko jeden problem: kodowanie. Jeśli chcesz opublikować aplikację w App Store, nadal musisz mieć MacOS, ale jeśli chcesz tworzyć aplikację w domu, możesz użyć CydiaImpactor do podpisania aplikacji za pomocą Apple ID.

Użyłem wszystkich tych sposobów i wszystko działa. Przez moją maszynę wirtualną to najlepsze rozwiązanie, jeśli nie chcesz spędzać dużo czasu na instalacji Hackintosha.

Samuel Tulach
źródło
3

Większość frameworków, takich jak React Native i Ionic, umożliwia budowanie na ich serwerze. Oznacza to, że mogą pomóc w skompilowaniu i dostarczeniu pliku .ipa.

Problem polega na tym, że potrzebujesz Xcode lub programu ładującego aplikację, aby przesłać swoją aplikację do Apple App Store Connect. Oba są dostępne tylko w systemie OSX. Aby przezwyciężyć to rozwiązanie, masz 2 opcje, o których jestem świadomy

  1. Wypożycz komputer Mac wirtualnie. http://www.macincloud.com
  2. Skorzystaj ze strony internetowej, która pomoże Ci przesłać aplikację (musisz mieć plik .ipa). http://www.connectuploader.com
Valehelle
źródło
2

Możesz użyć Smartface do tworzenia aplikacji za pomocą javascript i wdrażania w sklepach bezpośrednio bez komputera Mac. To, co mówią, jest poniżej.

Dzięki modułowi Cloud Build Smartface eliminuje wszelkie kłopoty związane z wdrażaniem aplikacji. Nie musisz martwić się o zarządzanie certyfikatami do podpisywania kodu i posiadanie komputera Mac do podpisywania aplikacji. Smartface Cloud może przechowywać wszystkie Twoje certyfikaty iOS i pliki kluczy Android w jednym miejscu, a podpisywanie i budowanie odbywa się w pełni w chmurze. Niezależnie od używanego systemu operacyjnego możesz uzyskać pliki binarne gotowe do przechowywania (lub dystrybucji dla przedsiębiorstw). Smartface uwalnia Cię od blokady Maca i pozwala na używanie ulubionego systemu operacyjnego do programowania.

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

Tempeck
źródło
1

Z mojego doświadczenia wynika, że ​​Ionic Pro ( https://ionicframework.com/pro ) może wykonać większość zadań związanych z programowaniem i publikowaniem, ale nadal potrzebujesz komputera Mac lub Mac w chmurze w następujących krokach:

  • utwórz plik .p12 Certification
  • prześlij plik .ipa do App Store

Po utworzeniu pliku certyfikacji, możesz przesłać go do Ionic Pro. Możesz tworzyć pliki .ipa z odpowiednimi poświadczeniami w chmurze. Ale niestety nie znalazłem innego sposobu na przesłanie pliku .ipa do App Store, tylko z Application Loaderem z Maca.

Postanowiłem więc użyć Maca z płatnością zgodnie z rzeczywistym użyciem na koncie w chmurze (płacisz tylko za minuty, w których jesteś zalogowany), ponieważ czas, który spędzam na Macu jest bardzo ograniczony (kilka minut na publikację aplikacji).

gaborp
źródło
-7

Platforma XAMARIN CROSS

Możesz użyć Xamarin, jego platformy wieloplatformowej z IDE Visual Studio i zintegrować z nią Xamarin. Bardzo proste jest kodowanie w Xamarin i tworzenie aplikacji na iOS przy użyciu kodu C #.

Abhishek Pathak
źródło
11
Tak, ale kompilacja wymaga komputera Mac.
Maarten Peels