Sådan udvikles React Native iOS-apps i Windows med Hackintosh (godt, slags)

Hej Medium! Så dette er min første historie, men jeg vil gerne komme lige ind i spillet.

Jeg er lidt frustreret over, at jeg har krævet en fysisk Mac og iPhone til at udføre iOS React Native-udvikling.

Jeg mener, jeg har MacBook og iPhone, jeg har det. Og jeg var nødt til at dele min repo til min MacBook og derefter køre min React Native Builder og React Native Packager, som er ganske ordret og halt. Boo.

Desuden vil jeg arbejde i en arbejdsstation, jeg har en Xeon-arbejdsstation, og det er trist, at jeg var nødt til at sige farvel til mit tastatur og mus og dermed farvel til produktiviteten.

Selv Xamarin tilbød en ekstern iOS Simulator og build agent, så vi kunne nyde at udvikle på vores vigtigste pc og derefter skubbe build på vores eksterne Mac-miljø. Og jeg tvivler på, at RN-holdet ville have brisen til at få det til.

Så jeg pressede noget af min hjernekræft ud og endelig kom ud af en løsning, som er meget, meget skøre, skør og doven. Og her er de punkter, jeg har tænkt på:

Den gode 1: Det fungerer universelt i alle x86_64 bit pc'er med virtualisering aktiveret, forudsat at du har fulgt trinnene tydeligt.

Det gode 2: Du kan bortskaffe miljøet let. Du kan også klone et miljø og flytte det et andet sted.

Den dårlige 1: Det fungerer bare!

Den dårlige 2: Jeg anbefaler ikke, at du kører andre Mac-programmer ud over XCode.

Den dårlige 3: Forvent ikke, at AMD-CPU'er kører meget over dette.

Den grimme 1: Du har brug for en meget oksekød, uhyrlig pc til det for kun at få en brøkdel af ydelsen på en rigtig Mac.

The Ugly 2: Ingen hardwareacceleration, så forvent ikke at køre og fejlsøge OpenGL ES-kontekst med det.

Hvis du er en rigtig mand, skal du hente en Mac. Ellers nu vil vi opdage rejsen til Hack-in-to-sh!

(Advarsel: Øvelse af Hackintosh er en krænkelse af EULA for både Apple-software og hardware, og du kan blive anklaget og retssager, på trods af at ingen har været i de sidste 10 år, men det gør en virksomhed, men vi er ikke begrænset til at gøre det hvad som helst med vores computer, herunder installation af forskellige operativsystemer, så afstiv dig selv og beslutte, om du vil fortsætte med at træde i en lovlig grå zone)

Forudsætning

Som jeg nævnt før, har du faktisk brug for en meget stærk og kraftfuld pc! Jeg har en Xeon-arbejdsstation, men den kører knap nok, forestil dig, hvilken slags mareridt det var at få det travlt, ikke?

Du har også brug for en SSD, medmindre du har tålmodighed til at vente mere end 5 minutter for at komme ind på din Mac VM med din HDD.

Vent et øjeblik! VM. Hmm… Virtuel maskine? Du har gætt det ikke? Det er rigtigt, vi har brug for VMWare til dette.

Trin 1: Hent Mac-installationsbilledet

Uden dette ville vi ikke være i stand til at gøre noget ...

Hvis du har en ven, der har en Mac, skal du låne hans eller hendes maskine ...

Download macOS Sierra fra App Store…

Gå online og find ritualet til at rippe det installationsbillede til bærbar DMG / ISO-form.

Jeg ville ikke afsløre en sådan metode, fordi jeg ikke vil have nogen problemer ~ ¯ \ _ (ツ) _ / ¯

Overfør den endelige DMG / ISO-fil til din vigtigste pc. Selvfølgelig har vi brug for det, eller hvordan gør vi…

Trin 2: Download VMWare Player

Medmindre du har VMWare Workstation, som de fleste af os ikke har, så bliver vi nødt til at fortsætte med at downloade VMWare Player.

Bare installer det. Burde ikke være nogen problemer overhovedet.

Trin 3: Download Unlocker

Okay, dette er vores første hack.

Grundlæggende låste VMWare de væsentlige indstillinger, der forhindrer OSX og EFI i at køre og samarbejde (hardcode, seriel, SMB osv.), Der kører på alle virtuelle maskininstanser på alle VMWare-hypervisorer men VMWare Fusion.

Så vi bliver nødt til at 'låse' op ved at lappe et par ting for at få Hackintosh til at fungere.

Når du har downloadet filerne ved at klikke på 'Klon eller download', skal du pakke den ud, finde filerne med navnet 'win-install.cmd' og 'win-update-tools.cmd'.

Højreklik på 'win-install.cmd' og vælg 'Kør som administrator', det samme gælder 'win-update-tools.cmd'. Dette er nødvendigt for at få adgang til Windows-registreringsdatabasen og stoppe VMWare-tjenester for at udføre programrettelse.

Trin 4: Opret en ny virtuel maskine

Åbn din VMWare Player, og vælg Opret en ny virtuel maskine lige i menuen.

Vælg derefter installationsdiskens billedfil, du lige har overført før.

Derefter bliver vi nødt til at vælge 'Apple Mac OS X' og vælge den relevante version. Her bruger jeg for eksempel macOS Sierra, så det var 'macOS 10.12', hvis du bruger El Capitan eller Yosemite, skal du få den rigtige version.

Gå videre med alle disse muligheder. Husk at konfigurere din VM, jeg ændrede kernetællingerne, men mest af tiden var det OK for massen.

Trin 5: Ændring af .vmx-filen

Vi bliver nødt til at gå rundt om den begrænsning, der er pålagt af VMWare, jeg har nævnt i trin 3. Vi bliver nødt til at tilføje en post til den virtuelle maskinkonfigurationsfil. Eller du vil stå over for en kernedump under lanceringen af ​​VM.

Som standard er det placeret i '~ / Documents / Virtual Machine / / .vmx', hvis du ikke har ændret placeringen.

Åbn den, og tilføj følgende tekst i slutningen af ​​filen:

smc.version = “0”

Trin 6: Start mig op

Whew, hvad et hårdt arbejde her. Nu er det tid til at få installationen til at fungere.

♫ Hvis du starter mig op, stopper jeg aldrig ♫

Der skulle slet ikke være problemer. Du skal kunne se det smarte Apple-logo.

(YMMV)

Og skærmbilledet til valg af sprog.

Skærm til valg af sprog

Vælg dit eget sprog. Så bliver vi nødt til at klikke på Hjælpeprogrammer-> Diskværktøj. Formater den virtuelle disk til HFS.

Se videoen til at gøre det: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Så kunne vi fortsætte med at installere det. Normalt tager det ca. 20 minutter at gøre det. Under den langvarige ventetid, forbered dig og tag dig en kop kaffe og vent til slutningen. En automatisk genstart er planlagt efter afslutningen, og du skal se velkomstskærmen.

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

Trin 7: Indstil mig

Velkomstskærmen

Afslut det, som du normalt gør med en ny Mac. Aktivér ikke lokationstjeneste og log ikke ind på Apple ID endnu. Send ikke nogen data til Apple såvel som for at øge skjultheden af ​​vores Hackintosh-opsætning.

Vi bliver også nødt til at installere VMWare Tools. Afmonter dit OSX Base System-drev i finderen. Klik derefter på Afspiller-> Administrer-> Installer VMWare-værktøjer. Ved at installere dette får du et enormt løft i ydeevnen, men kører stadig næppe i vores øjne.

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

Tillykke! Du har en fuldt funktionel virtuel Hackintosh-maskine i hånden nu! Vi skifter nu til udviklersektionen ...

Vi er ved at opsætte noget essentielt software på vores Hackintosh-side ...

Vi har brug for ...

Brygge. Selvfølgelig. For NodeJS og NPM og React Native.

Garn til at fremskynde vores pakkeinstallationstid, medmindre du bruger det som jeg gør.

Xcode til kompilering af React Native Host.

Trin 1: Installer Xcode

Du har krævet et Apple-id til dette, nej ikke udvikleren, almindeligt er fint.

Se videoer:

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

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

Vent, indtil det er færdigt. Hvis det ikke tager for lang tid, har du en NAT-kablet internetadgang. Vil du spille Safari eller nogle andre apps? (På trods af frygtelig præstation)

Trin 2: Installer Brew and Node (og Garn og RN)

Klik på linket ovenfor for at få kommandoen først.

Nå, denne skal være let. I betragtning af at du har installeret VMWare Tools, er udklipsholderen tovejs som standard, så du kan kopiere det på din Windows-side og dumpe det på Mac-siden.

Åbn terminalen og indsæt kommandoen fra Brew. Indtast din adgangskode for at tillade installationen. Alle vil være automatiserede og skal være på mindre end 10 minutter.

Tag dette som et eksempel: https://puu.sh/w4atb/acbf000b84.webm

(Tryk på WinKey + Mellemrum for at åbne Spotlight-søgning, tryk på WinKey + V for at indsætte)

Installation af knudepunkt og NPM:

$ brew installere nodejs

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

Installation af garn:

$ bryg installeringsgarn

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

Installer RN:

$ npm -g installer react-native-cli

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

Trin 3: Gå på dit projekt

Indtil videre har jeg ikke kopieret min originale repo, men jeg har oprettet et nyt RN-projekt i stedet. Hvis du flyttede dit projekt, har du alt oprettet perfekt.

Du har to måder at køre dit projekt på; Metode 1: Gå til din projektmappe, klik på ios, åbn xcodeproj, klik på kør-knappen i Xcode IDE; Metode 2: Gå til din projektmappe i terminalen, indtast 'react-native run-ios' og poof, det er gjort.

Sidste trin: Kør simulator

Succes! Det kører perfekt! Yay!

Du kan prøve at aktivere hot reload, ændre nogle kode og se, om den ændrer sig.

Efter dette skulle alt fungere som en charme!

Hurra! (Husk, kommandotast == Windows-nøgle)

Jeg har ikke prøvet at køre dem på fysiske enheder, men i teorien har du bare brug for USB-gennemstrømning, og Xcode eller iTunes skal være i stand til at genkende dine enheder.

Så lad ordet lovligheden derimellem, jeg synes, at denne Hackintosh er et ret smukt hack til at få iOS-udvikling i Windows uden at købe en overpris Mac Pro / MacBook Pro.

Nogle installerer måske endda en faktisk Hackintosh-forstyrrelse i bare metalhardware som i disse ultrabooks, Dell XPS 15 eller ZenBook, på den måde kan den samme ting opnås, men det er mere farligt, og du har mistet dit Windows-miljø (medmindre du har dobbelt boot aktiveret - De fleste af os ikke).

Jeg ser frem til at se RN-teamet frigive et nyt værktøjssæt til Mac / Windows-devs for at få en bedre udviklingsoplevelse, mens vi stadig bruger vores mest komfortable værktøjer. De siger, at det er en interessant idé og venter på PR.

Jeg tvivler på, at dette er mit svar på dette. Alligevel tak for at have læst denne artikel (mere som en tutorial). Der er bestemt noget lettere, hvis du har generøsitet til at dele din idé, så gør det i kommentarafsnittet, jeg ser frem til at se din reaktion. Hav en dejlig dag med mine hacks!

(Redigeret 13/1)

Vær hilset! Jeg gætte, det er længe siden jeg skrev dette. Nu har jeg opdaget en helt ny verden med hensyn til at udvikle mobile apps i en Hackintosh VM. Takket være den nylige fremskridt med React Native og ved at udnytte Expo og kun værtsforbindelse kan vi have et endnu sødere udviklingsmiljø, så du endelig kan få dit valg af IDE og bundtserver vært i Windows.

Dette vil tilsidesætte trin 3 i den tutorial, jeg nævnte ovenfor. Jeg vil også introducere dig endnu et trick for at gøre VM fuldstændig fordybende overfor iOS-udvikling.

Grundlæggende har du bare brug for CRNA og den seneste version af Expo / React Native (taler om 0,52 i skrivende stund), det er det. Hvis du har en eksisterende app-opstart under CRNA, fungerer den muligvis også fejlfrit.

Det er meget enkelt. (Jeg antager, at du vil bruge Garn, skal være ens for NPM) Start din CRNA-pakker i Windows ved hjælp af PowerShell eller CMD:

Start af Windows $ garn
...
Hvis du vil se din app med live genindlæsning, skal du pege Expo-appen til denne QR-kode.
Du finder QR-scanneren under fanen Projekter i appen.

Eller indtast denne adresse i Expo-appens søgefelt:
exp: // : 19000
Din telefon skal være på det samme lokale netværk som denne computer.
Besøg https://expo.io for links til installation af Expo-appen.
Logfiler fra visning af din app vises her. Tryk på Ctrl + C når som helst for at stoppe.
›Tryk på a for at åbne Android-enhed eller emulator.
 ›Tryk på q for at få vist QR-kode.
 ›Tryk på r for at genstarte pakkeren, eller R for at genstarte pakkeren og slette cachen.
 ›Tryk på d for at skifte udviklingsfunktion. (nuværende tilstand: udvikling)

Dette bliver den havn, vi bruger.

Prøv derefter at finde din hostadresse. (Forskellig maskine har forskellige IP, YMMV)

OSXVM $ ifconfig
...
en0: flag = 8863  mtu 1500
optioner = b 
ether 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 sikret omfang 0x4
inet 192.168.67.128 netmaske 0xffffff00 udsendt 192.168.67.255
nd6-indstillinger = 201 
media: autoselect (1000baseT )
status: aktiv

For mig er dette værtens adresse. Men du skal kassere den sidste byte og tilføje 1.

Så host-IP'en her er 192.168.67.1. Noter det først.

Derefter aktiverer vi den hemmelige sauce lavet af Apple-ingeniører.

Start fra XCode 9 ved at oprette et simpelt bibliotek i roden til din Mac HD, kan du få adgang til den interne menu i iOS Simulator. Ældre versioner har ikke denne funktion AFAIK.

Luk alle dine simulatorer først. Skriv derefter blot dette i din terminal.

OSXVM $ sudo mkdir / AppleInternal
(Dit kodeord)

Det er det! Kontroller nu, om den interne menu er til stede ved at starte en simulator og kigge efter dette:

Faktisk er dette også universelt for rigtige Mac-computere! For information om denne interne menu, tjek denne Medium-artikel. Men vi er mere fokuseret på fuldskærmstilstand, hvilket faktisk er grunden til, at du kunne bringe din XCode sammen med simulatoren i et nyt virtuelt skrivebord:

Hvis du havde noget af tilladelsesproblemet, ja, især High Sierra-brugere, skal du oprette denne mappe i gendannelsestilstand. Klik bare på Hjælpeprogram og terminal, men du bliver nødt til at flytte din Main Mac HD, det fungerer også.

Nu fortsætter vi med at installere Expo Client i (hvilket som helst af) simulatormiljøet.

Dette trin er meget trivielt, så jeg anbefaler dig at læse dette fra Expos officielle dokument i stedet:

Når du har installeret Expo-appen, skal du åbne den i Simulator.

Klik derefter på 'Plus' og indtast din hostadresse, men først skal vi formatere den til, hvad expo kunne genkende:

Formatet er:

exp: // : 

Så for mig er det: “exp: //192.168.67.1: 19000”

Klik på åben, og hvis du ser, at bundtet er bygget i Windows Dev PC-siden, så GRATULERER, vil du være i stand til at skaffe dig app-simulatormiljøet. HMR er dog ikke tændt, men er Live Genindlæs som standard. Hvis du har brug for det, skal du gå Hardware-> Ryst gestus og ændre det.

Det sidste trin er at aktivere fuldskærmstilstand for at gøre det mere fordybende. Skulle du klikke på et element i den interne menu let og trivielt for dig, skal du bare klikke på den grønne knap på fuld skærm.

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

Og det er det! Du kan endda have Genymotion arbejde sammen! Dette er et meget stort løft for produktiviteten!

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

Det er slutningen af ​​opdateringen. Håber du er glad i rejsen! Expo er virkelig et kraftfuldt værktøj, og vi er nødt til at værne om det. Der er ikke sådan noget som en gratis frokost. Overvej venligst donationer til Expo-projektet. De er ivrige efter penge til at vedligeholde projektet og betale deres (build) server! (Desværre tilbød de ingen metode til at gøre dette endnu)

Og tak, Apple, ikke fortæl din advokat om at kontakte mig og få mig ind i de juridiske problemer.