Wie man native iOS-Apps unter Windows mit Hackintosh entwickelt

Hallo Medium! Das ist also meine erste Geschichte, aber ich möchte gleich ins Spiel kommen.

Ich bin ein bisschen frustriert, dass ich einen physischen Mac und ein iPhone für die Entwicklung von iOS React Native benötige.

Ich meine, ich habe MacBook und iPhone, ich habe es. Und ich musste mein Repo für mein MacBook freigeben und dann meinen React Native Builder und React Native Packager ausführen, was ziemlich ausführlich und lahm ist. Boo.

Außerdem möchte ich auf einer Workstation arbeiten. Ich habe eine Xeon-Workstation und es ist traurig, dass ich mich von meiner Tastatur und meiner Maus verabschieden musste und mich daher von der Produktivität verabschiedete.

Sogar Xamarin bot einen Remote-iOS-Simulator und einen Build-Agent an, damit wir die Entwicklung auf unserem Haupt-PC genießen und dann die Erstellung auf unserer Remote-Mac-Umgebung vorantreiben konnten. Und ich bezweifle, dass das RN-Team die Brise dazu haben würde.

Also drückte ich einen Teil meiner Gehirnleistung zusammen und kam schließlich zu einer Lösung, die sehr, sehr verrückt, verrückt und faul ist. Und hier sind die Punkte, an die ich gedacht habe:

Das Gute 1: Es funktioniert universell auf allen x86_64-Bit-PCs mit aktivierter Virtualisierung, vorausgesetzt, Sie haben die Schritte genau befolgt.

Der Gute 2: Sie können die Umwelt leicht entsorgen. Sie können eine Umgebung auch klonen und an einen anderen Ort verschieben.

Die schlechte 1: Es funktioniert einfach!

The Bad 2: Ich empfehle Ihnen nicht, andere Mac-Programme als XCode auszuführen.

Die schlechte 3: Erwarten Sie nicht, dass AMD-CPUs viel darüber laufen.

Das Hässliche 1: Um auf einem echten Mac nur einen Bruchteil der Leistung zu erzielen, ist ein sehr leistungsfähiger, monströser PC erforderlich.

The Ugly 2: Keine Hardwarebeschleunigung. Erwarten Sie also nicht, OpenGL ES-Kontext damit auszuführen und zu debuggen.

Wenn Sie ein richtiger Mann sind, besorgen Sie sich einen Mac. Sonst entdecken wir jetzt die Reise zu Hack-in-to-sh!

(Warnung: Das Üben von Hackintosh stellt einen Verstoß gegen die EULA von Apple Software und Hardware dar, und es kann zu Anklagen und Rechtsstreitigkeiten kommen, obwohl in den letzten 10 Jahren niemand anders als ein Unternehmen vorgegangen ist. Wir sind jedoch nicht darauf beschränkt Alles, was mit unserem Computer zu tun hat, einschließlich der Installation verschiedener Betriebssysteme. Machen Sie sich also gefasst und entscheiden Sie, ob Sie weiterhin eine legale Grauzone betreten möchten.

Voraussetzung

Wie bereits erwähnt, benötigen Sie einen sehr starken und leistungsstarken PC! Ich habe eine Xeon-Workstation, aber sie läuft kaum gut. Stellen Sie sich vor, was für ein Albtraum es war, sie zum Laufen zu bringen, oder?

Außerdem benötigen Sie eine SSD, sofern Sie nicht die Geduld haben, länger als 5 Minuten zu warten, bis Sie mit Ihrer Festplatte auf Ihre Mac VM zugreifen können.

Warte eine Minute! VM. Hmm ... Virtuelle Maschine? Sie haben es erraten, oder? Richtig, wir brauchen dafür VMWare.

Schritt 1: Holen Sie sich das Mac-Installations-Image

Nun, ohne das wären wir nicht in der Lage, irgendetwas zu tun ...

Wenn Sie einen Freund haben, der einen Mac hat, leihen Sie sich seinen Computer aus.

Laden Sie macOS Sierra aus dem App Store herunter…

Gehen Sie online und finden Sie das Ritual, dieses Installations-Image in ein portables DMG / ISO-Format zu rippen.

Ich würde eine solche Methode nicht offenlegen, da ich keine Probleme bekommen möchte. ~ ¯ \ _ (ツ) _ / ¯

Übertragen Sie die endgültige DMG / ISO-Datei auf Ihren Haupt-PC. Natürlich werden wir es brauchen, oder wie können wir ...

Schritt 2: Laden Sie VMWare Player herunter

Sofern Sie nicht VMWare Workstation haben, was die meisten von uns nicht tun, müssen wir den VMWare Player herunterladen.

Einfach installieren. Sollte überhaupt keine Probleme geben.

Schritt 3: Unlocker herunterladen

Okay, das ist unser erster Hack.

Grundsätzlich hat VMWare die wesentlichen Optionen gesperrt, um zu verhindern, dass OSX und EFI auf allen VMWare-Hypervisor-Instanzen außer VMWare Fusion ausgeführt werden und zusammenarbeiten (Hardcode, seriell, SMB usw.).

Wir müssen es also "entsperren", indem wir ein paar Dinge patchen, damit Hackintosh funktioniert.

Nachdem Sie die Dateien durch Klicken auf "Klonen oder Herunterladen" heruntergeladen haben, entpacken Sie sie und suchen Sie die Dateien mit den Namen "win-install.cmd" und "win-update-tools.cmd".

Klicken Sie mit der rechten Maustaste auf "win-install.cmd" und wählen Sie "Als Administrator ausführen". Gleiches gilt für "win-update-tools.cmd". Dies ist erforderlich, um Zugriff auf die Windows-Registrierung zu erhalten und die VMWare-Dienste zu beenden, um Patches auszuführen.

Schritt 4: Erstellen Sie eine neue virtuelle Maschine

Öffnen Sie Ihren VMWare-Player und wählen Sie direkt im Menü die Option Neue virtuelle Maschine erstellen.

Wählen Sie dann die zuvor übertragene Installations-CD-Image-Datei aus.

Dann müssen wir "Apple Mac OS X" auswählen und die entsprechende Version auswählen. In diesem Beispiel verwende ich macOS Sierra. Wenn Sie also El Capitan oder Yosemite verwenden, war es "macOS 10.12". Besorgen Sie sich die richtige Version.

Übergeben Sie alle diese Optionen. Denken Sie daran, Ihre VM zu konfigurieren. Ich habe die Anzahl der Kerne geändert, aber die meiste Zeit war es für die Masse in Ordnung.

Schritt 5: Ändern der VMX-Datei

Wir müssen die von VMWare auferlegte Einschränkung umgehen, die ich in Schritt 3 erwähnt habe. Wir müssen der Konfigurationsdatei der virtuellen Maschine einen Eintrag hinzufügen. Oder Sie werden während des Starts der VM auf einen Core-Dump stoßen.

Standardmäßig befindet es sich unter "~ / Documents / Virtual Machine / / .vmx", wenn Sie den Speicherort nicht geändert haben.

Öffnen Sie es und fügen Sie den folgenden Text ganz am Ende der Datei hinzu:

smc.version = "0"

Schritt 6: Starten Sie mich

Puh, was für eine harte Arbeit hier. Jetzt ist es Zeit, die Installation zum Laufen zu bringen.

♫ Wenn du mich aufmachst, höre ich nie auf ♫

Es sollte überhaupt keine Probleme geben. Sie sollten in der Lage sein, das schicke Apple-Logo zu sehen.

(YMMV)

Und der Sprachauswahlbildschirm.

Bildschirm zur Sprachauswahl

Wählen Sie Ihre eigene Sprache. Dann müssen wir auf Dienstprogramme-> Festplatten-Dienstprogramm klicken. Formatieren Sie die virtuelle Festplatte in HFS.

Sehen Sie sich das Video dazu an: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Dann können wir mit der Installation fortfahren. Normalerweise dauert dies ungefähr 20 Minuten. Bereiten Sie sich während des langen Wartens eine Tasse Kaffee zu und warten Sie bis zum Ende. Nach dem Ende ist ein automatischer Neustart geplant, und der Begrüßungsbildschirm wird angezeigt.

Siehe in Aktion: https://puu.sh/w46Pw/519687fc0d.webm

Schritt 7: Richte mich ein

Der Begrüßungsbildschirm

Beenden Sie es wie gewohnt mit einem neuen Mac. Aktivieren Sie den Ortungsdienst noch nicht und melden Sie sich noch nicht bei Apple ID an. Senden Sie keine Daten an Apple und erhöhen Sie nicht die Verschleierung unseres Hackintosh-Setups.

Wir müssen auch VMWare Tools installieren. Hängen Sie das OSX Base System-Laufwerk im Finder aus. Klicken Sie dann auf Player-> Verwalten-> VMWare-Tools installieren. Indem Sie dies installieren, erhalten Sie einen enormen Leistungszuwachs, der jedoch in unseren Augen kaum spürbar ist.

Siehe hierzu: https://puu.sh/w4a2m/314480bc99.webm

Herzliche Glückwünsche! Sie haben jetzt eine voll funktionsfähige virtuelle Hackintosh-Maschine in der Hand! Wir wechseln jetzt in den Entwicklerbereich.

Wir sind dabei, wichtige Software auf unserer Hackintosh-Seite einzurichten.

Wir brauchen ...

Brauen. Natürlich. Für NodeJS und NPM und React Native.

Faden Sie, um die Installationszeit unseres Pakets zu beschleunigen, es sei denn, Sie teilen ihn wie ich.

Xcode zum Kompilieren von React Native Host.

Schritt 1: Installieren Sie Xcode

Hierfür benötigen Sie eine Apple-ID, nicht die des Entwicklers. Eine normale ID ist in Ordnung.

Siehe die Videos:

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

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

Warten Sie, bis es beendet ist. Sollte nicht zu lange dauern, verfügen Sie über einen kabelgebundenen NAT-Internetzugang. Möchten Sie Safari oder andere Apps spielen? (Trotz schrecklicher Leistung)

Schritt 2: Brauen und Knoten (und Garn und RN) installieren

Klicken Sie auf den obigen Link, um zuerst den Befehl abzurufen.

Nun, das sollte einfach sein. Wenn Sie VMWare Tools installiert haben, ist die Zwischenablage standardmäßig bidirektional, sodass Sie sie auf Ihrer Windows-Seite kopieren und auf der Mac-Seite sichern können.

Öffnen Sie das Terminal und fügen Sie den von Brew gegebenen Befehl ein. Geben Sie Ihr Passwort ein, um die Installation zu ermöglichen. Alles wird automatisiert und sollte in weniger als 10 Minuten sein.

Nehmen Sie dies als Beispiel: https://puu.sh/w4atb/acbf000b84.webm

(Drücken Sie WinKey + Space, um die Spotlight-Suche zu öffnen. Drücken Sie WinKey + V, um sie einzufügen.)

Knoten und NPM installieren:

$ brew install nodejs

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

Garn installieren:

$ Garne einlegen

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

Installieren Sie RN:

$ npm -g installiere react-native-cli

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

Schritt 3: Fahren Sie mit Ihrem Projekt fort

Derzeit habe ich mein ursprüngliches Repo nicht kopiert, sondern ein neues RN-Projekt erstellt. Wenn Sie Ihr Projekt verschoben haben, ist alles perfekt eingerichtet.

Sie haben zwei Möglichkeiten, Ihr Projekt auszuführen. Methode 1: Gehen Sie in Ihren Projektordner, klicken Sie auf ios, öffnen Sie das xcodeproj und klicken Sie in der Xcode IDE auf die Schaltfläche Ausführen. Methode 2: Wechseln Sie im Terminal zu Ihrem Projektordner, geben Sie "Native Run-ios reagieren" ein, und fertig.

Letzter Schritt: Simulator ausführen

Erfolg! Es läuft perfekt! Yay!

Sie könnten versuchen, Hot-Reload zu aktivieren, Code zu ändern und zu prüfen, ob er sich ändert.

Danach sollte alles wie ein Zauber funktionieren!

Hurra! (Denken Sie daran, Befehlstaste == Windows-Taste)

Ich habe nicht versucht, sie auf physischen Geräten auszuführen, aber theoretisch benötigen Sie nur einen USB-Durchgang, und Xcode oder iTunes sollten in der Lage sein, Ihre Geräte zu erkennen.

Ganz zu schweigen von der Legalität dazwischen. Ich denke, dieser Hackintosh ist ein ziemlich ausgefallener Hack, um iOS-Entwicklung unter Windows zu bekommen, ohne einen überteuerten Mac Pro / MacBook Pro zu kaufen.

Einige können sogar eine tatsächliche Hackintosh-Distribution in Bare-Metal-Hardware wie die Ultrabooks Dell XPS 15 oder ZenBook installieren. Auf diese Weise kann das Gleiche erreicht werden, aber es ist gefährlicher und Sie haben Ihre Windows-Umgebung verloren (es sei denn, Sie haben Dual-Boot aktiviert - Die meisten von uns tun das nicht.

Ich freue mich darauf, dass das RN-Team ein neues Toolkit für Mac / Windows-Entwickler herausbringt, um eine bessere Entwicklungserfahrung zu erzielen und gleichzeitig die komfortabelsten Tools unserer eigenen zu verwenden. Sie sagen, es ist eine interessante Idee und wartet auf PR.

Ich bezweifle, dass dies meine Antwort ist. Wie auch immer, danke, dass Sie diesen Artikel gelesen haben (eher wie ein Tutorial). Es ist sicherlich einfacher, wenn Sie die Großzügigkeit haben, Ihre Idee zu teilen, tun Sie dies bitte im Kommentarbereich. Ich freue mich auf Ihre Reaktion. Ich wünsche dir einen schönen Tag mit meinen Hacks!

(Bearbeitet in 13/1)

Schöne Grüße! Ich denke, es ist lange her, seit ich das geschrieben habe. Jetzt habe ich eine ganz neue Welt für die Entwicklung mobiler Apps in einer Hackintosh-VM entdeckt. Dank der jüngsten Weiterentwicklung von React Native und der Ausnutzung von Expo und Host-Only-Verbindungen können wir eine noch süßere Entwicklungsumgebung haben, sodass Sie endlich die Wahl zwischen IDE und Bundle-Server haben können, die in Windows gehostet werden.

Dies wird Schritt 3 im oben erwähnten Tutorial überschreiben. Ich werde Ihnen auch einen weiteren Trick vorstellen, um die VM für die iOS-Entwicklung voll einsatzfähig zu machen.

Grundsätzlich benötigen Sie nur CRNA und die neueste Version von Expo / React Native (sprich 0,52 zum Zeitpunkt des Schreibens). Wenn Sie eine vorhandene App unter CRNA gebootet haben, funktioniert diese möglicherweise auch einwandfrei.

Es ist sehr einfach. (Ich gehe davon aus, dass Sie Yarn verwenden, sollte für NPM ähnlich sein.) Starten Sie Ihren CRNA-Packager unter Windows mit PowerShell oder CMD:

Windows $ Fadenlauf starten
...
Zeigen Sie mit der Expo-App auf diesen QR-Code, um Ihre App beim erneuten Laden in Echtzeit anzuzeigen.
Sie finden den QR-Scanner auf der Registerkarte Projekte der App.

Oder geben Sie diese Adresse in die Suchleiste der Expo-App ein:
exp: // : 19000
Ihr Telefon muss sich im selben lokalen Netzwerk wie dieser Computer befinden.
Links zur Installation der Expo-App finden Sie unter https://expo.io.
Hier werden Protokolle von der Bereitstellung Ihrer App angezeigt. Sie können jederzeit Strg + C drücken, um den Vorgang zu beenden.
›Drücken Sie a, um das Android-Gerät oder den Emulator zu öffnen.
 ›Drücken Sie q, um den QR-Code anzuzeigen.
 ›Drücken Sie r, um den Packager neu zu starten, oder R, um den Packager neu zu starten und den Cache zu löschen.
 ›Drücken Sie d, um den Entwicklungsmodus umzuschalten. (aktueller Modus: Entwicklung)

Dies wird der Port sein, den wir benutzen.

Versuchen Sie dann, Ihre Host-Adresse zu finden. (Unterschiedliche Maschinen haben unterschiedliche IP, 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 protected scopeid 0x4
inet 192.168.67.128 netmask 0xffffff00 broadcast 192.168.67.255
nd6 options = 201 
Medien: automatische Auswahl (1000baseT )
Status: aktiv

Für mich ist dies die Hostadresse. Sie müssen jedoch das letzte Byte verwerfen und 1 anhängen.

Die Host-IP hier ist also 192.168.67.1. Machen Sie sich zuerst eine Notiz davon.

Dann werden wir die geheime Sauce der Apple-Ingenieure aktivieren.

Ab XCode 9 können Sie durch Erstellen eines einfachen Verzeichnisses im Stammverzeichnis Ihres Mac HD auf das interne Menü des iOS-Simulators zugreifen. Ältere Versionen haben diese AFAIK-Funktion nicht.

Schließen Sie zuerst alle Ihre Simulatoren. Dann geben Sie dies einfach in Ihr Terminal ein.

OSXVM $ sudo mkdir / AppleInternal
(Ihr Passwort)

Das ist es! Überprüfen Sie nun, ob das interne Menü vorhanden ist, indem Sie einen Simulator starten und suchen Sie danach:

Eigentlich ist dies auch für echte Macs universell! Informationen zu diesem internen Menü finden Sie in diesem Medium-Artikel. Wir konzentrieren uns jedoch mehr auf den Vollbildmodus. Dies ist der eigentliche Grund, warum Sie Ihren XCode zusammen mit dem Simulator in einen neuen virtuellen Desktop integrieren können:

Wenn Sie ein Berechtigungsproblem hatten, insbesondere High Sierra-Benutzer, müssen Sie diesen Ordner im Wiederherstellungsmodus erstellen. Klicken Sie einfach auf "Dienstprogramm" und "Terminal", aber Sie müssen Ihren Haupt-Mac HD an einen anderen Ort bringen, damit dies auch funktioniert.

Nun werden wir Expo Client in einer beliebigen Simulatorumgebung installieren.

Dieser Schritt ist sehr trivial, daher empfehle ich Ihnen, dies stattdessen aus dem offiziellen Expo-Dokument zu lesen:

Sobald Sie die Expo-App installiert haben, öffnen Sie sie im Simulator.

Klicken Sie dann auf "Plus" und geben Sie Ihre Host-Adresse ein. Zunächst müssen wir sie jedoch so formatieren, dass sie von der Messe erkannt wird:

Das Format ist:

exp: // : 

Für mich heißt das also: "exp: //192.168.67.1: 19000"

Klicken Sie auf "Öffnen". Wenn Sie sehen, dass das Bundle auf der Windows Dev-PC-Seite erstellt wird, und dann auf "GLÜCKWÜNSCHE", können Sie sich die App-Simulator-Umgebung herunterladen. HMR ist jedoch nicht aktiviert, sondern standardmäßig auf Live Reload eingestellt. Wenn Sie das brauchen, gehen Sie zu Hardware-> Shake Gesture und ändern Sie es.

Der letzte Schritt besteht darin, den Vollbildmodus zu aktivieren, um ihn noch umfassender zu gestalten. Sollte das Anklicken eines Elements im internen Menü für Sie einfach und trivial sein, klicken Sie einfach auf die grüne Vollbild-Schaltfläche.

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

Und das ist es! Sie können Genymotion sogar neben sich arbeiten lassen! Dies ist eine sehr große Steigerung der Produktivität!

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

Damit ist das Update beendet. Hoffe du bist glücklich auf der Reise! Expo ist in der Tat ein mächtiges Werkzeug und wir müssen es schätzen. Es gibt kein kostenloses Mittagessen. Bitte berücksichtigen Sie Spenden für das Expo-Projekt. Sie sind bestrebt, das Projekt zu unterhalten und ihren (Build-) Server zu bezahlen! (Leider haben sie noch keine Methode angeboten, dies zu tun)

Und bitte, Apple, fordern Sie Ihren Anwalt nicht auf, sich mit mir in Verbindung zu setzen und mich in rechtliche Schwierigkeiten zu bringen.