Comment développer des applications iOS natives de React sous Windows avec Hackintosh (enfin, en quelque sorte)

Bonjour Medium! C'est donc ma première histoire, mais j'aimerais entrer directement dans le jeu.

Je suis un peu frustré de devoir utiliser un Mac physique et un iPhone pour développer iOS React Native.

Je veux dire, j'ai MacBook et iPhone, je l'ai. Et je devais partager mon référentiel sur mon MacBook, puis exécuter mes logiciels React Native Builder et React Native Packager, qui sont un peu verbeux et boiteux. Huer.

De plus, je souhaite travailler sur un poste de travail, j’ai un poste de travail Xeon et c’est triste de devoir dire au revoir à mon clavier et à ma souris et donc au revoir à la productivité.

Même Xamarin a proposé un simulateur iOS à distance et un agent de génération afin que nous puissions profiter du développement sur notre PC principal, puis de la génération sur notre environnement Mac distant. Et je doute que l'équipe d'infirmière ait le vent en poupe pour y arriver.

Alors j'ai pressé une partie de mon cerveau et suis finalement sorti d'une solution très farfelue, folle et paresseuse. Et voici les points auxquels j'ai pensé:

The Good 1: Cela fonctionne universellement, sur tous les PC x86_64 bits avec la virtualisation activée, étant donné que vous avez suivi les étapes clairement.

Le bon 2: Vous pouvez disposer de l'environnement facilement. Vous pouvez également cloner un environnement et le déplacer ailleurs.

Le mauvais 1: ça, ça marche!

The Bad 2: Je ne vous recommande pas d’exécuter d’autres programmes Mac que XCode.

The Bad 3: Ne vous attendez pas à ce que les processeurs AMD fonctionnent beaucoup plus longtemps.

The Ugly 1: Pour cela, vous avez besoin d’un PC très costaud et monstrueux, pour obtenir une infime partie des performances sur un vrai Mac.

The Ugly 2: Pas d’accélération matérielle, ne vous attendez donc pas à exécuter et à déboguer le contexte OpenGL ES avec celui-ci.

Si vous êtes un vrai homme, procurez-vous un Mac. Sinon, nous allons maintenant découvrir le voyage vers Hack-in-to-sh!

(Avertissement: la pratique de Hackintosh constitue une violation du CLUF du logiciel et du matériel Apple. Vous pouvez donc faire face à des poursuites et à des poursuites. Malgré le fait que personne ne l'a été au cours des 10 dernières années, à l'exception d'une entreprise, mais nous ne sommes pas limités à le faire. tout ce qui concerne votre ordinateur, y compris l’installation de divers systèmes d’exploitation, alors préparez-vous et décidez si vous souhaitez continuer à marcher sur une zone grise légale)

Prérequis

Comme je l’ai déjà mentionné, vous avez besoin d’un PC très puissant! J'ai un poste de travail Xeon, mais il fonctionne à peine, imaginez quel genre de cauchemar c'était de le faire bouger, hein?

En outre, vous avez besoin d'un SSD, à moins que vous n'ayez la patience d'attendre plus de 5 minutes pour accéder à votre ordinateur virtuel Mac avec votre disque dur.

Attends une minute! VM. Hmm… Machine virtuelle? Vous avez deviné que ce n’est pas vous? C’est vrai, nous aurons besoin de VMWare pour cela.

Étape 1: Récupération de l'image d'installation Mac

Eh bien, sans cela, nous ne pourrions rien faire…

Si vous avez un ami qui a un Mac, empruntez sa machine…

Téléchargez macOS Sierra depuis l'App Store…

Allez en ligne et trouvez le rituel pour extraire cette image d'installation en format DMG / ISO portable.

Je ne divulguerais pas une telle méthode car je ne voulais pas avoir de problèmes ~ ¯ \ _ (ツ) _ / ¯

Transférez le fichier DMG / ISO final sur votre PC principal. Bien sûr, nous en aurons besoin, ou comment pouvons-nous…

Étape 2: Télécharger le lecteur VMWare

Sauf si vous avez VMWare Workstation, ce que la plupart d’entre nous n’avons pas, nous devrons procéder au téléchargement de VMWare Player.

Il suffit de l'installer. Cela ne devrait poser aucun problème.

Étape 3: Téléchargez Unlocker

Bon, c'est notre premier piratage.

En gros, VMWare a verrouillé les options essentielles empêchant OSX et EFI de fonctionner ensemble et de coopérer (code dur, série, SMB, etc.) sur toutes les instances de machine virtuelle sur tous les hyperviseurs VMWare, à l'exception de VMWare Fusion.

Nous devrons donc le "déverrouiller" en corrigeant quelques éléments afin de faire fonctionner Hackintosh.

Après avoir téléchargé les fichiers en cliquant sur "Cloner ou télécharger", décompressez-le, recherchez les fichiers nommés "win-install.cmd" et "win-update-tools.cmd".

Cliquez avec le bouton droit de la souris sur «win-install.cmd» et sélectionnez «Exécuter en tant qu’administrateur». Il en va de même pour «win-update-tools.cmd». Cela est nécessaire pour accéder au registre Windows et arrêter les services VMWare afin de procéder à l'application de correctifs.

Étape 4: Créer une nouvelle machine virtuelle

Ouvrez votre lecteur VMWare et, dans le menu, sélectionnez Créer un nouvel ordinateur virtuel.

Sélectionnez ensuite le fichier d’image disque du programme d’installation que vous venez de transférer.

Ensuite, nous devrons sélectionner ‘Apple Mac OS X’ et choisir la version appropriée. Par exemple, j’utilise macOS Sierra, c’est donc «macOS 10.12», si vous utilisez El Capitan ou Yosemite, procurez-vous la bonne version.

Allez passer toutes ces options. N'oubliez pas de configurer votre machine virtuelle, j'ai changé le nombre de cœurs, mais la plupart du temps, c'était OK pour la masse.

Étape 5: Modding le fichier .vmx

Nous aurons à contourner la limitation imposée par VMWare que j'ai mentionnée à l'étape 3. Nous devrons ajouter une entrée au fichier de configuration de la machine virtuelle. Ou vous ferez face à un dépotoir lors du lancement de la VM.

Par défaut, il se trouve dans ‘~ / Documents / Machine virtuelle / / .vmx’ si vous n’avez pas changé d’emplacement.

Ouvrez-le et ajoutez le texte suivant à la fin du fichier:

smc.version = "0"

Étape 6: Démarrer moi

Ouf, quel travail difficile ici. Il est maintenant temps de lancer l’installation.

Si vous me démarrez je ne m'arrêterai jamais

Il ne devrait y avoir aucun problème. Vous devriez pouvoir voir le logo Apple fantaisie.

(YMMV)

Et l'écran de sélection de la langue.

Écran de sélection de la langue

Sélectionnez la langue de votre choix. Ensuite, nous devrons cliquer sur Utilitaires-> Utilitaire de disque. Formatez le disque virtuel en HFS.

Voir la vidéo du faire: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Ensuite, nous pourrions procéder à l’installer. Habituellement, cela prend environ 20 minutes. Pendant l'attente, préparez-vous, prenez une tasse de café et attendez jusqu'à la fin. Un redémarrage automatique est prévu après la fin et vous verrez l'écran de bienvenue.

Voir en action: https://puu.sh/w46Pw/519687fc0d.webm

Étape 7: Préparez-moi

L'écran d'accueil

Terminez-le comme vous le faites habituellement avec un nouveau Mac. N'activez pas le service de localisation et ne vous connectez pas à Apple ID pour le moment. N'envoyez pas de données à Apple et augmentez la dissimulation de notre configuration Hackintosh.

Nous devrons également installer VMWare Tools. Démontez votre lecteur du système de base OSX dans le viseur. Cliquez ensuite sur Lecteur-> Gérer-> Installer les outils VMWare. En installant cela, vous obtenez un énorme gain de performances, mais vous ne pouvez toujours pas vous en rendre compte.

Voir ceci: https://puu.sh/w4a2m/314480bc99.webm

Toutes nos félicitations! Vous avez maintenant une machine virtuelle Hackintosh entièrement fonctionnelle dans votre main! Nous allons maintenant passer à la section des développeurs…

Nous sommes sur le point d’installer un logiciel essentiel de notre côté Hackintosh…

Nous aurons besoin de…

Brasser. Bien sûr. Pour NodeJS et NPM et React Native.

Fil pour accélérer le temps d'installation de nos paquets, sauf si vous utilisez le partager comme je le fais.

Xcode pour compiler l'hôte natif de React.

Étape 1: Installez Xcode

Vous devez posséder un identifiant Apple, pas un identifiant de développeur, mais un identifiant ordinaire.

Voir les vidéos:

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

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

Attendez que ça finisse. Cela ne devrait pas prendre trop de temps, vous avez un accès Internet filaire avec NAT. Voulez-vous jouer à Safari ou à d'autres applications? (Malgré une performance horrible)

Étape 2: Installez Brew et Node (et fil et RN)

Cliquez sur le lien ci-dessus pour obtenir la commande en premier.

Eh bien, celui-ci devrait être facile. Étant donné que vous avez installé VMWare Tools, le Presse-papiers est bidirectionnel par défaut. Vous pouvez donc le copier sous Windows et le déposer dans Mac.

Ouvrez le terminal et collez la commande donnée par Brew. Entrez votre mot de passe pour autoriser l'installation. Tout sera automatisé et devrait être en moins de 10 minutes.

Prenez ceci comme exemple: https://puu.sh/w4atb/acbf000b84.webm

(Appuyez sur WinKey + Espace pour ouvrir la recherche Spotlight, appuyez sur WinKey + V pour coller)

Installation du noeud et du NPM:

$ brew install nodejs

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

Installation du fil:

$ brasser installer le fil

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

Installer RN:

$ npm -g installer react-native-cli

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

Étape 3: Obtenez votre projet

Pour le moment, je n'ai pas copié mon référentiel d'origine, mais j'ai plutôt créé un nouveau projet RN. Si vous avez déplacé votre projet, tout est parfaitement mis en place.

Vous avez deux façons de gérer votre projet. Méthode 1: Accédez au dossier de votre projet, cliquez sur ios, ouvrez le fichier xcodeproj, cliquez sur le bouton Exécuter dans l'IDE Xcode. Méthode 2: accédez au dossier de votre projet dans le terminal, entrez ‘react-native run-ios’, et poof, c’est fait.

Dernière étape: Exécuter le simulateur

Succès! Il fonctionne parfaitement! Yay!

Vous pouvez essayer d'activer le rechargement à chaud, modifier du code et voir s'il change.

Après cela, tout devrait fonctionner comme un charme!

Hourra! (Rappelez-vous, touche de commande == touche Windows)

Je n’ai pas essayé de le faire sur des appareils physiques, mais en théorie, vous n’avez besoin que d’une passerelle USB, et Xcode ou iTunes devraient pouvoir reconnaître vos appareils.

Alors, laissez la légalité entre les deux, je pense que ce Hackintosh est un hack assez sophistiqué pour obtenir un développement iOS sous Windows sans avoir à acheter un Mac Pro / MacBook Pro trop cher.

Certains peuvent même installer une véritable distribution Hackintosh dans du matériel nu, comme dans ces ultrabooks, Dell XPS 15 ou ZenBook, afin de parvenir à la même chose, mais c'est plus dangereux et vous perdez votre environnement Windows (à moins que vous n'utilisiez le double démarrage activé - La plupart d'entre nous ne le font pas).

J'ai hâte de voir l'équipe RN publier une nouvelle boîte à outils pour les développeurs Mac / Windows afin de bénéficier d'une meilleure expérience de développement tout en utilisant les outils les plus confortables qui soient. Ils disent que c’est une idée intéressante et attendent les relations publiques.

Je doute que ce soit ma réponse à cela. Quoi qu'il en soit, merci d'avoir lu cet article (plutôt un tutoriel). Il sera certainement plus facile, si vous avez la générosité de partager votre idée, veuillez le faire dans la section commentaires, je suis impatient de voir votre réaction. Passez une bonne journée avec mes bidouilles!

(Edité dans 13/1)

Salutations! Je suppose que cela fait longtemps que je n’ai pas écrit cela. Maintenant, j'ai découvert un tout nouveau monde en ce qui concerne le développement d'applications mobiles dans une machine virtuelle Hackintosh. Grâce aux avancées récentes de React Native et à l'exploitation de la connexion Expo et hôte uniquement, nous pouvons créer un environnement de développement encore plus doux, ce qui vous permet enfin d'héberger votre choix d'EDI et de serveur bundle sur Windows.

Cela va remplacer l'étape 3 du tutoriel que j'ai mentionné ci-dessus. Je vais également vous présenter une astuce supplémentaire pour rendre la machine virtuelle totalement immersive au développement iOS.

Fondamentalement, vous avez juste besoin de CRNA et de la dernière version d’Expo / React Native (qui parle de 0.52 au moment de la rédaction), c’est tout. Si vous avez une application existante amorcée sous CRNA, elle pourrait également fonctionner parfaitement.

C'est très simple. (Je suppose que vous utiliserez Yarn, devrait être similaire pour NPM) Démarrez votre programme de conditionnement CRNA sous Windows, à l'aide de PowerShell ou de CMD:

Filage de Windows $ commencer
...
Pour afficher votre application avec un rechargement en direct, pointez l'application Expo sur ce code QR.
Vous trouverez le scanner QR sous l'onglet Projets de l'application.

Ou entrez cette adresse dans la barre de recherche de l'application Expo:
exp: // : 19000
Votre téléphone devra être sur le même réseau local que cet ordinateur.
Pour obtenir des liens permettant d'installer l'application Expo, rendez-vous sur https://expo.io.
Les journaux de service de votre application apparaîtront ici. Appuyez sur Ctrl + C à tout moment pour vous arrêter.
›Appuyez sur a pour ouvrir un appareil ou un émulateur Android.
 ›Appuyez sur q pour afficher le code QR.
 ›Appuyez sur r pour redémarrer le conditionneur ou sur R pour le redémarrer et vider le cache.
 ›Appuyez sur d pour basculer en mode de développement. (mode actuel: développement)

Cela va être le port que nous utilisons.

Ensuite, essayez de trouver votre adresse d’hôte. (Une machine différente a une adresse IP différente, YMMV)

OSXVM $ ifconfig
...
en0: flags = 8863  mtu 1500
options = b 
éther 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 sécurisé identificateur de port 0x4
masque de réseau inet 192.168.67.128 0xffffff00 diffusé 192.168.67.255
nd6 options = 201 
support: sélection automatique (1000baseT )
statut: actif

Pour moi, c'est l'adresse de l'hôte. Mais vous devez supprimer le dernier octet et ajouter 1.

Donc, l'adresse IP de l'hôte est 192.168.67.1. Prenez-en note en premier.

Ensuite, nous activerons la sauce secrète faite par les ingénieurs Apple.

À partir de XCode 9, en créant un répertoire simple à la racine de votre Mac HD, vous pouvez accéder au menu interne du simulateur iOS. Les versions plus anciennes n’ont pas cette fonctionnalité AFAIK.

Fermez tous vos simulateurs en premier. Ensuite, tapez simplement ceci dans votre terminal.

OSXVM $ sudo mkdir / AppleInternal
(Votre mot de passe)

C'est tout! Maintenant, vérifiez si le menu interne est présent en démarrant un simulateur et cherchez ceci:

En fait, c'est également universel pour les vrais Mac! Pour les informations de ce menu interne, consultez cet article Medium. Mais nous nous concentrons davantage sur le mode plein écran, ce qui est la raison pour laquelle vous pouvez importer votre code X avec le simulateur dans un nouveau bureau virtuel:

Si vous aviez l'un des problèmes d'autorisation, eh bien, en particulier les utilisateurs de High Sierra, vous devrez créer ce dossier en mode de récupération. Cliquez simplement sur Utilitaire et Terminal, mais vous devrez déplacer votre Mac principal HD, cela fonctionnera également.

Nous allons maintenant installer Expo Client dans l’un des environnements de simulateur.

Cette étape est très simple, je vous recommande donc de lire ceci dans le document officiel de l'Expo:

Une fois l'application Expo installée, ouvrez-la dans le simulateur.

Cliquez ensuite sur "Plus" et entrez votre adresse d'hôte, mais nous devrons d'abord la formater en fonction de ce que l'expo pourrait reconnaître:

Le format est:

exp: // : 

Donc pour moi, c'est: “exp: //192.168.67.1: 19000”

Cliquez sur Ouvrir, et si vous voyez que l'ensemble est en cours de construction du côté de Windows Dev PC, alors FÉLICITATIONS, vous pourrez vous procurer l'environnement de simulation d'application. Cependant, HMR n'est pas activé mais Live Reload par défaut. Si vous en avez besoin, allez au Matériel-> Agitez le geste et changez-le.

La dernière étape consiste à activer le mode plein écran pour le rendre plus immersif. Si vous devez cliquer sur un élément du menu interne facile et trivial pour vous, cliquez simplement sur le bouton plein écran vert.

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

Et c'est tout! Vous pouvez même faire travailler Genymotion à vos côtés! C'est un très gros coup d'accélérateur pour la productivité!

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

C’est la fin de la mise à jour. J'espère que vous êtes heureux dans le voyage! L’expo est en effet un outil puissant et nous devons le chérir. Un déjeuner gratuit n’existe pas. Veuillez considérer les dons au projet Expo. Ils sont désireux d'argent pour maintenir le projet et payer leur serveur (build)! (Malheureusement, ils n'ont pas encore proposé de méthode)

Et s'il vous plaît, Apple, ne dites pas à votre avocat de me contacter et de me mettre dans les ennuis juridiques.