Hoe React native iOS-apps te ontwikkelen in Windows met Hackintosh (nou ja, soort van)

Hallo medium! Dus dit is mijn eerste verhaal, maar ik wil graag meteen in het spel komen.

Ik ben nogal gefrustreerd. Ik heb een fysieke Mac en iPhone nodig om iOS React Native te ontwikkelen.

Ik bedoel, ik heb MacBook en iPhone, ik heb het. En ik moest mijn repo delen op mijn MacBook en vervolgens mijn React Native Builder en React Native Packager uitvoeren, wat nogal uitgebreid en zwak is. Boo.

Ik wil trouwens op een werkstation werken, ik heb een Xeon-werkstation en het is triest dat ik afscheid moest nemen van mijn toetsenbord en muis en dus afscheid van de productiviteit.

Zelfs Xamarin bood een externe iOS-simulator en build-agent aan, zodat we konden genieten van het ontwikkelen op onze hoofd-pc en vervolgens de build op onze externe Mac-omgeving konden pushen. En ik betwijfel of het RN-team de wind zou hebben om dat te laten gebeuren.

Dus kneep ik in een deel van mijn hersenkracht en kwam uiteindelijk uit een oplossing, die heel, heel gek, gek en lui is. En hier zijn de punten waar ik aan heb gedacht:

De goede 1: het werkt universeel, op alle x86_64 bit-pc's met virtualisatie ingeschakeld, op voorwaarde dat u de stappen duidelijk hebt gevolgd.

The Good 2: u kunt de omgeving eenvoudig weggooien. Je kunt ook een omgeving klonen en ergens anders naartoe verplaatsen.

The Bad 1: It, Just, Works!

The Bad 2: Ik raad je niet aan om andere Mac-programma's dan XCode te gebruiken.

The Bad 3: Verwacht niet dat AMD CPU's hier veel overheen lopen.

The Ugly 1: Je hebt daarvoor een zeer vlezige, monsterlijke pc nodig om slechts een fractie van de prestaties op een echte Mac te krijgen.

De Ugly 2: Geen hardwareversnelling, dus verwacht niet dat u OpenGL ES-context ermee uitvoert en debugt.

Als je een echte man bent, koop dan een Mac. Anders ontdekken we nu de reis naar Hack-in-to-sh!

(Waarschuwing: het beoefenen van Hackintosh is een overtreding van de EULA van zowel Apple Software als Hardware, en u kunt te maken krijgen met aanklachten en rechtszaken, ondanks het feit dat niemand de afgelopen 10 jaar is geweest maar een bedrijf, maar we zijn niet beperkt om te doen alles met onze computer, inclusief het installeren van verschillende besturingssystemen, dus zet u schrap en beslis of u door wilt gaan met stappen op een legale grijze zone)

Voorwaarde

Zoals ik al eerder heb gezegd, heb je eigenlijk een zeer sterke en krachtige pc nodig! Ik heb een Xeon-werkstation, maar het loopt nauwelijks goed, stel je voor wat voor soort nachtmerrie het was om het te krijgen, hè?

Je hebt ook een SSD nodig, tenzij je het geduld hebt om meer dan 5 minuten te wachten om met je HDD in je Mac VM te komen.

Wacht even! VM. Hmm ... Virtuele machine? Je hebt het geraden, toch? Dat klopt, we hebben hiervoor VMWare nodig.

Stap 1: Haal de Mac-installatiekopie op

Nou, zonder dit zouden we niets kunnen doen ...

Als je een vriend hebt die een Mac heeft, leen dan zijn of haar machine ...

Download macOS Sierra van App Store ...

Ga online en vind het ritueel om die installatiekopie in draagbare DMG / ISO-vorm te rippen.

Ik zou zo'n methode niet onthullen, omdat ik geen problemen wil krijgen ~ ¯ \ _ (ツ) _ / ¯

Breng het definitieve DMG / ISO-bestand over naar uw hoofd-pc. Natuurlijk hebben we het nodig, of hoe kunnen we ...

Stap 2: Download VMWare Player

Tenzij u VMWare Workstation hebt, wat de meesten van ons niet hebben, moeten we doorgaan met het downloaden van VMWare Player.

Installeer het gewoon. Moet helemaal geen problemen zijn.

Stap 3: Download Unlocker

Oké, dit is onze eerste hack.

In feite heeft VMWare de essentiële opties vergrendeld die verhinderen dat OSX en EFI tegelijk werken en samenwerken (hardcode, serieel, SMB, enz.) Die worden uitgevoerd op alle virtuele machine-instances op alle VMWare hypervisor behalve VMWare Fusion.

We moeten het dus 'ontgrendelen' door een paar dingen te patchen om Hackintosh aan het werk te krijgen.

Na het downloaden van de bestanden door op ‘Clone or download’ te klikken, pak je het uit, zoek je de bestanden met de naam ‘win-install.cmd’ en ‘win-update-tools.cmd’.

Klik met de rechtermuisknop op ‘win-install.cmd’ en selecteer ‘Run as Administrator’, hetzelfde geldt voor ‘win-update-tools.cmd’. Dit is vereist om toegang te krijgen tot het Windows-register en VMWare-services te stoppen om patching uit te voeren.

Stap 4: Maak een nieuwe virtuele machine

Open uw VMWare Player en kies gewoon in het menu Maak een nieuwe virtuele machine.

Selecteer vervolgens het schijfbestand van het installatieschijf dat u zojuist hebt overgezet.

Vervolgens moeten we ‘Apple Mac OS X’ selecteren en de juiste versie kiezen. Hier gebruik ik bijvoorbeeld macOS Sierra, dus het was 'macOS 10.12', als je El Capitan of Yosemite gebruikt, krijg je de juiste versie.

Ga voorbij al die opties. Vergeet niet om je VM te configureren, ik heb de kerntellingen gewijzigd, maar meestal was het OK voor de massa.

Stap 5: het .vmx-bestand wijzigen

We moeten de beperking door VMWare omzeilen die ik in stap 3 heb genoemd. We moeten een vermelding toevoegen aan het configuratiebestand van de virtuele machine. Of u wordt geconfronteerd met een kerndump tijdens de lancering van de VM.

Standaard bevindt deze zich in ‘~ / Documents / Virtual Machine / / .vmx’ als u de locatie niet hebt gewijzigd.

Open het en voeg de volgende tekst toe aan het einde van het bestand:

smc.version = "0"

Stap 6: Start Me Up

Oef, wat een hard werk hier. Nu is het tijd om de installatie te laten werken.

♫ Als je me start, stop ik nooit ♫

Er zouden helemaal geen problemen moeten zijn. Je zou het mooie Apple-logo moeten kunnen zien.

(YMMV)

En het taalkeuzescherm.

Scherm voor taalselectie

Selecteer uw eigen taal. Dan moeten we op Hulpprogramma's-> Schijfhulpprogramma klikken. Formatteer de virtuele schijf naar HFS.

Bekijk de video hierover: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Dan kunnen we doorgaan met installeren. Meestal duurt het ongeveer 20 minuten om het te doen. Tijdens het langdurige wachten, bereid en pak je een kopje koffie en wacht je tot het einde. Na het einde wordt automatisch opnieuw opgestart en u ziet het welkomstscherm.

Zie in actie: https://puu.sh/w46Pw/519687fc0d.webm

Stap 7: Stel me in

Het welkomstscherm

Maak het af zoals je meestal doet met een nieuwe Mac. Schakel locatieservice echter niet in en log nog niet in bij Apple ID. Stuur geen gegevens naar Apple en verhoog niet de verborgenheid van onze Hackintosh-installatie.

We moeten ook VMWare Tools installeren. Ontkoppel uw OSX Base System-schijf in de finder. Klik vervolgens op Player-> Manage-> VMWare Tools installeren. Door dit te installeren, krijg je een enorme boost in prestaties, maar loopt het nog nauwelijks in onze ogen.

Zie dit: https://puu.sh/w4a2m/314480bc99.webm

Gefeliciteerd! Je hebt nu een volledig functionele virtuele Hackintosh-machine in handen! We gaan nu naar het gedeelte voor ontwikkelaars ...

We staan ​​op het punt een aantal essentiële software in te stellen aan onze Hackintosh-kant ...

We hebben ...

Brouwen. Natuurlijk. Voor de NodeJS en NPM and React Native.

Garen om de installatietijd van ons pakket te versnellen, tenzij u het deelt zoals ik.

Xcode om React Native Host te compileren.

Stap 1: Xcode installeren

Je hebt hiervoor een Apple ID nodig, nee niet de ontwikkelaar, de gewone is prima.

Bekijk de video's:

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

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

Wacht tot het klaar is. Moet niet te lang duren, je hebt een NAT bekabelde internettoegang. Wil je Safari of andere apps spelen? (Ondanks vreselijke prestaties)

Stap 2: Installeer Brew and Node (en Yarn and RN)

Klik op de bovenstaande link om de opdracht eerst te krijgen.

Welnu, deze moet eenvoudig zijn. Aangezien u VMWare Tools hebt geïnstalleerd, is het klembord standaard bidirectioneel, dus u kunt het naar uw Windows-zijde kopiëren en naar de Mac-zijde dumpen.

Open de terminal en plak het commando gegeven door Brew. Voer uw wachtwoord in om de installatie toe te staan. Alles zal geautomatiseerd zijn en moet binnen 10 minuten zijn.

Neem dit als voorbeeld: https://puu.sh/w4atb/acbf000b84.webm

(Druk op WinKey + Space om Spotlight-zoeken te openen, druk op WinKey + V om te plakken)

Node en NPM installeren:

$ brew install nodejs

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

Garen installeren:

$ brew installgaren

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

Installeer RN:

$ npm -g installeer react-native-cli

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

Stap 3: Ga aan de slag met uw project

Voorlopig heb ik mijn oorspronkelijke repo niet gekopieerd, maar in plaats daarvan heb ik een nieuw RN-project gemaakt. Als je je project hebt verplaatst, heb je alles perfect ingesteld.

U kunt uw project op twee manieren uitvoeren; Methode 1: Ga naar uw projectmap, klik op ios, open de xcodeproj, klik op de knop Uitvoeren in de Xcode IDE; Methode 2: Ga naar uw projectmap in terminal, voer ‘react-native run-ios’ in en poof, het is klaar.

Laatste stap: voer de simulator uit

Succes! Het loopt perfect! Yay!

U kunt proberen hot reload in te schakelen, een code aan te passen en te kijken of deze verandert.

Daarna zou alles als een charme moeten werken!

Hoera! (Vergeet niet, Command-toets == Windows-toets)

Ik heb niet geprobeerd ze op fysieke apparaten te laten draaien, maar in theorie heb je alleen USB-doorvoer nodig en zouden Xcode of iTunes je apparaten moeten kunnen herkennen.

Dus laat staan ​​de wettigheid ertussenin, ik denk dat deze Hackintosh een behoorlijk mooie hack is om iOS-ontwikkeling in Windows te krijgen zonder een dure Mac Pro / MacBook Pro te kopen.

Sommigen kunnen zelfs een echte Hackintosh-distrubutie installeren in bare-metal hardware zoals in die ultrabooks, Dell XPS 15 of ZenBook, op die manier kan hetzelfde worden bereikt, maar het is gevaarlijker en je bent je Windows-omgeving kwijt (tenzij je dual boot hebt ingeschakeld - De meesten van ons niet).

Ik kijk ernaar uit om RN-team een ​​nieuwe toolkit voor Mac / Windows-ontwikkelaars uit te brengen om een ​​betere ontwikkelingservaring te krijgen, terwijl we nog steeds de meest comfortabele eigen tools gebruiken. Ze zeggen dat het een interessant idee is en op PR wacht.

Ik betwijfel of dit mijn antwoord hierop is. Hoe dan ook, bedankt voor het lezen van dit artikel (meer als een tutorial). Er is zeker iets eenvoudiger, als je de vrijgevigheid hebt om je idee te delen, doe dat dan in de commentaarsectie, ik kijk uit naar je reactie. Een mooie dag verder met mijn hacks!

(Bewerkt in 13/1)

Groeten! Ik denk dat het lang geleden is dat ik dit heb geschreven. Nu heb ik een hele nieuwe wereld ontdekt met betrekking tot het ontwikkelen van mobiele apps in een Hackintosh VM. Dankzij de recente vooruitgang van React Native en door gebruik te maken van de Expo- en host-only-verbinding, kunnen we een nog mooiere ontwikkelomgeving hebben, zodat u eindelijk uw keuze voor IDE en bundelserver in Windows kunt hosten.

Dit gaat Stap 3 in de zelfstudie die ik hierboven heb genoemd, teniet doen. Ik ga je ook nog een truc voorstellen om de VM volledig te laten meeslepen in de iOS-ontwikkeling.

Kortom, u hebt alleen CRNA en de nieuwste versie van Expo / React Native nodig (over 0,52 op het moment van schrijven), dat is alles. Als u een bestaande app bootstrapped onder CRNA heeft, kan deze ook probleemloos werken.

Het is heel simpel. (Ik neem aan dat u Garen zult gebruiken, vergelijkbaar zou moeten zijn met NPM) Start uw CRNA-packager in Windows met PowerShell of CMD:

Windows $ garen run start
...
Om uw app met live herladen te bekijken, wijs de Expo-app naar deze QR-code.
U vindt de QR-scanner op het tabblad Projecten van de app.

Of voer dit adres in in de zoekbalk van de Expo-app:
exp: //  19000
Uw telefoon moet zich op hetzelfde lokale netwerk bevinden als deze computer.
Ga naar https://expo.io voor koppelingen om de Expo-app te installeren.
Logboeken van weergave van uw app worden hier weergegeven. Druk op elk gewenst moment op Ctrl + C om te stoppen.
›Druk op a om Android-apparaat of emulator te openen.
 ›Druk op q om de QR-code weer te geven.
 ›Druk op r om packager opnieuw te starten of op R om packager opnieuw te starten en de cache te wissen.
 ›Druk op d om de ontwikkelingsmodus te schakelen. (huidige modus: ontwikkeling)

Dit wordt de poort die we gebruiken.

Probeer vervolgens uw hostadres te vinden. (Verschillende machines hebben verschillende IP, YMMV)

OSXVM $ ifconfig
...
nl0: vlaggen = 8863  mtu 1500
options = b 
ether 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 beveiligd scopeid 0x4
inet 192.168.67.128 netmasker 0xffffff00 uitzending 192.168.67.255
nd6 opties = 201 
media: autoselect (1000baseT )
status: actief

Voor mij is dit het hostadres. Maar je moet de laatste byte weggooien en 1 toevoegen.

Dus de host-IP is hier 192.168.67.1. Noteer het eerst.

Vervolgens zullen we de geheime saus activeren die is gemaakt door de Apple-ingenieurs.

Vanaf XCode 9 krijgt u toegang tot het interne menu van de iOS-simulator door een eenvoudige map in de hoofdmap van uw Mac HD te maken. Oudere versies hebben deze functie AFAIK niet.

Sluit eerst al uw simulators. Typ dit dan gewoon in uw terminal.

OSXVM $ sudo mkdir / AppleInternal
(Uw wachtwoord)

Dat is het! Controleer nu of het interne menu aanwezig is door een simulator op te starten en zoek dit:

Eigenlijk is dit ook universeel voor echte Macs! Lees dit artikel in Medium voor de informatie over dit interne menu. Maar we zijn meer gericht op de modus volledig scherm, wat eigenlijk de reden is dat je je XCode samen met de simulator in een nieuwe virtuele desktop zou kunnen meenemen:

Als u een probleem met de machtiging had, nou ja, met name gebruikers van High Sierra, moet u deze map maken in de herstelmodus. Klik gewoon op Hulpprogramma en Terminal, maar u moet uw Main Mac HD verplaatsen, het zal ook werken.

Nu zullen we doorgaan met het installeren van Expo Client op (een van de) simulatoromgevingen.

Deze stap is erg triviaal, dus ik raad u aan dit in plaats daarvan te lezen uit het officiële document van Expo:

Nadat je de Expo-app hebt geïnstalleerd, open je deze in de Simulator.

Klik vervolgens op de 'Plus' en typ uw hostadres, maar eerst moeten we het opmaken naar wat de expo zou kunnen herkennen:

Het formaat is:

exp: // : 

Dus voor mij is dat: "exp: //192.168.67.1: 19000"

Klik op open en als u de bundel ziet worden gebouwd in de Windows Dev PC-zijde en dan GEFELICITEERD, kunt u de app-simulatoromgeving krijgen. HMR staat echter niet aan, maar is standaard Live Reload. Als je dat nodig hebt, ga je naar Hardware-> Schudgebaar en wijzig je het.

De laatste stap is om de modus Volledig scherm te activeren om deze nog meeslepender te maken. Moet klikken op een item in het interne menu eenvoudig en triviaal voor u zijn, klik dan op de groene knop op volledig scherm.

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

En dat is het! Je kunt zelfs Genymotion naast je laten werken! Dit is een zeer grote boost voor de productiviteit!

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

Dat is het einde van de update. Ik hoop dat je gelukkig bent in de reis! Expo is inderdaad een krachtig hulpmiddel en we moeten het koesteren. Er is niet zoiets als een gratis lunch. Overweeg donaties aan het Expo-project. Ze willen graag het project onderhouden en hun (build) server betalen! (Helaas boden ze nog geen methode om dit te doen)

En alsjeblieft, Apple, vertel je advocaat niet om contact met me op te nemen en me in de juridische problemen te brengen.