Hur man utvecklar React Native iOS-appar i Windows med Hackintosh (ja, typ av)

Hej Medium! Så det här är min första historia, men jag skulle vilja komma direkt in i spelet.

Jag är ganska frustrerad Jag kräver en fysisk Mac och iPhone för att kunna utveckla iOS React Native.

Jag menar, jag har MacBook och iPhone, jag har det. Och jag var tvungen att dela min repo till min MacBook och sedan köra min React Native Builder och React Native Packager, som är ganska ordalt och lamt. Bua.

Dessutom vill jag arbeta i en arbetsstation, jag har en Xeon-arbetsstation och det är sorgligt att jag var tvungen att säga adjö till mitt tangentbord och mus och därmed farväl till produktiviteten.

Till och med Xamarin erbjöd en fjärr iOS Simulator och build agent så att vi kunde njuta av att utveckla på vår huvuddator och sedan trycka på build på vår fjärr Mac-miljö. Och jag tvivlar på att RN-teamet skulle ha brisen för att få det att hända.

Så jag pressade lite av min hjärnkraft och kom slutligen ut från en lösning, som är väldigt, väldigt galet, galet och lat. Och här är de punkter jag har tänkt på:

Det goda 1: Det fungerar universellt, i alla x86_64 bitars datorer med virtualisering aktiverad, förutsatt att du har följt stegen tydligt.

The Good 2: Du kan bortskaffa miljön enkelt. Du kan också klona en miljö och flytta den någon annanstans.

The Bad 1: It, Just, fungerar!

The Bad 2: Jag rekommenderar inte att du kör några andra Mac-program utöver XCode.

The Bad 3: Förvänta dig inte att AMD-CPU: er kommer att köra mycket över det här.

The Ugly 1: Du behöver en väldigt nötkött, monströs dator för att bara få en bråkdel av prestandan på en riktig Mac.

The Ugly 2: Ingen maskinvaruacceleration, så förvänta dig inte att köra och felsöka OpenGL ES-sammanhang med det.

Om du är en riktig man, skaffa en Mac. Annars kommer vi nu att upptäcka resan till Hack-in-to-sh!

(Varning: Att öva på Hackintosh är en kränkning av EULA för både Apple-programvara och hårdvara, och du kan komma att anklagas och stämningar trots att ingen har varit de senaste tio åren men ett företag gör det, men vi är inte begränsade till att göra någonting med vår dator, inklusive installation av olika operativsystem, så stag själv och bestäm om du vill fortsätta kliva på en laglig grå zon)

Nödvändig förutsättning

Som jag nämnt tidigare behöver du faktiskt en mycket stark och kraftfull dator! Jag har en Xeon-arbetsstation, men den går knappt bra, föreställ dig vilken typ av mardröm det var att få den hustling, va?

Du behöver också en SSD, såvida du inte har tålamod att vänta mer än 5 minuter för att komma in på din Mac VM med din HDD.

Vänta en minut! VM. Hmm ... Virtuell maskin? Har du gissat att det inte är du? Det stämmer, vi behöver VMWare för detta.

Steg 1: Hämta Mac-installationsbilden

Tja, utan detta skulle vi inte kunna göra någonting ...

Om du har en vän som har en Mac, låna hans eller hennes maskin ...

Ladda ner macOS Sierra från App Store ...

Gå online och hitta ritualen för att rippa den installationsbilden till en bärbar DMG / ISO-form.

Jag skulle inte avslöja en sådan metod, för jag vill inte ha några problem ~ ¯ \ _ (ツ) _ / ¯

Överför den sista DMG / ISO-filen till din huvuddator. Naturligtvis kommer vi att behöva det, eller hur gör vi ...

Steg 2: Ladda ner VMWare Player

Om du inte har VMWare Workstation, som de flesta av oss inte gör, måste vi fortsätta att ladda ner VMWare Player.

Installera bara det. Borde inte vara några problem alls.

Steg 3: Ladda ner Unlocker

Okej, det här är vårt första hack.

I grund och botten låste VMWare de väsentliga alternativen som förhindrar OSX och EFI som körs och samarbetar tillsammans (hårdkod, seriell, SMB, etc.) som körs på alla virtuella maskininstanser på alla VMWare-hypervisorer men VMWare Fusion.

Så vi måste "låsa upp" det genom att lappa några saker för att få Hackintosh att fungera.

När du har laddat ner filerna genom att klicka på 'Klon eller ladda ner', packa upp den, hitta filerna 'win-install.cmd' och 'win-update-tools.cmd'.

Högerklicka på 'win-install.cmd' och välj 'Kör som administratör', samma sak som 'win-update-tools.cmd'. Detta krävs för att få tillgång till Windows-registret och stoppa VMWare-tjänster för att utföra lappning.

Steg 4: Skapa en ny virtuell maskin

Öppna din VMWare Player och precis i menyn väljer du Skapa en ny virtuell maskin.

Välj sedan installationsfilskivans bildfil som du just har överfört tidigare.

Då måste vi välja "Apple Mac OS X" och välja rätt version. Här använder jag till exempel macOS Sierra, så det var 'macOS 10.12', om du använder El Capitan eller Yosemite, få rätt version.

Gå passera alla dessa alternativ. Kom ihåg att konfigurera din VM, jag ändrade kärnantalet, men för det mesta var det OK för massan.

Steg 5: Modifiera .vmx-filen

Vi måste gå runt den begränsning som VMWare ålägger jag nämnde i steg 3. Vi måste lägga till en post i konfigurationsfilen för den virtuella maskinen. Eller så kommer du att möta en kärndump under lanseringen av VM.

Som standard finns det i '~ / Documents / Virtual Machine / / .vmx' om du inte har ändrat platsen.

Öppna den och lägg till följande text i slutet av filen:

smc.version = “0”

Steg 6: Starta mig upp

Whew, vilket hårt arbete här. Nu är det dags att få installationen att fungera.

♫ Om du startar mig kommer jag aldrig att sluta ♫

Det bör inte finnas några problem alls. Du borde kunna se den snygga Apple-logotypen.

(YMMV)

Och skärmen för språkval.

Språkskärm

Välj ditt eget språk. Då måste vi klicka på Verktyg-> Diskverktyg. Formatera den virtuella disken till HFS.

Se videon om att göra det: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Sedan kunde vi fortsätta att installera det. Vanligtvis tar det cirka 20 minuter att göra det. Under den långvariga väntan, förbered dig och ta dig en kopp kaffe och vänta till slutet. En automatisk omstart planeras efter slutet och du kommer att se välkomstskärmen.

Se i handling: https://puu.sh/w46Pw/519687fc0d.webm

Steg 7: Ställ in mig

Välkomstskärmen

Slutför det som du brukar göra med en ny Mac. Aktivera inte lokationstjänst och logga inte in på Apple ID ännu. Skicka inte några data till Apple såväl som för att öka doldningen av vår Hackintosh-installation.

Vi måste också installera VMWare Tools. Demontera din OSX Base System-enhet i sökaren. Klicka sedan på Spelare-> Hantera-> Installera VMWare-verktyg. Genom att installera detta får du ett enormt högre prestanda, men kör fortfarande knappt i våra ögon.

Se detta: https://puu.sh/w4a2m/314480bc99.webm

grattis! Du har en fullt fungerande virtuell maskin från Hackintosh i handen nu! Vi flyttar nu till utvecklaravsnittet ...

Vi håller på att installera en del viktig programvara på vår Hackintosh-sida ...

Vi kommer att behöva ...

Brygga. Självklart. För NodeJS och NPM och React Native.

Garn för att påskynda vår paketinstallationstid om du inte delar det som jag gör.

Xcode för att sammanställa React Native Host.

Steg 1: Installera Xcode

Du behöver ett Apple-ID för detta, nej inte utvecklaren, vanligt är bra.

Se filmerna:

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

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

Vänta tills den är klar. Borde inte ta för lång tid, du har en trådbunden Internet-åtkomst till NAT. Vill du spela ut Safari eller några andra appar? (Trots hemsk prestanda)

Steg 2: Installera Brew and Node (och Garn och RN)

Klicka på länken ovan för att få kommandot först.

Det här borde vara enkelt. Med tanke på att du har installerat VMWare Tools är klippbordet tvåvägs som standard, så att du kan kopiera det på din Windows-sida och dumpa det på Mac-sidan.

Öppna terminalen och klistra in kommandot från Brew. Ange ditt lösenord för att tillåta installationen. Alla kommer att automatiseras och ska vara på mindre än 10 minuter.

Ta detta som ett exempel: https://puu.sh/w4atb/acbf000b84.webm

(Tryck på WinKey + Space för att öppna Spotlight-sökning, tryck WinKey + V för att klistra in)

Installera nod och NPM:

$ brew installera nodejs

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

Installera garn:

$ brygg installera garn

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

Installera RN:

$ npm -g installera react-native-cli

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

Steg 3: Gå igång med ditt projekt

För närvarande har jag inte kopierat min ursprungliga repo, men jag har skapat ett nytt RN-projekt istället. Om du flyttade ditt projekt har du allt inställt perfekt.

Du har två sätt att köra ditt projekt; Metod 1: Gå till din projektmapp, klicka på ios, öppna xcodeproj, klicka på körknappen i Xcode IDE; Metod 2: Gå till din projektmapp i terminalen, ange 'react-native run-ios' och poof, det är gjort.

Sista steg: Kör simulator

Framgång! Det kör perfekt! Jippie!

Du kan försöka aktivera het omladdning, ändra någon kod och se om den ändras.

Efter det borde allt fungera som en charm!

Hurra! (Kom ihåg, kommandotangent == Windows-nyckel)

Jag har inte försökt köra dem på fysiska enheter, men i teorin behöver du bara USB-genomströmning och Xcode eller iTunes borde kunna känna igen dina enheter.

Så än mindre lagligheten däremellan, jag tror att denna Hackintosh är ett ganska snyggt hack för att få iOS-utveckling i Windows utan att köpa en överdriven Mac Pro / MacBook Pro.

Vissa kanske till och med installerar en verklig Hackintosh-distribution i bara metallhårdvara som i dessa ultrabooks, Dell XPS 15 eller ZenBook, på så sätt kan samma sak uppnås, men det är farligare och du har tappat din Windows-miljö (såvida du inte har dubbelt boot aktiverat - De flesta av oss inte).

Jag ser fram emot att se RN-teamet släppa en ny verktygssats för Mac / Windows-devs för att få en bättre utvecklingsupplevelse medan jag fortfarande använder våra mest bekväma verktyg. De säger att det är en intressant idé och väntar på PR.

Jag tvivlar på att detta är mitt svar på detta. Hur som helst, tack för att du läste den här artikeln (mer som en självstudie). Det är säkert något lättare, om du har generositet att dela din idé, gör det i kommentarsektionen, jag ser fram emot att se din reaktion. Ha en trevlig dag med mina hackar!

(Redigerad 13/1)

Hälsningar! Jag antar att det har gått länge sedan jag skrev detta. Nu har jag upptäckt en helt ny värld när det gäller att utveckla mobilappar i en Hackintosh VM. Tack vare den senaste utvecklingen av React Native och genom att utnyttja Expo och endast värdanslutning kan vi ha en ännu sötare utvecklingsmiljö så att du äntligen kan ha ditt val av IDE och paketserver värd i Windows.

Detta kommer att åsidosätta steg 3 i den självstudie som jag nämnde ovan. Jag kommer också att presentera ytterligare ett trick för att göra VM helt uppslukande för iOS-utveckling.

I grund och botten behöver du bara CRNA och den senaste versionen av Expo / React Native (talar om 0,52 i skrivande stund), det är det. Om du har en befintlig app startad under CRNA kan det också fungera felfritt.

Det är väldigt enkelt. (Jag antar att du kommer att använda garn, ska vara liknande för NPM) Starta din CRNA-paketerare i Windows med PowerShell eller CMD:

Windows $ garn kör start
...
Peka Expo-appen på den här QR-koden för att se din app med live-laddning.
Du hittar QR-skannern på fliken Projekt i appen.

Eller ange den här adressen i Expo-appens sökfält:
exp: // : 19 tusen
Din telefon måste vara i samma lokala nätverk som den här datorn.
För länkar för att installera Expo-appen, besök https://expo.io.
Loggar från din app visas här. Tryck på Ctrl + C när som helst för att stoppa.
›Tryck på a för att öppna Android-enheten eller emulatorn.
 ›Tryck på q för att visa QR-kod.
 ›Tryck på r för att starta om paketeraren, eller R för att starta om packaren och rensa cache.
 ›Tryck på d för att växla utvecklingsläge. (nuvarande läge: utveckling)

Detta kommer att bli den hamn vi använder.

Försök sedan hitta din värdadress. (Olika maskiner har olika IP, YMMV)

OSXVM $ ifconfig
...
sv0: flaggor = 8863  mtu 1500
flaggor = b 
eter 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 säkrade omfång 0x4
inet 192.168.67.128 netmask 0xffffff00 sändning 192.168.67.255
nd6-alternativ = 201 
media: autoselect (1000baseT )
status: aktiv

För mig är detta värdadressen. Men du måste kasta den sista byten och lägga till 1.

Så värdens IP här är 192.168.67.1. Ta en anteckning om det först.

Sedan kommer vi att aktivera den hemliga såsen från Apple-ingenjörerna.

Från XCode 9, genom att skapa en enkel katalog i roten till din Mac HD, kan du få tillgång till den interna menyn i iOS Simulator. Äldre versioner har inte den här funktionen AFAIK.

Stäng alla dina simulatorer först. Skriv sedan helt enkelt detta i din terminal.

OSXVM $ sudo mkdir / AppleInternal
(Ditt lösenord)

Det är allt! Kontrollera nu om den interna menyn finns genom att starta en simulator och leta efter detta:

Egentligen är detta universellt också för riktiga Mac-datorer! För information om den här interna menyn, kolla in denna Medium-artikel. Men vi är mer fokuserade på helskärmsläget, vilket faktiskt är anledningen till att du kan ta med din XCode tillsammans med simulatorn i ett nytt virtuellt skrivbord:

Om du hade något av behörighetsproblemet, ja, särskilt High Sierra-användare, måste du skapa den här mappen i återställningsläget. Klicka bara på Verktyg och terminal, men du måste flytta din Main Mac HD, det fungerar också.

Nu fortsätter vi med att installera Expo Client i (vilken som helst) simuleringsmiljö.

Det här steget är väldigt trivialt så jag rekommenderar att du läser detta från Expos officiella dokument istället:

När du har installerat Expo-appen öppnar du den i Simulator.

Klicka sedan på "Plus" och skriv in din värdadress, men först måste vi formatera den till vad expo kan känna igen:

Formatet är:

exp: // : 

Så för mig är det: “exp: //192.168.67.1: 19000”

Klicka på öppen, och om du ser paketet byggas på Windows Dev PC-sidan, sedan GRATULERAR, kommer du att kunna få app-simuleringsmiljön. HMR är dock inte på, men är Live Reload som standard. Om du behöver det, gå till hårdvara-> Skaka gest och ändra den.

Det sista steget är att aktivera helskärmsläget för att göra det mer uppslukande. Om du enkelt och trivialt klickar på ett objekt i den interna menyn klickar du bara på den gröna helskärmsknappen.

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

Och det är allt! Du kan till och med ha Genymotion-arbete tillsammans! Detta är ett väldigt stort boost för produktiviteten!

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

Det är slutet på uppdateringen. Hoppas att du är glad på resan! Expo är verkligen ett kraftfullt verktyg och vi måste vårda det. Det finns inget som en gratis lunch. Tänk på donationer till Expo-projektet. De är ivriga med pengar för att underhålla projektet och betala sin (build) server! (Tyvärr erbjöd de ingen metod att göra detta ännu)

Och snälla, Apple, berätta inte för din advokat att kontakta mig och få mig till de juridiska problemen.