Cara mengembangkan React Native iOS Apps di Windows dengan Hackintosh (well, semacam)

Halo Medium! Jadi ini adalah cerita pertama saya, tetapi saya ingin langsung masuk ke dalam permainan.

Saya agak frustrasi. Saya membutuhkan Mac dan iPhone fisik untuk melakukan pengembangan iOS React Native.

Maksudku, aku punya MacBook dan iPhone, aku memang memilikinya. Dan saya harus membagikan repo saya ke MacBook saya kemudian menjalankan React Native Builder dan React Native Packager, yang agak verbose dan lumpuh. Boo.

Selain itu, saya ingin bekerja di workstation, saya memiliki workstation Xeon dan sedih saya harus mengucapkan selamat tinggal pada keyboard dan mouse saya dan karenanya selamat tinggal pada produktivitas.

Bahkan Xamarin menawarkan iOS Remote simulator dan build agent sehingga kami dapat menikmati pengembangan di PC utama kami dan kemudian mendorong build di lingkungan Mac jarak jauh kami. Dan saya ragu tim RN akan memiliki angin untuk mewujudkannya.

Jadi saya memeras beberapa kekuatan otak saya dan akhirnya keluar dari solusi, yang sangat, sangat aneh, gila dan malas. Dan inilah poin yang saya pikirkan:

The Good 1: Ini berfungsi secara universal, pada PC x86_64 bit mana pun dengan Virtualisasi diaktifkan, mengingat Anda telah mengikuti langkah-langkah dengan jelas.

The Good 2: Anda dapat membuang lingkungan dengan mudah. Anda juga dapat mengkloning suatu lingkungan dan memindahkannya ke tempat lain.

The Bad 1: It, Just, Works!

Yang Buruk 2: Saya Tidak menyarankan Anda untuk menjalankan program Mac lain di luar XCode.

The Bad 3: Jangan berharap CPU AMD untuk menjalankan lebih dari ini.

The Ugly 1: Anda perlu PC yang sangat besar dan gemuk untuk itu, untuk mendapatkan hanya sebagian kecil dari kinerja pada Mac nyata.

The Ugly 2: Tidak ada akselerasi perangkat keras, jadi jangan berharap untuk menjalankan dan men-debug konteks OpenGL ES dengannya.

Jika Anda pria sejati, dapatkan Mac. Kalau tidak sekarang kita akan menemukan perjalanan ke Hack-in-to-sh!

(Peringatan: Berlatih Hackintosh adalah pelanggaran EULA atas Perangkat Lunak dan Perangkat Keras Apple, dan Anda mungkin menghadapi tuntutan hukum dan tuntutan hukum, meskipun faktanya tidak ada seorang pun dalam 10 tahun terakhir tetapi perusahaan yang melakukannya, namun kami tidak terbatas untuk melakukan apa pun dengan komputer kami, termasuk menginstal berbagai sistem operasi, jadi persiapkan diri Anda dan putuskan apakah Anda ingin terus melangkah di zona abu-abu yang sah)

Prasyarat

Seperti yang saya sebutkan sebelumnya, Anda benar-benar membutuhkan PC yang sangat kuat dan kuat! Saya memiliki workstation Xeon, tetapi hampir tidak berjalan dengan baik, bayangkan seperti apa mimpi buruk untuk mendapatkannya dengan cepat, eh?

Selain itu, Anda memerlukan SSD, kecuali Anda memiliki kesabaran untuk menunggu lebih dari 5 menit untuk masuk ke Mac VM dengan HDD Anda.

Tunggu sebentar! VM Hmm ... Mesin virtual? Anda sudah menebaknya bukan? Itu benar, kita perlu VMWare untuk ini.

Langkah 1: Ambil gambar instalasi Mac

Nah, tanpa ini kita tidak akan bisa melakukan apa-apa ...

Jika Anda memiliki teman yang memiliki Mac, pinjam mesinnya ...

Unduh macOS Sierra dari App Store ...

Pergi online dan temukan ritual untuk merobek gambar instalasi itu ke dalam bentuk DMG / ISO portabel.

Saya tidak akan mengungkapkan metode seperti itu, karena saya tidak ingin mendapat masalah ~ ¯ \ _ (ツ) _ / ¯

Transfer file DMG / ISO terakhir ke PC utama Anda. Tentu saja kita akan membutuhkannya, atau bagaimana kita ...

Langkah 2: Unduh VMWare Player

Kecuali Anda memiliki VMWare Workstation, yang sebagian besar dari kita tidak, maka kami harus melanjutkan mengunduh VMWare Player.

Instal saja. Seharusnya tidak ada masalah sama sekali.

Langkah 3: Unduh Unlocker

Baiklah, ini hack pertama kita.

Pada dasarnya, VMWare mengunci opsi-opsi penting yang mencegah OSX dan EFI bekerja dan bekerja sama secara bersamaan (hardcode, serial, SMB, dll.) Berjalan pada mesin virtual mana saja pada semua hyperwatch VMWare tetapi VMWare Fusion.

Jadi kita harus 'membuka' dengan menambal beberapa hal agar Hackintosh berfungsi.

Setelah mengunduh file dengan mengeklik ‘Kloning atau mengunduh’, buka zipnya, cari file bernama ‘win-install.cmd’ dan ‘win-update-tools.cmd’.

Klik kanan ‘win-install.cmd’ dan pilih ‘Jalankan sebagai Administrator’, hal yang sama berlaku ‘win-update-tools.cmd’. Ini diperlukan untuk mendapatkan akses ke Windows Registry dan menghentikan layanan VMWare untuk melakukan penambalan.

Langkah 4: Buat Mesin Virtual Baru

Buka VMWare Player Anda dan tepat di menu pilih Create a Virtual Machine Baru.

Kemudian pilih file gambar disk pemasang yang baru saja Anda transfer.

Maka kita harus memilih ‘Apple Mac OS X’ dan memilih versi yang sesuai. Di sini misalnya, saya menggunakan macOS Sierra, jadi itu adalah 'macOS 10.12', jika Anda menggunakan El Capitan atau Yosemite, dapatkan versi yang tepat.

Lewati semua opsi itu. Ingatlah untuk mengkonfigurasi VM Anda, saya mengubah jumlah inti, tetapi sebagian besar waktu itu OK untuk massa.

Langkah 5: Memodifikasi file .vmx

Kita harus mengatasi batasan yang diberlakukan oleh VMWare yang telah saya sebutkan pada Langkah 3. Kita harus menambahkan entri ke file konfigurasi mesin virtual. Atau Anda akan menghadapi dump inti selama peluncuran VM.

Secara default, ini terletak di ‘~ / Documents / Virtual Machine / / .vmx’ jika Anda belum mengubah lokasi.

Buka dan tambahkan teks berikut di bagian paling akhir file:

smc.version = “0”

Langkah 6: Mulai Saya Naik

Wah, kerja keras di sini. Sekarang saatnya instalasi berjalan.

♫ Jika kamu memulai aku tidak akan pernah berhenti ♫

Seharusnya tidak ada masalah sama sekali. Anda harus dapat melihat Logo Apple yang mewah.

(YMMV)

Dan layar pemilihan bahasa.

Layar pemilihan bahasa

Pilih bahasa Anda sendiri. Maka kita harus mengklik Utilities-> Disk Utility. Memformat disk virtual ke HFS.

Lihat video tentang melakukannya: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Kemudian kita bisa melanjutkan untuk menginstalnya. Biasanya, dibutuhkan sekitar 20 menit-ish untuk melakukannya. Selama menunggu lama, siapkan dan ambil secangkir kopi dan tunggu sampai akhir. Reboot otomatis dijadwalkan setelah selesai, dan Anda akan melihat layar pembuka.

Lihat beraksi: https://puu.sh/w46Pw/519687fc0d.webm

Langkah 7: Atur Saya

Layar sambutan

Selesaikan seperti yang biasa Anda lakukan dengan Mac baru. Namun, jangan aktifkan layanan lokasi dan belum masuk ke ID Apple. Jangan mengirim data ke Apple juga untuk tidak menyembunyikan pengaturan Hackintosh kami.

Kami juga harus menginstal VMWare Tools. Lepaskan drive sistem OSX Base Anda di finder. Kemudian klik Player-> Manage-> Install VMWare Tools. Dengan menginstal ini, Anda mendapatkan peningkatan besar dalam kinerja, tetapi masih berjalan di mata kita.

Lihat ini: https://puu.sh/w4a2m/314480bc99.webm

Selamat! Anda memiliki mesin virtual Hackintosh yang berfungsi penuh di tangan Anda sekarang! Kami sekarang akan beralih ke bagian pengembang ...

Kami akan menyiapkan beberapa perangkat lunak penting di sisi Hackintosh kami ...

Kami akan membutuhkan ...

Buatan. Tentu saja. Untuk NodeJS dan NPM dan Bereaksi Asli.

Benang untuk mempercepat waktu instalasi paket kami kecuali jika Anda menggunakan bagikan seperti yang saya lakukan.

Xcode untuk mengkompilasi React Native Host.

Langkah 1: Instal Xcode

Anda memerlukan ID Apple untuk ini, tidak bukan yang pengembang, yang biasa baik-baik saja.

Lihat videonya:

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

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

Tunggu sampai selesai. Seharusnya tidak terlalu lama, Anda memiliki akses Internet kabel NAT. Apakah Anda ingin memainkan Safari atau beberapa aplikasi lain? (Meskipun kinerja mengerikan)

Langkah 2: Instal Brew dan Node (dan Yarn dan RN)

Klik tautan di atas untuk mendapatkan perintah terlebih dahulu.

Yah, ini harusnya mudah. Mengingat Anda telah menginstal VMWare Tools, clipboard adalah dua arah secara default, sehingga Anda bisa menyalinnya di sisi Windows Anda dan membuangnya ke sisi Mac.

Buka terminal dan rekatkan perintah yang diberikan oleh Brew. Masukkan kata sandi Anda untuk mengizinkan instalasi. Semua akan otomatis dan harus dalam waktu kurang dari 10 menit.

Ambil ini sebagai contoh: https://puu.sh/w4atb/acbf000b84.webm

(Tekan WinKey + Space untuk membuka pencarian Spotlight, Tekan WinKey + V untuk menempelkan)

Menginstal Node dan NPM:

$ buatan instal nodejs

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

Menginstal benang:

$ brew pasang benang

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

Instal RN:

$ npm -g instal react-native-cli

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

Langkah 3: Dapatkan proyek Anda

Untuk saat ini, saya belum menyalin repo asli saya, tetapi saya malah membuat proyek RN baru. Jika Anda memindahkan proyek Anda, semuanya sudah diatur dengan sempurna.

Anda memiliki dua cara menjalankan proyek Anda; Metode 1: Buka folder proyek Anda, klik ios, buka xcodeproj, klik tombol run di Xcode IDE; Metode 2: Buka folder proyek Anda di terminal, masukkan ‘run-ios asli-reaksi’, dan selesai, sudah selesai.

Langkah terakhir: Jalankan simulator

Keberhasilan! Ini berjalan dengan sempurna! Yay!

Anda dapat mencoba mengaktifkan hot reload, memodifikasi beberapa kode dan melihat apakah ada perubahan.

Setelah itu, semuanya harus bekerja seperti pesona!

Hore! (Ingat, tombol Command == Kunci Windows)

Saya belum mencoba menjalankannya pada perangkat fisik, tetapi secara teori Anda hanya perlu USB passthrough, dan Xcode atau iTunes harus dapat mengenali perangkat Anda.

Jadi apalagi legalitas di antaranya, saya pikir Hackintosh ini adalah hack yang cukup mewah untuk mendapatkan pengembangan iOS di Windows tanpa membeli Mac Pro / MacBook Pro yang mahal.

Beberapa bahkan dapat menginstal distrubusi Hackintosh yang sebenarnya ke dalam perangkat keras logam seperti ke ultrabook, Dell XPS 15 atau ZenBook, dengan cara yang sama dapat dicapai, tetapi lebih berbahaya dan Anda kehilangan lingkungan Windows Anda (kecuali jika Anda mengaktifkan dual boot - Kebanyakan dari kita tidak).

Saya berharap melihat tim RN merilis toolkit baru untuk pengembang Mac / Windows untuk mendapatkan pengalaman pengembangan yang lebih baik sambil tetap menggunakan alat yang paling nyaman dari perangkat kami. Mereka mengatakan itu ide yang menarik dan menunggu PR.

Saya ragu ini adalah jawaban saya untuk ini. Bagaimanapun, terima kasih telah membaca artikel ini (lebih seperti tutorial). Pasti akan lebih mudah, jika Anda memiliki kemurahan hati untuk membagikan ide Anda, silakan lakukan di bagian komentar, saya berharap untuk melihat reaksi Anda. Selamat bersenang-senang dengan hack saya!

(Diedit pada 13/1)

Salam pembuka! Saya kira sudah lama sejak saya menulis ini. Sekarang, saya telah menemukan dunia baru terkait pengembangan aplikasi seluler di Hackintosh VM. Berkat kemajuan React Native baru-baru ini dan dengan mengeksploitasi Expo dan koneksi host-only, kami dapat memiliki lingkungan pengembangan yang lebih manis sehingga Anda akhirnya dapat memiliki pilihan IDE dan server bundel yang di-host di Windows.

Ini akan menggantikan Langkah 3 dalam tutorial yang saya sebutkan di atas. Saya juga akan memperkenalkan Anda satu trik lagi untuk membuat VM sepenuhnya immersive untuk pengembangan iOS.

Pada dasarnya, Anda hanya perlu CRNA dan versi terbaru dari Expo / React Native (berbicara tentang 0,52 pada saat penulisan), itu saja. Jika Anda memiliki aplikasi yang sudah di-bootstrap di bawah CRNA, mungkin juga berfungsi dengan sempurna.

Ini sangat sederhana. (Saya berasumsi Anda akan menggunakan Benang, harus serupa untuk NPM) Mulai paket CRNA Anda di Windows, menggunakan PowerShell atau CMD:

Windows $ mulai menjalankan benang
...
Untuk melihat aplikasi Anda dengan memuat ulang langsung, arahkan aplikasi Expo ke kode QR ini.
Anda akan menemukan pemindai QR pada tab Proyek aplikasi.

Atau masukkan alamat ini di bilah pencarian aplikasi Expo:
exp: // : 19000
Ponsel Anda harus berada di jaringan lokal yang sama dengan komputer ini.
Untuk tautan untuk memasang aplikasi Expo, silakan kunjungi https://expo.io.
Log dari penyajian aplikasi Anda akan muncul di sini. Tekan Ctrl + C kapan saja untuk berhenti.
›Tekan a untuk membuka perangkat Android atau emulator.
 ›Tekan q untuk menampilkan kode QR.
 ›Tekan r untuk memulai kembali pemaket, atau R untuk memulai kembali pemaket dan menghapus cache.
 ›Tekan d untuk mengaktifkan mode pengembangan. (mode saat ini: pengembangan)

Ini akan menjadi port yang kita gunakan.

Kemudian, coba dan temukan alamat host Anda. (Mesin yang berbeda memiliki IP yang berbeda, YMMV)

OSXVM $ ifconfig
...
id0: flags = 8863  mtu 1500
options = b 
eter 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 prefixlen 64 lingkup dijamin 0x4
inet 192.168.67.128 netmask 0xffffff00 broadcast 192.168.67.255
opsi nd6 = 201 
media: pilih otomatis (1000baseT )
status: aktif

Bagi saya, ini adalah alamat host. Tetapi Anda harus membuang byte terakhir dan menambahkan 1.

Jadi IP host di sini adalah 192.168.67.1. Catat itu dulu.

Kemudian, kami akan mengaktifkan saus rahasia yang dibuat oleh para insinyur Apple.

Mulai dari XCode 9, dengan membuat direktori sederhana di root Mac HD Anda, Anda dapat memperoleh akses ke menu internal Simulator iOS. Versi yang lebih lama tidak memiliki fitur ini AFAIK.

Tutup semua simulator Anda terlebih dahulu. Kemudian cukup ketik ini di terminal Anda.

OSXVM $ sudo mkdir / AppleInternal
(Kata sandi Anda)

Itu dia! Sekarang periksa apakah menu internal hadir dengan memulai simulator dan lihat ini:

Sebenarnya, ini juga berlaku untuk Mac nyata! Untuk informasi menu internal ini, lihat artikel Medium ini. Tapi kami lebih fokus pada mode layar penuh, yang sebenarnya menjadi alasan Anda bisa membawa XCode Anda bersama simulator di desktop virtual baru:

Jika Anda mengalami masalah izin, yah, terutama pengguna High Sierra, Anda harus membuat folder ini dalam Mode Pemulihan. Cukup klik Utilitas dan Terminal, tetapi Anda harus memindahkan Mac HD Utama Anda, itu juga akan berhasil.

Sekarang, kami akan melanjutkan untuk menginstal Klien Expo di (salah satu dari) lingkungan simulator.

Langkah ini sangat sepele jadi saya sarankan Anda untuk membaca ini dari dokumen resmi Expo sebagai gantinya:

Setelah Anda menginstal aplikasi Expo, buka di Simulator.

Lalu, klik ‘Plus’ dan ketik alamat host Anda, tetapi pertama-tama, kita perlu memformatnya ke apa yang bisa dikenali oleh expo:

Formatnya adalah:

exp: // : 

Jadi bagi saya itu adalah: "exp: //192.168.67.1: 19000"

Klik buka, dan jika Anda melihat bundel yang dibangun di sisi Windows Dev PC, maka SELAMAT, Anda akan bisa mendapatkan sendiri lingkungan aplikasi simulator. Namun, HMR tidak aktif, tetapi Live Reload, secara default. Jika Anda membutuhkannya, Go Hardware-> Shake Gesture dan ubah.

Langkah terakhir adalah mengaktifkan mode layar penuh untuk membuatnya lebih mendalam. Jika mengklik item di Menu Internal mudah dan sepele untuk Anda, maka cukup klik tombol layar penuh hijau.

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

Dan itu dia! Anda bahkan bisa membuat Genymotion bekerja bersama! Ini adalah dorongan yang sangat besar untuk produktivitas!

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

Itulah akhir dari pembaruan. Semoga Anda bahagia dalam perjalanan! Expo memang alat yang ampuh dan kita perlu menghargainya. Tidak ada yang namanya makan siang gratis. Silakan pertimbangkan sumbangan untuk proyek Expo. Mereka sangat berhasrat untuk memelihara proyek dan membayar server mereka (bangun)! (Sayangnya mereka belum menawarkan metode untuk melakukan ini)

Dan tolong, Apple, jangan bilang pengacara Anda untuk menghubungi saya dan membawa saya ke masalah hukum.