Hvordan utvikle React Native iOS-apper i Windows med Hackintosh (vel, slags)

Hei Medium! Så dette er min første historie, men jeg vil gjerne komme rett inn i spillet.

Jeg er veldig frustrert. Jeg har behov for en fysisk Mac og iPhone for å utvikle iOS React Native.

Jeg mener, jeg har MacBook og iPhone, jeg har det. Og jeg måtte dele repo-en til MacBook-en min og deretter kjøre React Native Builder og React Native Packager, som er ganske ordslått og haltende. Boo.

Dessuten vil jeg jobbe på en arbeidsstasjon, jeg har en Xeon-arbeidsstasjon, og det er trist jeg måtte ta farvel med tastaturet og musen min, og derav farvel til produktiviteten.

Til og med Xamarin tilbød en ekstern iOS Simulator og build agent slik at vi kunne glede oss over å utvikle på vår viktigste PC og deretter skyve build på vårt eksterne Mac-miljø. Og jeg tviler på at RN-teamet vil ha brisen til å få det til.

Så jeg klemte på litt av hjernekraften min og kom til slutt ut av en løsning, som er veldig, veldig gal, gal og lat. Og her er poengene jeg har tenkt på:

Det gode 1: Det fungerer universelt, på alle x86_64 bit-PCer med virtualisering aktivert, gitt at du har fulgt trinnene tydelig.

Det gode 2: Du kan disponere miljøet enkelt. Du kan også klone et miljø og flytte det et annet sted.

The Bad 1: It, Just, Works!

The Bad 2: Jeg anbefaler ikke at du kjører andre Mac-programmer utover XCode.

The Bad 3: Ikke forvent at AMD-CPUer vil kjøre mye over dette.

The Ugly 1: Du trenger en veldig biffete, uhyrlig PC for det, for bare å få en brøkdel av ytelsen på en ekte Mac.

The Ugly 2: Ingen maskinvareakselerasjon, så ikke forvent å kjøre og feilsøke OpenGL ES-sammenheng med den.

Hvis du er en ekte mann, skaff deg en Mac. Ellers nå vil vi oppdage reisen til Hack-in-to-sh!

(Advarsel: Å praktisere Hackintosh er et brudd på EULA for både Apple-programvare og maskinvare, og du kan komme til å anklager og søksmål, til tross for at ingen har vært de siste 10 årene, men et selskap gjør det, men vi er ikke begrenset til å gjøre det noe med datamaskinen vår, inkludert installering av forskjellige operativsystemer, så støtt deg selv og bestemme om du vil fortsette å tråkke på en lovlig grå sone)

Forutsetning

Som jeg har nevnt før, trenger du faktisk en veldig sterk og kraftig PC! Jeg har en Xeon-arbeidsstasjon, men den går knapt bra, tenk hva slags mareritt det var å få det susende, ikke sant?

Du trenger også en SSD, med mindre du har tålmodighet til å vente i mer enn 5 minutter for å komme inn på Mac VM med harddisken din.

Vent litt! VM. Hmm… Virtuell maskin? Har du gjettet det ikke? Det er riktig, vi trenger VMWare for dette.

Trinn 1: Hent installasjonsbildet til Mac

Vel, uten dette ville vi ikke kunne gjøre noe ...

Hvis du har en venn som har en Mac, kan du låne maskinen hans ...

Last ned macOS Sierra fra App Store ...

Gå online og finn ritualet for å rippe det installasjonsbildet til bærbar DMG / ISO-form.

Jeg ville ikke avsløre en slik metode, fordi jeg ikke vil ha noen problemer ~ ¯ \ _ (ツ) _ / ¯

Overfør den endelige DMG / ISO-filen til din viktigste PC. Selvfølgelig trenger vi det, eller hvordan gjør vi…

Trinn 2: Last ned VMWare Player

Med mindre du har VMWare Workstation, som de fleste av oss ikke har, må vi fortsette å laste ned VMWare Player.

Bare installer den. Bør ikke være noen problemer i det hele tatt.

Trinn 3: Last ned Unlocker

OK, dette er vårt første hack.

I utgangspunktet låste VMWare de viktige alternativene for å forhindre OSX og EFI som kjører og samarbeider (hardcode, seriell, SMB, etc.) som kjører på alle virtuelle maskinforekomster på alle VMWare-hypervisorer, men VMWare Fusion.

Så vi må "låse opp" det ved å lappe noen få ting for å få Hackintosh til å fungere.

Etter å ha lastet ned filene ved å klikke på 'Klon eller last ned', pakker du den ut, finn filene som heter 'win-install.cmd' og 'win-update-tools.cmd'.

Høyreklikk ‘win-install.cmd’ og velg ‘Kjør som administrator’, det samme gjelder ‘win-update-tools.cmd’. Dette kreves for å få tilgang til Windows-registeret og stoppe VMWare-tjenester for å utføre lapping.

Trinn 4: Lag en ny virtuell maskin

Åpne VMWare Player, og velg Lag en ny virtuell maskin på menyen.

Velg deretter installasjonsfil-bildefilen du nettopp har overført før.

Da må vi velge ‘Apple Mac OS X’ og velge riktig versjon. Her bruker jeg for eksempel macOS Sierra, så det var ‘macOS 10.12’, hvis du bruker El Capitan eller Yosemite, skaff deg riktig versjon.

Gå pass alle alternativene. Husk å konfigurere VM-en din, jeg endret kjernetellingene, men mesteparten av tiden var det OK for massen.

Trinn 5: Modding av .vmx-filen

Vi må gå rundt begrensningen pålagt av VMWare jeg har nevnt i trinn 3. Vi må legge til en oppføring i konfigurasjonsfilen for den virtuelle maskinen. Eller du vil møte en kjernedump under lanseringen av VM.

Som standard ligger den i ‘~ / Documents / Virtual Machine / .vmx 'hvis du ikke har endret stedet.

Åpne den og legg til følgende tekst helt på slutten av filen:

smc.version = “0”

Trinn 6: Start Me Up

Whew, hva et hardt arbeid her. Nå er det på tide å få installasjonen til å fungere.

♫ Hvis du starter meg, slutter jeg aldri ♫

Det skal ikke være noen problemer i det hele tatt. Du skal kunne se den fancy Apple-logoen.

(YMMV)

Og skjermbildet for valg av språk.

Språkvalgskjerm

Velg ditt eget språk. Da må vi klikke på Verktøy-> Diskverktøy. Formater den virtuelle disken til HFS.

Se videoen for å gjøre det: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Så kunne vi fortsette å installere det. Vanligvis tar det omtrent 20 minutter å gjøre det. Under den langvarige ventetiden, forbered deg og ta deg en kopp kaffe og vent til slutten. En automatisk omstart er planlagt etter slutten, og du skal se velkomstskjermen.

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

Trinn 7: Sett meg opp

Velkomstskjermen

Fullfør det slik du pleier å gjøre med en ny Mac. Ikke aktiver lokasjonstjeneste, og ikke logg deg på Apple ID ennå. Ikke send noen data til Apple i tillegg til å øke skjulingen av vårt Hackintosh-oppsett.

Vi må installere VMWare Tools også. Demonter OSX Base System-stasjonen i søkeren. Klikk deretter Player-> Manage-> Install VMWare Tools. Ved å installere dette får du et enormt løft i ytelsen, men fremdeles knapt løper i våre øyne.

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

Gratulerer! Du har en fullt funksjonell virtuell Hackintosh-maskin i hånden nå! Vi vil nå gå over til utviklerdelen ...

Vi er i ferd med å konfigurere noe essensiell programvare på vår Hackintosh-side ...

Vi trenger ...

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

Garn for å fremskynde installasjonstiden for pakken med mindre du bruker dele den som jeg gjør.

Xcode for å kompilere React Native Host.

Trinn 1: Installer Xcode

Du trenger en Apple-ID for dette, nei, ikke utvikleren, vanlige er greit.

Se videoene:

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

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

Vent til den er ferdig. Hvis ikke det skal ta for lang tid, har du en internettilkoblet NAT-kabel. Vil du spille ut Safari eller noen andre apper? (Til tross for fryktelig ytelse)

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

Klikk på lenken over for å få kommandoen først.

Vel, denne skal være enkel. Siden du har installert VMWare Tools, er utklippstavlen toveis som standard, slik at du kan kopiere den på Windows-siden og dumpe den på Mac-siden.

Åpne terminalen og lim inn kommandoen gitt av Brew. Skriv inn passordet ditt for å tillate installasjonen. Alle vil være automatiserte og skal være på mindre enn 10 minutter.

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

(Trykk WinKey + Space for å åpne Spotlight-søk. Trykk WinKey + V for å lime inn)

Installere Node og NPM:

$ brew install nodejs

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

Installere garn:

$ brygge installasjonsgarn

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

Installer RN:

$ npm -g installer react-native-cli

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

Trinn 3: Gå på prosjektet ditt

Foreløpig har jeg ikke kopiert min opprinnelige repo, men jeg har opprettet et nytt RN-prosjekt i stedet. Hvis du flyttet prosjektet ditt, har du satt opp alt perfekt.

Du har to måter å kjøre prosjektet på; Metode 1: Gå til prosjektmappen din, klikk på ios, åpne xcodeproj, klikk på kjør-knappen i Xcode IDE; Metode 2: Gå til prosjektmappen din i terminalen, skriv inn ‘react-native run-ios’ og poof, det er gjort.

Avslutt trinn: Kjør simulator

Suksess! Den kjører perfekt! Jippi!

Du kan prøve å aktivere varm omlasting, endre noe kode og se om den endres.

Etter det skal alt fungere som en sjarm!

Hurra! (Husk, kommandotast == Windows-tast)

Jeg har ikke prøvd å kjøre dem på fysiske enheter, men i teorien trenger du bare USB-gjennomgang, og Xcode eller iTunes skal kunne gjenkjenne enhetene dine.

Så enn mindre lovligheten i mellom, jeg synes denne Hackintosh er et ganske fancy hack for å få iOS-utvikling i Windows uten å kjøpe en overpriset Mac Pro / MacBook Pro.

Noen kan til og med installere en faktisk Hackintosh-forstyrrelse i bare metallvare, som i disse ultrabookene, Dell XPS 15 eller ZenBook, på den måten kan det samme oppnås, men det er farligere og du mistet Windows-miljøet ditt (med mindre du har aktivert dual boot - De fleste av oss ikke).

Jeg ser frem til å se RN-teamet gi ut et nytt verktøysett for Mac / Windows-devs for å få en bedre utviklingsopplevelse mens jeg fremdeles bruker de mest komfortable verktøyene våre. De sier at det er en interessant idé og venter på PR.

Jeg tviler på at dette er mitt svar på dette. Uansett, takk for at du har lest denne artikkelen (mer som en tutorial). Det er sikkert enklere, hvis du har raushet til å dele ideen din, kan du gjøre det i kommentarfeltet. Jeg ser frem til å se reaksjonen din. Ha en fin dag med hakkene mine!

(Redigert 13/1)

Hilsener! Jeg antar at det er lenge siden jeg skrev dette. Nå har jeg oppdaget en helt ny verden når det gjelder å utvikle mobile apper i en Hackintosh VM. Takket være den nylige forbedringen av React Native og ved å utnytte Expo og tilkobling som bare er vert, kan vi ha et enda søtere utviklingsmiljø, slik at du endelig kan få et valg av IDE og pakkeserver i Windows.

Dette kommer til å overstyre trinn 3 i opplæringen jeg nevnte ovenfor. Jeg skal også introdusere deg et triks til for å gjøre VM fullstendig oppslukende for iOS-utvikling.

I utgangspunktet trenger du bare CRNA og den nyeste versjonen av Expo / React Native (snakker om 0.52 i skrivende stund), det er det. Hvis du har en eksisterende app bootstrapped under CRNA, kan det fungere feilfritt også.

Det er veldig enkelt. (Jeg antar at du vil bruke garn, skal være likt for NPM) Start CRNA-pakkeren din i Windows ved å bruke PowerShell eller CMD:

Start med Windows $ garn
...
For å se appen din med live omlasting, peker Expo-appen til denne QR-koden.
Du finner QR-skanneren på Prosjekter-fanen i appen.

Eller skriv inn denne adressen i Expo-appens søkefelt:
exp: // : 19000
Telefonen din må være på samme lokale nettverk som denne datamaskinen.
Besøk https://expo.io for koblinger for å installere Expo-appen.
Logger fra visning av appen din vises her. Trykk Ctrl + C når som helst for å stoppe.
›Trykk på a for å åpne Android-enheten eller emulatoren.
 ›Trykk på q for å vise QR-kode.
 ›Trykk på r for å starte pakkeren på nytt, eller R for å starte pakkeren på nytt og tømme hurtigbufferen.
 ›Trykk på d for å skifte utviklingsmodus. (nåværende modus: utvikling)

Dette kommer til å være havnen vi bruker.

Deretter kan du prøve å finne vertsadressen din. (Ulike maskiner har forskjellig IP, YMMV)

OSXVM $ ifconfig
...
no0: flagg = 8863  mtu 1500
Metoder = b 
eter 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefikslen 64 sikret omfang 0x4
inet 192.168.67.128 nettmaske 0xffffff00 kringkasting 192.168.67.255
nd6-alternativer = 201 
media: autoselect (1000baseT )
status: aktiv

For meg er dette vertsadressen. Men du må forkaste den siste byten og legge til 1.

Så verts-IP-en her er 192.168.67.1. Først noterer du det.

Deretter vil vi aktivere den hemmelige sausen laget av Apple-ingeniørene.

Fra XCode 9, ved å lage en enkel katalog i roten til Mac HD, kan du få tilgang til den interne menyen til iOS Simulator. Eldre versjoner har ikke denne funksjonen AFAIK.

Lukk alle simulatorene dine først. Bare skriv dette i terminalen.

OSXVM $ sudo mkdir / AppleInternal
(Ditt passord)

Det er det! Sjekk nå om den interne menyen er til stede ved å starte en simulator og se etter denne:

Egentlig er dette universelt også for ekte Mac-maskiner! For informasjon om denne interne menyen, sjekk denne Medium-artikkelen. Men vi er mer fokusert på fullskjermmodus, noe som faktisk er grunnen til at du kan ta med XCode sammen med simulatoren i et nytt virtuelt skrivebord:

Hvis du hadde noe av tillatelsesproblemet, vel, spesielt høye Sierra-brukere, må du opprette denne mappen i gjenopprettingsmodus. Bare klikk på Verktøy og terminal, men du må flytte Main Mac HD, det fungerer også.

Nå vil vi fortsette å installere Expo Client i (hvilket som helst av) simulatormiljøet.

Dette trinnet er veldig trivielt, så jeg anbefaler deg å lese dette fra Expos offisielle dokument i stedet:

Når du har installert Expo-appen, åpner du den i Simulator.

Deretter klikker du på "Plus" og skriver inn vertsadressen din, men først må vi formatere den til det expo kan gjenkjenne:

Formatet er:

exp: // : 

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

Klikk på Åpne, og hvis du ser at pakken er bygget på Windows Dev PC-siden, så GRATULERER du, kan du skaffe deg app-simulatormiljøet. HMR er imidlertid ikke på, men er Live Reload som standard. Hvis du trenger det, kan du gå til maskinvare-> Riste gest og endre den.

Det siste trinnet er å aktivere fullskjermmodus for å gjøre den mer oppslukende. Skulle du klikke på et element i den interne menyen enkelt og trivielt for deg, er det bare å klikke på den grønne fullskjerm-knappen.

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

Og det er det! Du kan til og med ha Genymotion-arbeid sammen! Dette er et veldig stort løft for produktiviteten!

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

Det er slutten av oppdateringen. Håper du er lykkelig i reisen! Expo er virkelig et kraftig verktøy, og vi må verne om det. Det er ikke noe som heter en gratis lunsj. Vennligst vurder donasjoner til Expo-prosjektet. De er ivrige etter penger til å vedlikeholde prosjektet og betale sin (build) server! (Dessverre tilbød de ingen metode for å gjøre dette ennå)

Og vær så snill, Apple, ikke be advokaten din om å kontakte meg og få meg inn i de juridiske problemene.