Jak opracować React Native iOS Apps w systemie Windows za pomocą Hackintosha (cóż, w pewnym sensie)

Witaj średni! To moja pierwsza historia, ale chciałbym przejść od razu do gry.

Jestem trochę sfrustrowany. Potrzebuję fizycznego komputera Mac i iPhone'a, aby móc opracować program iOS React Native.

Mam na myśli MacBooka i iPhone'a, mam go. Musiałem też udostępnić moje repozytorium MacBookowi, a następnie uruchomić mój React Native Builder i React Native Packager, co jest dość gadatliwe i kiepskie. Gwizd.

Poza tym chcę pracować na stacji roboczej, mam stację roboczą Xeon i to smutne, że musiałem pożegnać się z klawiaturą i myszą, a tym samym pożegnać się z wydajnością.

Nawet Xamarin oferował zdalny symulator iOS i agenta kompilacji, abyśmy mogli czerpać przyjemność z programowania na naszym głównym komputerze, a następnie wypuszczać kompilację na naszym zdalnym środowisku Mac. I wątpię, aby zespół RN miał powiew wiatru, aby tak się stało.

Więc wycisnąłem trochę mocy mózgu i ostatecznie wyszedłem z rozwiązania, które jest bardzo, bardzo zwariowane, szalone i leniwe. A oto punkty, o których myślałem:

Dobry 1: Działa uniwersalnie na każdym komputerze x86_64 bit z włączoną wirtualizacją, pod warunkiem, że wykonałeś dokładnie te kroki.

The Good 2: Możesz łatwo pozbyć się środowiska. Możesz także sklonować środowisko i przenieść je gdzie indziej.

Zły 1: Po prostu działa!

Zły 2: Nie polecam uruchamiania innych programów Mac poza XCode.

The Bad 3: Nie oczekuj, że procesory AMD będą przez to znacznie działać.

Ugly 1: Potrzebujesz do tego bardzo mocnego, potwornego komputera, aby uzyskać zaledwie ułamek wydajności na prawdziwym komputerze Mac.

Ugly 2: Brak przyspieszenia sprzętowego, więc nie spodziewaj się uruchamiania i debugowania z nim kontekstu OpenGL ES.

Jeśli jesteś prawdziwym mężczyzną, zdobądź komputer Mac. W przeciwnym razie teraz odkryjemy podróż do Hack-in-sh-sh!

(Ostrzeżenie: Ćwiczenie Hackintosha stanowi naruszenie umowy EULA zarówno oprogramowania, jak i sprzętu Apple, i możesz stanąć wobec zarzutów i procesów sądowych, mimo że nikt nie był w ciągu ostatnich 10 lat, ale jakaś firma, ale nie jesteśmy ograniczeni cokolwiek z naszym komputerem, w tym instalowanie różnych systemów operacyjnych, więc przygotuj się i zdecyduj, czy chcesz nadal wchodzić w legalną szarą strefę)

Warunek wstępny

Jak wspomniałem wcześniej, naprawdę potrzebujesz bardzo mocnego i wydajnego komputera! Mam stację roboczą Xeon, ale prawie nie działa dobrze, wyobraź sobie, jaki to był koszmar, żeby się krzątał, co?

Ponadto potrzebujesz dysku SSD, chyba że masz cierpliwość, aby poczekać więcej niż 5 minut, aby dostać się do komputera Mac VM z dyskiem HDD.

Poczekaj minutę! VM. Hmm… Maszyna wirtualna? Zgadłeś, prawda? Zgadza się, do tego potrzebujemy VMWare.

Krok 1: Pobierz obraz instalacyjny komputera Mac

Bez tego nie bylibyśmy w stanie nic zrobić ...

Jeśli masz przyjaciela, który ma komputer Mac, pożycz jego maszynę…

Pobierz macOS Sierra z App Store…

Przejdź do trybu online i znajdź rytuał zgrywania tego obrazu instalacyjnego do przenośnego formatu DMG / ISO.

Nie ujawniłbym takiej metody, ponieważ nie chcę mieć żadnych problemów ~ ¯ \ _ (ツ) _ / ¯

Przenieś końcowy plik DMG / ISO na główny komputer. Oczywiście, że będziemy tego potrzebować lub jak…

Krok 2: Pobierz VMWare Player

Jeśli nie masz VMWare Workstation, czego większość z nas nie ma, będziemy musieli kontynuować pobieranie VMWare Player.

Po prostu zainstaluj. Nie powinno być żadnych problemów.

Krok 3: Pobierz Unlocker

Dobra, to nasz pierwszy hack.

Zasadniczo VMWare zablokowało podstawowe opcje uniemożliwiające jednoczesne działanie OSX i EFI (hardcode, serial, SMB itp.) Na dowolnych instancjach maszyny wirtualnej na wszystkich hiperwizorach VMWare oprócz VMWare Fusion.

Będziemy musieli go „odblokować” poprzez załatanie kilku rzeczy, aby Hackintosh działał.

Po pobraniu plików, klikając „Klonuj lub pobierz”, rozpakuj go, znajdź pliki o nazwie „win-install.cmd” i „win-update-tools.cmd”.

Kliknij prawym przyciskiem myszy „win-install.cmd” i wybierz „Uruchom jako administrator”, to samo dotyczy „win-update-tools.cmd”. Jest to wymagane, aby uzyskać dostęp do rejestru systemu Windows i zatrzymać usługi VMWare w celu przeprowadzenia łatania.

Krok 4: Utwórz nową maszynę wirtualną

Otwórz swój VMWare Player i po prostu w menu wybierz Utwórz nową maszynę wirtualną.

Następnie wybierz plik obrazu płyty instalacyjnej, który właśnie przesłałeś.

Następnie musimy wybrać „Apple Mac OS X” i wybrać odpowiednią wersję. Tutaj na przykład używam macOS Sierra, więc było to „macOS 10.12”, jeśli używasz El Capitan lub Yosemite, uzyskaj odpowiednią wersję.

Przejdź wszystkie te opcje. Pamiętaj, aby skonfigurować maszynę wirtualną, zmieniłem liczbę rdzeni, ale przez większość czasu było to OK dla masy.

Krok 5: Zmodyfikowanie pliku .vmx

Będziemy musieli obejść ograniczenia nałożone przez VMWare, o których wspomniałem w kroku 3. Musimy dodać wpis do pliku konfiguracyjnego maszyny wirtualnej. Lub napotkasz zrzut podstawowy podczas uruchamiania maszyny wirtualnej.

Domyślnie znajduje się w „~ / Documents / Virtual Machine / / .vmx”, jeśli nie zmieniłeś lokalizacji.

Otwórz i dodaj następujący tekst na samym końcu pliku:

smc.version = „0”

Krok 6: Uruchom mnie

Uff, co za ciężka praca tutaj. Teraz nadszedł czas na uruchomienie instalacji.

♫ Jeśli mnie uruchomisz, nigdy nie przestanę ♫

Nie powinno być żadnych problemów. Powinieneś być w stanie zobaczyć fantazyjne logo Apple.

(YMMV)

I ekran wyboru języka.

Ekran wyboru języka

Wybierz własny język. Następnie będziemy musieli kliknąć Narzędzia-> Narzędzie dyskowe. Sformatuj dysk wirtualny na HFS.

Zobacz wideo z tego: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Następnie możemy przystąpić do instalacji. Zazwyczaj zajmuje to około 20 minut. Podczas długotrwałego oczekiwania przygotuj i zrób sobie filiżankę kawy i poczekaj do końca. Automatyczny restart jest zaplanowany po zakończeniu i zobaczysz ekran powitalny.

Zobacz w akcji: https://puu.sh/w46Pw/519687fc0d.webm

Krok 7: Ustaw mnie

Ekran powitalny

Zakończ to tak, jak zwykle z nowym komputerem Mac. Nie włączaj usługi lokalizacyjnej i nie loguj się jeszcze do Apple ID. Nie wysyłaj żadnych danych do Apple, a także w celu zwiększenia ukrywania naszej konfiguracji Hackintosh.

Musimy również zainstalować Narzędzia VMWare. Odmontuj dysk OSX Base System w wyszukiwarce. Następnie kliknij Player-> Zarządzaj-> Zainstaluj narzędzia VMWare. Instalując to zyskujesz ogromny wzrost wydajności, ale wciąż ledwo w naszych oczach.

Zobacz: https://puu.sh/w4a2m/314480bc99.webm

Gratulacje! Masz teraz w pełni funkcjonalną maszynę wirtualną Hackintosh! Przejdziemy teraz do sekcji dla programistów…

Za chwilę skonfigurujemy niezbędne oprogramowanie po naszej stronie Hackintosh…

Potrzebujemy…

Napar. Oczywiście. Dla NodeJS i NPM oraz React Native.

Przędza, aby przyspieszyć czas instalacji naszego pakietu, chyba że używasz go tak jak ja.

Xcode do kompilacji React Native Host.

Krok 1: Zainstaluj Xcode

Potrzebujesz do tego identyfikatora Apple ID, nie nie programisty, zwykły jest w porządku.

Zobacz filmy:

https://puu.sh/w4b8y/665e3fa868.webm

https://puu.sh/w4b8t/07ceee8b38.webm

Poczekaj, aż się skończy. Nie powinno to zająć zbyt długo, masz przewodowy dostęp do Internetu NAT. Czy chcesz zagrać w Safari lub inne aplikacje? (Pomimo okropnego wykonania)

Krok 2: Zainstaluj Brew i Node (oraz Yarn i RN)

Kliknij powyższy link, aby uzyskać polecenie jako pierwsze.

To powinno być łatwe. Biorąc pod uwagę, że zainstalowałeś VMWare Tools, schowek jest domyślnie dwukierunkowy, więc możesz skopiować go po stronie Windows i zrzucić na stronę Mac.

Otwórz terminal i wklej polecenie podane przez Brew. Wprowadź hasło, aby zezwolić na instalację. Wszystko zostanie zautomatyzowane i powinno zająć mniej niż 10 minut.

Weź to jako przykład: https://puu.sh/w4atb/acbf000b84.webm

(Naciśnij WinKey + spacja, aby otworzyć wyszukiwanie Spotlight, naciśnij WinKey + V, aby wkleić)

Instalowanie węzła i NPM:

$ brew install nodejs

https://puu.sh/w4aOv/f6b6e35234.webm

Instalowanie przędzy:

Przędza do instalacji naparu

https://puu.sh/w4aOb/0eb124b1d5.webm

Zainstaluj RN:

$ npm -g zainstaluj reaguj-natywny-cli

https://puu.sh/w4aSC/5524d0705b.webm

Krok 3: Wejdź do swojego projektu

Na razie nie skopiowałem mojego oryginalnego repozytorium, ale zamiast tego stworzyłem nowy projekt RN. Jeśli przeniosłeś projekt, masz wszystko skonfigurowane idealnie.

Istnieją dwa sposoby prowadzenia projektu; Metoda 1: Przejdź do folderu projektu, kliknij ios, otwórz xcodeproj, kliknij przycisk uruchamiania w Xcode IDE; Metoda 2: Przejdź do folderu projektu w terminalu, wpisz „React-native run-ios” i poof, gotowe.

Ostatni krok: uruchom symulator

Powodzenie! Działa idealnie! Tak!

Możesz spróbować włączyć ponowne ładowanie na gorąco, zmodyfikować część kodu i sprawdzić, czy się zmieni.

Potem wszystko powinno działać jak urok!

Brawo! (Pamiętaj, klawisz Command == klawisz Windows)

Nie próbowałem uruchamiać ich na urządzeniach fizycznych, ale teoretycznie potrzebujesz tylko przejściówki USB, a Xcode lub iTunes powinny być w stanie rozpoznać twoje urządzenia.

Więc nie mówiąc już o legalności pomiędzy, myślę, że ten Hackintosh to dość fantazyjny hack, aby uzyskać rozwój iOS w Windows bez kupowania drogiego Mac Pro / MacBook Pro.

Niektórzy mogą nawet zainstalować rzeczywistą dystrybucję Hackintosha na sprzęt typu bare metal, taki jak te ultrabooki, Dell XPS 15 lub ZenBook, w ten sposób można to samo osiągnąć, ale jest to bardziej niebezpieczne i straciłeś środowisko Windows (chyba że masz włączoną funkcję podwójnego rozruchu - Większość z nas nie).

Z niecierpliwością oczekuję, że zespół RN wyda nowy zestaw narzędzi dla twórców komputerów Mac / Windows, aby uzyskać lepsze wrażenia programistyczne przy jednoczesnym korzystaniu z najbardziej komfortowych narzędzi własnych. Mówią, że to ciekawy pomysł i czeka na PR.

Wątpię, że to moja odpowiedź na to pytanie. W każdym razie dziękuję za przeczytanie tego artykułu (bardziej jak samouczek). Z pewnością będzie łatwiej, jeśli masz hojność, aby podzielić się swoim pomysłem, zrób to w sekcji komentarzy, czekam na twoją reakcję. Miłego dnia z moimi hackami!

(Edytowane w 13/1)

Pozdrowienia! Myślę, że minęło dużo czasu, odkąd to napisałem. Teraz odkryłem zupełnie nowy świat dotyczący tworzenia aplikacji mobilnych na maszynie wirtualnej Hackintosh. Dzięki najnowszemu rozwojowi React Native oraz wykorzystaniu Expo i połączenia tylko z hostem, możemy mieć jeszcze słodsze środowisko programistyczne, abyś mógł ostatecznie wybrać IDE i serwer pakietów hostowany w systemie Windows.

To zastąpi krok 3 w samouczku, o którym wspomniałem powyżej. Przedstawię też jeszcze jedną sztuczkę, dzięki której maszyna wirtualna będzie w pełni wciągająca w tworzenie systemu iOS.

Zasadniczo potrzebujesz tylko CRNA i najnowszej wersji Expo / React Native (mówiąc o 0,52 w momencie pisania), to wszystko. Jeśli masz istniejącą aplikację uruchomioną pod CRNA, może również działać bezbłędnie.

To jest bardzo proste. (Zakładam, że będziesz używał Yarn, powinien być podobny do NPM) Uruchom program pakujący CRNA w Windows, używając PowerShell lub CMD:

Uruchomienie przędzy Windows $ start
...
Aby wyświetlić aplikację z przeładowaniem na żywo, wskaż aplikację Expo na ten kod QR.
Skaner QR znajdziesz na karcie Projekty w aplikacji.

Lub wpisz ten adres w pasku wyszukiwania aplikacji Expo:
exp: // : 19000
Twój telefon musi być w tej samej sieci lokalnej, co ten komputer.
Aby uzyskać linki do zainstalowania aplikacji Expo, odwiedź https://expo.io.
Pojawią się dzienniki z udostępniania aplikacji. Naciśnij Ctrl + C w dowolnym momencie, aby zatrzymać.
›Naciśnij a, aby otworzyć urządzenie lub emulator Androida.
 ›Naciśnij q, aby wyświetlić kod QR.
 ›Naciśnij r, aby ponownie uruchomić program pakujący, lub R, aby ponownie uruchomić program pakujący i wyczyścić pamięć podręczną.
 ›Naciśnij d, aby przełączyć tryb programowania. (aktualny tryb: programowanie)

To będzie port, którego używamy.

Następnie spróbuj znaleźć adres swojego hosta. (Różne maszyny mają różne IP, YMMV)

OSXVM $ ifconfig
...
en0: flags = 8863  mtu 1500
opcje = b 
eter 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 zabezpieczony zakres 0x4
inet 192.168.67.128 maska ​​sieci 0xffffff00 broadcast 192.168.67.255
Opcje nd6 = 201 
media: autoselect (1000baseT )
status: aktywny

Dla mnie jest to adres hosta. Ale musisz odrzucić ostatni bajt i dołączyć 1.

Tak więc adres IP hosta to 192.168.67.1. Zanotuj to najpierw.

Następnie aktywujemy tajny sos przygotowany przez inżynierów Apple.

Począwszy od XCode 9, tworząc prosty katalog w katalogu głównym Mac HD, możesz uzyskać dostęp do wewnętrznego menu symulatora iOS. Starsze wersje nie mają tej funkcji AFAIK.

Najpierw zamknij wszystkie swoje symulatory. Następnie po prostu wpisz to w swoim terminalu.

OSXVM $ sudo mkdir / AppleInternal
(Twoje hasło)

To jest to! Teraz sprawdź, czy jest dostępne menu wewnętrzne, uruchamiając symulator i poszukaj tego:

W rzeczywistości jest to również uniwersalne dla prawdziwych komputerów Mac! Aby uzyskać informacje na temat tego menu wewnętrznego, zapoznaj się z tym artykułem Medium. Ale bardziej skupiamy się na trybie pełnoekranowym, dlatego właściwie możesz przynieść swój XCode wraz z symulatorem na nowym wirtualnym pulpicie:

Jeśli miałeś problem z uprawnieniami, a szczególnie użytkownicy High Sierra, musisz utworzyć ten folder w trybie odzyskiwania. Po prostu kliknij Utility i Terminal, ale będziesz musiał przenieść swój główny komputer Mac HD, to również zadziała.

Teraz przystąpimy do instalacji klienta Expo w (dowolnym) środowisku symulatora.

Ten krok jest bardzo trywialny, dlatego polecam przeczytanie tego z oficjalnego dokumentu Expo:

Po zainstalowaniu aplikacji Expo otwórz ją w Symulatorze.

Następnie kliknij „Plus” i wpisz adres hosta, ale najpierw będziemy musieli sformatować go tak, aby expo rozpoznał:

Format to:

exp: // : 

Dla mnie to znaczy: „exp: //192.168.67.1: 19000”

Kliknij otwórz, a jeśli zobaczysz pakiet budowany po stronie Windows Dev PC, a następnie GRATULACJE, będziesz mógł zdobyć środowisko symulatora aplikacji. Jednak HMR nie jest włączony, ale domyślnie jest to Live Reload. Jeśli potrzebujesz, przejdź do Sprzęt-> Potrząśnij gestem i zmień go.

Ostatnim krokiem jest aktywacja trybu pełnoekranowego, aby był bardziej wciągający. Jeśli kliknięcie elementu w menu wewnętrznym jest dla Ciebie łatwe i trywialne, po prostu kliknij zielony przycisk pełnego ekranu.

https://giant.gfycat.com/AncientPepperyAdamsstaghornedbeetle.mp4

I to wszystko! Możesz nawet współpracować z Genymotion! To bardzo duży wzrost wydajności!

https://giant.gfycat.com/EnergeticUltimateAntlion.mp4

To koniec aktualizacji. Mam nadzieję, że jesteś szczęśliwy w podróży! Expo jest rzeczywiście potężnym narzędziem i musimy je pielęgnować. Nie ma czegoś takiego jak darmowy lunch. Proszę rozważyć darowizny na projekt Expo. Chcą pieniędzy, aby utrzymać projekt i opłacić (zbudować) serwer! (Niestety, nie zaproponowali jeszcze żadnej metody)

I proszę, Apple, nie mów swojemu adwokatowi, aby skontaktował się ze mną i doprowadził mnie do problemów prawnych.