Cum să dezvolți Reactează aplicațiile iOS native în Windows cu Hackintosh (bine, un fel de)

Salut Mediu! Așa că aceasta este prima mea poveste, dar aș dori să intru direct în joc.

Sunt frustrat că am nevoie de un Mac și iPhone fizic pentru a dezvolta iOS React Native.

Adică, am MacBook și iPhone, îl am. Și a trebuit să-mi împărtășesc repo-ul la MacBook-ul meu, apoi să-mi rulez React Native Builder și React Native Packager, care este cam verosim și șchiop. Boo.

În plus, vreau să lucrez într-o stație de lucru work, am o stație de lucru Xeon și este trist că a trebuit să-mi iau rămas bun de la tastatură și mouse și de aici la revedere productivitate.

Chiar Xamarin a oferit un simulator iOS și un agent de construire la distanță, astfel încât să ne putem bucura să dezvoltăm pe computerul nostru principal și apoi să împingem construirea pe mediul nostru Mac de la distanță. Și mă îndoiesc că echipa RN ar avea briza pentru a face acest lucru.

Așa că mi-am stors o parte din puterea creierului și am ieșit în cele din urmă dintr-o soluție, care este foarte, foarte neplăcută, nebună și leneșă. Și aici sunt punctele la care m-am gândit:

Bunul 1: funcționează universal, în orice PC x86_64 biți cu virtualizare activată, având în vedere că ați urmat pașii în mod clar.

Bunul 2: Puteți elimina mediul cu ușurință. Puteți, de asemenea, să clonați un mediu și să-l mutați în altă parte.

The Bad 1: It, Just, funcționează!

Bad 2: Nu vă recomand să rulați alte programe Mac dincolo de XCode.

The Bad 3: Nu vă așteptați că procesoarele AMD vor rula mult peste asta.

The Ugly 1: Aveți nevoie de un PC monstruos, foarte înfocat, pentru a obține doar o fracțiune de performanță pe un Mac real.

The Ugly 2: Nici o accelerare hardware, așa că nu vă așteptați să rulați și să debutați contextul OpenGL ES cu acesta.

Dacă sunteți un bărbat adevărat, luați un Mac. Altfel, acum vom descoperi călătoria către Hack-in-to-Sh!

(Avertisment: Practicarea Hackintosh este o încălcare a EULA atât a software-ului Apple, cât și a hardware-ului și este posibil să vă confruntați cu acuzații și procese, în ciuda faptului că nimeni nu a fost în ultimii 10 ani, dar o companie o face, dar nu suntem limitați orice lucru cu computerul nostru, inclusiv instalarea diferitelor sisteme de operare, așa că pregătiți-vă și decideți dacă doriți să pășiți pe o zonă gri legală)

premisă

Așa cum am menționat înainte, aveți nevoie de un computer foarte puternic și puternic! Am o stație de lucru Xeon, dar abia funcționează bine, imaginați-vă ce fel de coșmar a fost să o strâmbi, nu?

De asemenea, aveți nevoie de un SSD, cu excepția cazului în care aveți răbdare să așteptați mai mult de 5 minute pentru a intra în Mac VM cu HDD.

Așteptați un minut! VM. Hmm ... Mașină virtuală? Ați ghicit că nu-i așa? Așa este, trebuie să avem nevoie de VMWare pentru asta.

Pasul 1: Obțineți imaginea de instalare Mac

Ei bine, fără asta nu am fi în stare să facem nimic ...

Dacă aveți un prieten care are un Mac, împrumutați mașina lui ...

Descărcați macOS Sierra din App Store ...

Accesați online și găsiți ritualul de a extrage imaginea de instalare într-o formă DMG / ISO portabilă.

Nu aș dezvălui o astfel de metodă, pentru că nu vreau să am probleme ~ ¯ \ _ (ツ) _ / ¯

Transferați fișierul DMG / ISO final pe computerul principal. Bineînțeles că vom avea nevoie de el, sau cum ...

Pasul 2: Descărcați VMWare Player

Dacă nu aveți stația de lucru VMWare, pe care majoritatea dintre noi nu o avem, atunci va trebui să continuăm descărcarea VMWare Player.

Instalați-l. Ar trebui să nu fie deloc probleme.

Pasul 3: Descărcați Unlocker

Bine, acesta este primul nostru hack.

Practic, VMWare a blocat opțiunile esențiale care împiedică funcționarea OSX și EFI și cooperarea împreună (cod dur, serial, SMB, etc.) care rulează pe orice instanță de mașină virtuală pe toate hipervizoarele VMWare, dar în VMWare Fusion.

Așadar, va trebui să-l „deblocăm” prin plasarea câtorva lucruri pentru ca Hackintosh să funcționeze.

După descărcarea fișierelor făcând clic pe „Clonare sau descărcare”, dezarhivați-l, găsiți fișierele denumite „win-install.cmd” și „win-update-tools.cmd”.

Faceți clic dreapta pe „win-install.cmd” și selectați „Executare ca administrator”, același lucru este „win-update-tools.cmd”. Acest lucru este necesar pentru a avea acces la Registrul Windows și a opri serviciile VMWare pentru a efectua corecția.

Pasul 4: Creați o mașină virtuală nouă

Deschideți-vă playerul VMWare și chiar în meniu selectați Creează o mașină virtuală nouă.

Apoi selectați fișierul cu imaginea discului de instalare pe care tocmai l-ați transferat înainte.

Apoi, va trebui să selectăm „Apple Mac OS X” și să alegem versiunea corespunzătoare. Aici, de exemplu, folosesc macOS Sierra, deci a fost „macOS 10.12”, dacă utilizați El Capitan sau Yosemite, obțineți versiunea corectă.

Treceți toate aceste opțiuni. Nu uitați să vă configurați VM-ul, am schimbat numărul de nuclee, dar de cele mai multe ori a fost OK pentru masă.

Pasul 5: Modificarea fișierului .vmx

Va trebui să ocolim limitarea impusă de VMWare pe care am menționat-o la pasul 3. Va trebui să adăugăm o intrare în fișierul de configurare al mașinii virtuale. Sau vă veți confrunta cu un dump de bază în timpul lansării VM.

În mod implicit, este localizat în „~ / Documente / Mașină virtuală / .vmx” dacă nu ați modificat locația.

Deschide-l și adaugă următorul text în finalul fișierului:

smc.version = "0"

Pasul 6: Start Me Up

Whew, ce muncă grea aici. Acum a sosit momentul ca instalarea să funcționeze.

♫ Dacă mă pornești, nu mă voi opri niciodată ♫

Nu trebuie să existe probleme deloc. Ar trebui să poți vedea logo-ul Apple fantezist.

(YMMV)

Și ecranul de selectare a limbii.

Ecran de selectare a limbii

Selectați limba dvs. Apoi, va trebui să facem clic pe Utilitare-> Utilitare disc. Formatați discul virtual în HFS.

Vedeți videoclipul în acest sens: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Apoi am putea continua să o instalăm. De obicei, este nevoie de aproximativ 20 de minute. În timpul așteptării îndelungate, pregătește-te și ia-ți o ceașcă de cafea și așteaptă până la sfârșit. O repornire automată este programată după sfârșit și veți vedea ecranul de întâmpinare.

Vezi în acțiune: https://puu.sh/w46Pw/519687fc0d.webm

Pasul 7: Setați-mă

Ecranul de bun venit

Finalizați-o așa cum faceți de obicei cu un Mac nou. Totuși, nu activați serviciul de locație și nu vă conectați încă la ID-ul Apple. Nu trimiteți date către Apple și nici pentru a crește ascunderea configurației noastre Hackintosh.

Va trebui să instalăm și VMWare Tools. Demontați unitatea de bază a sistemului OSX în căutător. Apoi faceți clic pe Player-> Manage-> Install VMWare Tools. Prin instalarea acestui lucru obțineți un impuls uriaș în ceea ce privește performanța, dar încă mai rulează în ochii noștri.

Vezi asta: https://puu.sh/w4a2m/314480bc99.webm

Felicitări! Acum aveți o mașină virtuală completă funcțională Hackintosh în mână! Vom trece acum la secțiunea dezvoltatorilor ...

Suntem pe punctul de a configura unele programe esențiale pe partea noastră de Hackintosh ...

Vom avea nevoie de ...

Brew. Desigur. Pentru NodeJS și NPM și React Native.

Fire pentru a accelera timpul de instalare a pachetului nostru, dacă nu folosiți share-ul așa cum fac eu.

Xcode pentru a compila React Native Host.

Pasul 1: Instalează Xcode

Ai nevoie de un ID Apple pentru acest lucru, nu cel al dezvoltatorului, unul obișnuit este în regulă.

Vedeți videoclipurile:

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

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

Așteptați până se termină. Nu ar trebui să dureze prea mult, aveți un acces la Internet prin cablu NAT. Ți-ar plăcea să joci Safari sau alte aplicații? (În ciuda performanței oribile)

Pasul 2: Instalați Brew și nod (și Fire și RN)

Faceți clic pe linkul de mai sus pentru a obține comanda mai întâi.

Ei bine, acesta ar trebui să fie ușor. Având în vedere că ați instalat VMWare Tools, clipboard-ul este bi-direcțional în mod implicit, astfel încât să-l puteți copia în partea Windows și să-l aruncați în partea Mac.

Deschideți terminalul și lipiți comanda dată de Brew. Introduceți parola pentru a permite instalarea. Toate vor fi automatizate și ar trebui să fie în mai puțin de 10 minute.

Luăm acest lucru ca exemplu: https://puu.sh/w4atb/acbf000b84.webm

(Apăsați WinKey + Space pentru a deschide căutarea Spotlight, apăsați WinKey + V pentru a lipi)

Instalarea nodului și NPM:

$ brew instalați nodejs

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

Instalarea firelor:

$ brew instala fire

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

Instalați RN:

$ npm -g install react-native-cli

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

Pasul 3: începeți proiectul

Deocamdată, nu mi-am copiat versiunea originală, dar am creat în schimb un nou proiect RN. Dacă ați mutat proiectul, aveți totul configurat perfect.

Aveți două modalități de derulare a proiectului; Metoda 1: Accesați folderul proiectului dvs., faceți clic pe ios, deschideți xcodeproj, faceți clic pe butonul de rulare din ID-ul Xcode; Metoda 2: Accesați folderul proiectului dvs. în terminal, introduceți „run-ios-native native react” și poof, acesta a fost finalizat.

Etapa finală: Rulați simulatorul

Succes! Se execută perfect! Ura!

Ați putea încerca să activați reîncărcarea la cald, să modificați unele coduri și să vedeți dacă se schimbă.

După aceea, totul ar trebui să funcționeze ca un farmec!

Ura! (Amintiți-vă, tasta de comandă == cheia Windows)

Nu am încercat să le rulez pe dispozitive fizice, dar, teoretic, aveți nevoie doar de passthrough USB, iar Xcode sau iTunes ar trebui să vă poată recunoaște dispozitivele.

Și să nu mai vorbim de legalitatea dintre ele, cred că acest Hackintosh este un hack destul de fantezist pentru a obține dezvoltări iOS în Windows fără a cumpăra un Mac Pro / MacBook Pro prea scump.

Unii pot chiar instala o distrugere actuală a Hackintosh în hardware-ul metalic gol, precum în acele ultrabook-uri, Dell XPS 15 sau ZenBook, în felul acesta se poate realiza același lucru, dar este mai periculos și ați pierdut mediul Windows (cu excepția cazului în care aveți activat dual boot - Majoritatea dintre noi nu).

Aștept cu nerăbdare să vă văd echipa RN lansând un nou set de instrumente pentru dev-urile Mac / Windows pentru a obține o experiență de dezvoltare mai bună, folosind în continuare cele mai confortabile instrumente proprii. Ei spun că este o idee interesantă și așteaptă PR.

Mă îndoiesc că acesta este răspunsul meu la acest lucru. Oricum, vă mulțumesc că ați citit acest articol (mai mult ca un tutorial). În mod sigur, va fi mai ușor, dacă aveți generozitatea de a vă împărtăși ideea, vă rugăm să faceți acest lucru în secțiunea de comentarii, aștept cu nerăbdare să vă văd reacția. Să aveți o zi frumoasă cu bâlciul meu!

(Editat în 13/1)

Salutari! Cred că a trecut mult timp de când am scris asta. Acum, am descoperit o lume cu totul nouă în ceea ce privește dezvoltarea de aplicații mobile într-un VM Hackintosh. Datorită avansării recente a React Native și prin exploatarea conexiunii Expo și numai pentru gazdă, putem avea un mediu de dezvoltare și mai dulce, astfel încât să puteți avea în sfârșit alegerea dvs. de server IDE și pachet găzduit în Windows.

Aceasta va trece peste pasul 3 din tutorialul pe care l-am menționat mai sus. O să vă prezint, de asemenea, încă un truc pentru ca VM să fie complet imersiv în dezvoltarea iOS.

Practic, aveți nevoie doar de CRNA și cea mai recentă versiune de Expo / React Native (vorbind despre 0,52 în momentul scrierii), asta este. Dacă aveți o aplicație existentă blocată sub CRNA, s-ar putea să funcționeze perfect și perfect.

E foarte simplu. (Presupun că veți folosi Fire, ar trebui să fie similar pentru NPM) Porniți pachetul CRNA în Windows, folosind PowerShell sau CMD:

Windows $ începerea rulării firelor
...
Pentru a vizualiza aplicația cu reîncărcare live, orientați aplicația Expo către acest cod QR.
Veți găsi scanerul QR în fila Proiecte din aplicație.

Sau introduceți această adresă în bara de căutare a aplicației Expo:
exp: // : 19000
Telefonul dvs. va trebui să fie pe aceeași rețea locală ca acest computer.
Pentru link-uri pentru instalarea aplicației Expo, accesați https://expo.io.
Jurnalele din difuzarea aplicației dvs. vor apărea aici. Apăsați Ctrl + C în orice moment pentru a opri.
›Apăsați a pentru a deschide dispozitivul sau emulatorul Android.
 ›Apăsați q pentru a afișa codul QR.
 ›Apăsați r pentru a reporni pachetul sau R pentru a reporni pachetul și ștergeți memoria cache.
 ›Apăsați d pentru a comuta modul de dezvoltare. (modul curent: dezvoltare)

Acesta va fi portul pe care îl folosim.

Apoi, încercați să găsiți adresa dvs. de gazdă. (Mașini diferite au IP diferit, YMMV)

OSXVM $ ifconfig
...
en0: flags = 8863  mtu 1500
Opțiuni = b 
eter 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 domeniul de aplicare securizat 0x4
inet 192.168.67.128 netmask 0xffffff00 difuzat 192.168.67.255
nd6 options = 201 
media: autoselect (1000baseT )
status: activ

Pentru mine, aceasta este adresa gazdei. Dar trebuie să aruncați ultimul octet și să adăugați 1.

Deci, IP-ul gazdei aici este 192.168.67.1. Ia o notă mai întâi.

Apoi, vom activa sosul secret făcut de inginerii Apple.

Pornind de la XCode 9, prin crearea unui director simplu în rădăcina Mac HD-ului dvs., puteți obține acces la meniul intern al simulatorului iOS. Versiunile mai vechi nu au această caracteristică AFAIK.

Închideți toate simulatoarele mai întâi. Apoi pur și simplu tastați acest lucru în terminalul dvs.

OSXVM $ sudo mkdir / AppleInternal
(Parola Dvs)

Asta e! Acum verificați dacă meniul intern este prezent prin pornirea unui simulator și căutați acest lucru:

De fapt, acest lucru este universal și pentru Mac-urile reale! Pentru informații despre acest meniu intern, verificați acest articol mediu. Dar suntem mai concentrați pe modul ecran complet, acesta fiind de fapt motivul pentru care ați putea aduce XCode-ul împreună cu simulatorul într-un nou desktop virtual:

Dacă aveți vreo problemă de permisiune, în special, utilizatorii din High Sierra, va trebui să creați acest folder în modul recuperare. Doar faceți clic pe Utility și Terminal, dar va trebui să vă mutați Main Mac HD, acesta va funcționa și el.

Acum, vom continua să instalăm Expo Client pe (oricare dintre) mediul simulator.

Acest pas este foarte banal, așa că vă recomand să citiți acest lucru din documentul oficial al Expo:

După ce ați instalat aplicația Expo, deschideți-o în Simulator.

Apoi, faceți clic pe „Plus” și introduceți adresa dvs. de gazdă, dar mai întâi, va trebui să o formatăm în ceea ce ar putea recunoaște expo:

Formatul este:

exp: // : 

Deci pentru mine, este: „exp: //192.168.67.1: 19000”

Faceți clic pe deschis și dacă vedeți că pachetul este construit în partea PC-ului Windows Dev, apoi CONGRATULĂRI, veți putea obține singur mediul simulator de aplicații. Cu toate acestea, HMR nu este activat, dar este implicit Reîncărcare Live. Dacă aveți nevoie de asta, accesați Hardware-> Agitați gestul și schimbați-l.

Ultimul pas este activarea modului pe ecran complet pentru a-l face mai imersiv. Ar trebui să faceți clic pe un element din meniul intern ușor și banal pentru dvs., trebuie doar să faceți clic pe butonul verde pe ecran complet.

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

Si asta e! Puteți avea chiar și Genymotion să lucreze alături! Acesta este un impuls foarte mare pentru productivitate!

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

Acesta este sfârșitul actualizării. Sper că sunteți fericiți în călătorie! Expoziția este într-adevăr un instrument puternic și trebuie să o prețuim. Nu există niciun fel de prânz gratuit. Vă rugăm să luați în considerare donațiile pentru proiectul Expo. Sunt dornici de bani pentru a menține proiectul și a-și plăti serverul (construit)! (Din păcate, nu au oferit nicio metodă de a face acest lucru încă)

Și vă rog, Apple, nu spuneți avocatului dvs. să mă contacteze și să mă bage în problemele legale.