Come sviluppare app iOS native React in Windows con Hackintosh (beh, una specie di)

Ciao medio! Quindi questa è la mia prima storia, ma vorrei entrare subito nel gioco.

Sono un po 'frustrato e ho bisogno di un Mac e un iPhone fisici per eseguire lo sviluppo nativo di iOS React.

Voglio dire, ho MacBook e iPhone, ce l'ho. E ho dovuto condividere il mio repository sul mio MacBook, quindi eseguire React Native Builder e React Native Packager, che è un po 'prolisso e zoppo. Boo.

Inoltre, voglio lavorare in una workstation, ho una workstation Xeon ed è triste dover dire addio alla tastiera e al mouse e quindi addio alla produttività.

Anche Xamarin ha offerto un simulatore iOS remoto e un agente di build in modo che potessimo divertirci a svilupparci sul nostro PC principale e quindi spingere la build sul nostro ambiente Mac remoto. E dubito che il team RN avrebbe la brezza per farlo accadere.

Così ho spremuto un po 'del mio potere cerebrale e alla fine sono uscito da una soluzione, che è molto, molto stravagante, pazza e pigra. Ed ecco i punti a cui ho pensato:

The Good 1: Funziona universalmente, in qualsiasi PC x86_64 bit con Virtualization abilitato, dato che hai seguito chiaramente i passaggi.

Il buono 2: puoi smaltire facilmente l'ambiente. Puoi anche clonare un ambiente e spostarlo altrove.

The Bad 1: It, Just, Works!

The Bad 2: Non ti consiglio di eseguire altri programmi Mac oltre XCode.

The Bad 3: non aspettarti che le CPU AMD funzionino molto più di questo.

The Ugly 1: hai bisogno di un PC mostruoso e mostruoso per ottenere solo una frazione delle prestazioni su un vero Mac.

The Ugly 2: nessuna accelerazione hardware, quindi non aspettarti di eseguire ed eseguire il debug del contesto OpenGL ES con esso.

Se sei un vero uomo, prendi un Mac. Altrimenti ora scopriremo il viaggio verso Hack-in-to-sh!

(Avviso: la pratica di Hackintosh è una violazione dell'EULA sia del software che dell'hardware Apple e potresti dover affrontare accuse e azioni legali, nonostante il fatto che nessuno sia stato negli ultimi 10 anni ma un'azienda lo fa, ma non siamo limitati a farlo qualsiasi cosa con il nostro computer, inclusa l'installazione di vari sistemi operativi, quindi preparatevi e decidete se volete continuare a passare su una zona grigia legale)

necessario

Come ho già detto prima, in realtà hai bisogno di un PC molto forte e potente! Ho una stazione di lavoro Xeon, ma funziona a malapena bene, immagina che tipo di incubo è stato quello di farlo diventare frenetico, eh?

Inoltre, è necessario un SSD, a meno che non si abbia la pazienza di attendere più di 5 minuti per accedere al Mac VM con l'HDD.

Apetta un minuto! VM. Hmm ... Macchina virtuale? Hai indovinato, vero? Esatto, per questo avremo bisogno di VMWare.

Passaggio 1: recupera l'immagine di installazione del Mac

Bene, senza questo non saremmo in grado di fare nulla ...

Se hai un amico che ha un Mac, prendi in prestito la sua macchina ...

Scarica macOS Sierra dall'App Store ...

Vai online e trova il rituale per estrarre l'immagine dell'installazione in formato DMG / ISO portatile.

Non rivelerei questo metodo, perché non voglio avere problemi ~ ¯ \ _ (ツ) _ / ¯

Trasferisci il file DMG / ISO finale sul tuo PC principale. Ovviamente ne avremo bisogno o come ...

Passaggio 2: Scarica VMWare Player

A meno che tu non abbia VMWare Workstation, cosa che la maggior parte di noi non ha, dovremo procedere con il download di VMWare Player.

Basta installarlo. Non dovrebbero esserci problemi.

Passaggio 3: Scarica Unlocker

Bene, questo è il nostro primo hack.

Fondamentalmente, VMWare ha bloccato le opzioni essenziali che impedivano a OSX ed EFI di funzionare e cooperare insieme (hardcode, seriale, SMB, ecc.) In esecuzione su qualsiasi istanza di macchina virtuale su tutti gli hypervisor VMWare tranne VMWare Fusion.

Quindi dovremo "sbloccarlo" rattoppando alcune cose per far funzionare Hackintosh.

Dopo aver scaricato i file facendo clic su "Clona o scarica", decomprimili, trova i file "win-install.cmd" e "win-update-tools.cmd".

Fai clic con il tasto destro su "win-install.cmd" e seleziona "Esegui come amministratore", lo stesso vale per "win-update-tools.cmd". Ciò è necessario per ottenere l'accesso al registro di Windows e arrestare i servizi VMWare per eseguire patch.

Passaggio 4: creare una nuova macchina virtuale

Apri VMWare Player e nel menu seleziona Crea una nuova macchina virtuale.

Quindi seleziona il file di immagine del disco di installazione che hai appena trasferito in precedenza.

Quindi dovremo selezionare "Apple Mac OS X" e scegliere la versione appropriata. Qui ad esempio, sto usando macOS Sierra, quindi era "macOS 10.12", se stai usando El Capitan o Yosemite, ottieni la versione giusta.

Passa tutte quelle opzioni. Ricorda di configurare la tua VM, ho modificato i conteggi principali, ma il più delle volte è andato bene per la massa.

Passaggio 5: modifica del file .vmx

Dovremo aggirare la limitazione imposta da VMWare di cui ho parlato al passaggio 3. Dovremo aggiungere una voce al file di configurazione della macchina virtuale. Oppure dovrai affrontare un dump principale durante l'avvio della VM.

Per impostazione predefinita, si trova in "~ / Documents / Virtual Machine / / .vmx" se non hai modificato la posizione.

Aprilo e aggiungi il seguente testo alla fine del file:

smc.version = “0”

Passaggio 6: Start Me Up

Accidenti, che duro lavoro qui. Ora è il momento di far funzionare l'installazione.

♫ Se mi avvii non mi fermerò mai ♫

Non dovrebbero esserci problemi. Dovresti essere in grado di vedere il logo Apple fantasia.

(YMMV)

E la schermata di selezione della lingua.

Schermata di selezione della lingua

Seleziona la tua lingua. Quindi dovremo fare clic su Utilità-> Utilità disco. Formattare il disco virtuale su HFS.

Guarda il video su come farlo: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Quindi potremmo procedere con l'installazione. Di solito, ci vogliono circa 20 minuti per farlo. Durante l'attesa di lunga durata, preparati e prenditi una tazza di caffè e aspetta fino alla fine. Un riavvio automatico è programmato dopo la fine e verrà visualizzata la schermata di benvenuto.

Guarda in azione: https://puu.sh/w46Pw/519687fc0d.webm

Passaggio 7: impostami

La schermata di benvenuto

Finiscilo come fai di solito con un nuovo Mac. Tuttavia, non abilitare il servizio di localizzazione e non accedere ancora all'ID Apple. Non inviare dati ad Apple né per aumentare l'occultamento della nostra configurazione di Hackintosh.

Dovremo installare anche VMWare Tools. Smonta l'unità OSX Base System nel Finder. Quindi fare clic su Player-> Gestisci-> Installa VMWare Tools. Installandolo ottieni un enorme incremento delle prestazioni, ma a malapena scorre ancora ai nostri occhi.

Vedi questo: https://puu.sh/w4a2m/314480bc99.webm

Congratulazioni! Ora hai in mano una macchina virtuale Hackintosh completamente funzionale! Passiamo ora alla sezione degli sviluppatori ...

Stiamo per installare alcuni software essenziali sul nostro lato Hackintosh ...

Avremo bisogno di ...

Brew. Ovviamente. Per NodeJS e NPM e React Native.

Filati per velocizzare i tempi di installazione dei nostri pacchetti, a meno che tu non li usi come me.

Xcode per compilare React Native Host.

Passaggio 1: installare Xcode

Per questo è richiesto un ID Apple, no non quello per sviluppatori, quello normale va bene.

Guarda i video:

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

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

Aspetta che finisca. Non dovresti impiegare troppo tempo, hai un accesso a Internet via cavo NAT. Ti piacerebbe giocare a Safari o ad altre app? (Nonostante le prestazioni orribili)

Passaggio 2: installare Brew e Node (e Yarn e RN)

Fare clic sul collegamento sopra per ottenere prima il comando.

Bene, questo dovrebbe essere facile. Dato che hai installato VMWare Tools, gli Appunti sono bidirezionali per impostazione predefinita, quindi puoi copiarli sul lato Windows e scaricarli sul lato Mac.

Apri il terminale e incolla il comando dato da Brew. Inserisci la tua password per consentire l'installazione. Tutto sarà automatizzato e dovrebbe durare meno di 10 minuti.

Prendi questo come esempio: https://puu.sh/w4atb/acbf000b84.webm

(Premi WinKey + Spazio per aprire la ricerca Spotlight, Premi WinKey + V per incollare)

Installazione di Node e NPM:

$ brew installa nodejs

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

Installazione del filato:

$ brew installa filo

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

Installa RN:

$ npm -g installa reply-native-cli

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

Passaggio 3: inizia il tuo progetto

Per ora, non ho copiato il mio repository originale, ma ho invece creato un nuovo progetto RN. Se hai spostato il tuo progetto, hai tutto perfettamente impostato.

Hai due modi per eseguire il tuo progetto; Metodo 1: vai alla cartella del tuo progetto, fai clic su iOS, apri xcodeproj, fai clic sul pulsante Esegui nell'IDE Xcode; Metodo 2: vai alla cartella del tuo progetto nel terminale, inserisci "Reag-ios nativo", e poi, fatto.

Fase finale: eseguire il simulatore

Successo! Funziona perfettamente! Sìì!

Potresti provare ad abilitare la ricarica automatica, modificare un po 'di codice e vedere se cambia.

Dopodiché, tutto dovrebbe funzionare come un fascino!

Evviva! (Ricorda, tasto comando == tasto Windows)

Non ho provato a eseguirli su dispositivi fisici, ma in teoria hai solo bisogno del passthrough USB e Xcode o iTunes dovrebbero essere in grado di riconoscere i tuoi dispositivi.

Quindi, figuriamoci la legalità nel mezzo, penso che questo Hackintosh sia un trucco piuttosto elaborato per ottenere lo sviluppo di iOS in Windows senza acquistare un Mac Pro / MacBook Pro costoso.

Alcuni potrebbero persino installare una vera e propria distrazione di Hackintosh su hardware bare metal come in quegli ultrabook, Dell XPS 15 o ZenBook, in questo modo si può ottenere la stessa cosa, ma è più pericoloso e si perde l'ambiente Windows (a meno che non sia abilitato il doppio avvio - Molti di noi non lo fanno).

Non vedo l'ora di vedere il team di RN rilasciare un nuovo toolkit per gli sviluppatori Mac / Windows per ottenere una migliore esperienza di sviluppo pur usando gli strumenti più comodi dei nostri. Dicono che è un'idea interessante e attende PR.

Dubito che questa sia la mia risposta a questo. Comunque, grazie per aver letto questo articolo (più simile a un tutorial). Ci sarà sicuramente un modo più semplice, se hai la generosità di condividere la tua idea, per favore fallo nella sezione commenti, non vedo l'ora di vedere la tua reazione. Buona giornata con i miei hack!

(Modificato il 13/1)

Saluti! Immagino sia passato molto tempo da quando ho scritto questo. Ora, ho scoperto un mondo completamente nuovo riguardo allo sviluppo di app mobili in una macchina virtuale Hackintosh. Grazie al recente avanzamento di React Native e sfruttando Expo e la connessione solo host, possiamo avere un ambiente di sviluppo ancora più dolce in modo da poter finalmente avere la tua scelta di IDE e bundle server ospitati in Windows.

Questo sostituirà il passaggio 3 del tutorial che ho menzionato sopra. Vi presenterò anche un altro trucco per rendere la VM completamente immersiva nello sviluppo di iOS.

Fondamentalmente, hai solo bisogno di CRNA e dell'ultima versione di Expo / React Native (parlando di 0,52 al momento della stesura), tutto qui. Se hai un'app esistente avviata sotto CRNA, potrebbe funzionare anche perfettamente.

È molto semplice. (Suppongo che userete Filato, dovrebbe essere simile per NPM) Avvia il tuo packager CRNA in Windows, usando PowerShell o CMD:

Inizio della corsa del filato di Windows $
...
Per visualizzare la tua app con la ricarica in tempo reale, punta l'app Expo su questo codice QR.
Troverai lo scanner QR nella scheda Progetti dell'app.

Oppure inserisci questo indirizzo nella barra di ricerca dell'app Expo:
exp: // : 19000
Il telefono dovrà trovarsi sulla stessa rete locale di questo computer.
Per i collegamenti per installare l'app Expo, visitare https://expo.io.
I log della pubblicazione della tua app verranno visualizzati qui. Premi Ctrl + C in qualsiasi momento per interrompere.
›Premere a per aprire il dispositivo o l'emulatore Android.
 ›Premere q per visualizzare il codice QR.
 ›Premere r per riavviare packager o R ​​per riavviare packager e cancellare la cache.
 ›Premere d per attivare / disattivare la modalità di sviluppo. (modalità corrente: sviluppo)

Questa sarà la porta che stiamo usando.

Quindi, prova a trovare il tuo indirizzo host. (Macchine diverse hanno IP, YMMV diversi)

OSXVM $ ifconfig
...
en0: flags = 8863  mtu 1500
options = b 
etere 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 ambito protetto 0x4
inet 192.168.67.128 netmask 0xffffff00 broadcast 192.168.67.255
nd6 opzioni = 201 
media: selezione automatica (1000baseT )
stato: attivo

Per me, questo è l'indirizzo dell'host. Ma devi scartare l'ultimo byte e aggiungere 1.

Quindi l'IP host qui è 192.168.67.1. Prendine nota prima.

Quindi, attiveremo la salsa segreta prodotta dagli ingegneri Apple.

A partire da XCode 9, creando una semplice directory nella radice del tuo Mac HD, puoi accedere al menu interno del simulatore iOS. Le versioni precedenti non dispongono di questa funzione AFAIK.

Chiudi prima tutti i tuoi simulatori. Quindi digita semplicemente questo nel tuo terminale.

OSXVM $ sudo mkdir / AppleInternal
(La tua password)

Questo è tutto! Ora controlla se il menu interno è presente avviando un simulatore e cerca questo:

In realtà, questo è universale anche per i veri Mac! Per informazioni su questo menu interno, consulta questo articolo su Medium. Ma siamo più concentrati sulla modalità a schermo intero, che in realtà è il motivo per cui potresti portare il tuo XCode con il simulatore in un nuovo desktop virtuale:

Se hai riscontrato uno qualsiasi dei problemi di autorizzazione, in particolare gli utenti di High Sierra, dovrai creare questa cartella in modalità di ripristino. Fai clic su Utilità e Terminale, ma dovrai spostare il tuo Mac HD principale, funzionerà anche.

Ora, procederemo con l'installazione di Expo Client sull'ambiente (uno qualsiasi dei) del simulatore.

Questo passaggio è molto banale, quindi ti consiglio di leggere questo dal documento ufficiale di Expo:

Una volta installata l'app Expo, aprila nel simulatore.

Quindi, fai clic su "Più" e digita il tuo indirizzo host, ma prima dobbiamo formattarlo in base a ciò che Expo potrebbe riconoscere:

Il formato è:

exp: // : 

Quindi per me questo è: "exp: //192.168.67.1: 19000"

Fai clic su Apri e se vedi che il pacchetto è stato creato nel lato PC Windows Dev, quindi CONGRATULAZIONI, sarai in grado di ottenere l'ambiente del simulatore di app. Tuttavia, HMR non è attivo, ma è Live Reload, per impostazione predefinita. Se ne hai bisogno, vai Hardware-> Scuoti gesto e modificalo.

L'ultimo passaggio è attivare la modalità a schermo intero per renderlo più coinvolgente. Se fai clic su una voce nel menu interno per te in modo semplice e banale, fai clic sul pulsante verde a schermo intero.

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

E questo è tutto! Puoi anche avere Genymotion al fianco! Questa è una grande spinta alla produttività!

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

Questa è la fine dell'aggiornamento. Spero che tu sia felice nel viaggio! Expo è davvero uno strumento potente e dobbiamo amarlo. Non esiste un pranzo gratis. Si prega di considerare donazioni al progetto Expo. Sono desiderosi di soldi per mantenere il progetto e pagare il loro server (build)! (Purtroppo non hanno ancora offerto alcun metodo per farlo)

E per favore, Apple, non dire al tuo avvocato di contattarmi e farmi avere problemi legali.