Як розробити програми React Native iOS для Windows з Hackintosh (ну, начебто)

Привіт середній! Тож це моя перша історія, але я хотів би потрапити прямо в гру.

Я якось розчарований, що мені потрібен фізичний Mac і iPhone, щоб зробити iOS React Native development.

Я маю на увазі, у мене є MacBook і iPhone, у мене є. І мені довелося поділитися моїм репо на своєму MacBook, а потім запустити мій React Native Builder та React Native Packager, який є багатослівним і кульгавим. Бу

Крім того, я хочу працювати на робочому місці, у мене є робоча станція Xeon, і це сумно, що мені довелося попрощатися з клавіатурою та мишкою, а значить, і попрощатися з продуктивністю.

Навіть Xamarin запропонував віддалений iOS Simulator і збудник, щоб ми могли насолоджуватися розвитком на своєму основному ПК, а потім натискати на створення віддаленого середовища Mac. І я сумніваюся, що команда RN зможе це зробити.

Тож я вичавив частину своєї сили мозку і, нарешті, вийшов з рішення, яке дуже, дуже дурне, божевільне та ліниве. І ось про що я подумав:

Хороший 1: Він працює універсально на будь-яких комп'ютерах x86_64 з увімкненою віртуалізацією, якщо ви чітко виконували ці кроки

Хороший 2: Ви можете легко розпоряджатися довкіллям. Ви також можете клонувати середовище і переміщувати його кудись інше.

Поганий 1: Це, просто, працює!

Поганий 2: я не рекомендую запускати будь-які інші програми Mac за межами XCode.

Поганий 3: Не очікуйте, що процесори AMD будуть працювати над цим значно.

Уродливий 1: Для цього вам потрібен дуже чудовий, жахливий ПК, щоб отримати лише частину продуктивності на справжньому Mac.

Ugly 2: Немає апаратного прискорення, тому не сподівайся запускати та налагоджувати контекст OpenGL ES з ним.

Якщо ви справжній чоловік, придбайте Mac. Інакше зараз ми відкриємо для себе подорож до Hack-in-sh!

(Попередження: Практика роботи Hackintosh - це порушення EULA як програмного забезпечення, так і програмного забезпечення Apple, і ви можете зіткнутися з звинуваченнями та судовими позовами, незважаючи на те, що нікого не було за останні 10 років, але це компанія, але ми не обмежуємося цим. що завгодно з нашим комп’ютером, включаючи встановлення різних операційних систем, тож створіть себе і вирішіть, чи хочете ви продовжувати заходити на законну сіру зону)

Необхідна умова

Як я вже згадував, вам справді потрібен дуже сильний і потужний ПК! У мене є робоча станція Xeon, але вона ледве працює, уявіть, який кошмар це було, щоб її набухати, так?

Крім того, вам потрібен SSD, якщо у вас немає терпіння почекати більше 5 хвилин, щоб увійти в ваш Mac VM зі своїм жорстким диском.

Почекай хвилинку! ВМ. Хм… Віртуальна машина? Ви здогадалися, це не так? Це правильно, для цього нам знадобиться VMWare.

Крок 1: Витягніть інсталяційне зображення Mac

Що ж, без цього ми не змогли б нічого зробити ...

Якщо у вас є друг, який має Mac, позичайте його або її автомат ...

Завантажте macOS Sierra з App Store…

Перейдіть в Інтернет і знайдіть ритуал, щоб зірвати це інсталяційне зображення у портативній формі DMG / ISO.

Я б не розголошував такий метод, тому що я не хочу мати ніяких проблем ~ ¯ \ _ (ツ) _ / ¯

Перенесіть остаточний файл DMG / ISO на ваш основний ПК. Звичайно, нам це буде потрібно, або як нам…

Крок 2. Завантажте програвач VMWare

Якщо у вас немає робочої станції VMWare, якої більшості з нас немає, нам доведеться продовжувати завантаження VMWare Player.

Просто встановіть його. Не повинно бути проблем взагалі.

Крок 3: Завантажте Unlocker

Добре, це наш перший хак.

В основному, VMWare заблокував основні параметри, що не дозволяють OSX та EFI працювати разом і співпрацювати (жорсткий код, серійний, SMB тощо) на будь-яких екземплярах віртуальної машини на всіх гіпервізорах VMWare, окрім VMWare Fusion.

Тож нам доведеться "розблокувати" його, закріпивши кілька речей, щоб Hackintosh працював.

Завантаживши файли, натиснувши «Клонувати або завантажити», розпакуйте їх, знайдіть файли з назвою «win-install.cmd» та «win-update-tools.cmd».

Клацніть правою кнопкою миші "win-install.cmd" і виберіть "Запустити як адміністратор", так само "win-update-tools.cmd". Це потрібно для отримання доступу до реєстру Windows та припинення послуг VMWare для виконання виправлення.

Крок 4: Створіть нову віртуальну машину

Відкрийте програвач VMWare Player і просто в меню виберіть Створити нову віртуальну машину.

Потім виберіть файл зображення диска інсталятора, який ви тільки що перенесли раніше.

Тоді нам потрібно вибрати "Apple Mac OS X" і вибрати відповідну версію. Наприклад, я використовую macOS Sierra, тому це було "macOS 10.12", якщо ви використовуєте El Capitan або Yosemite, отримайте правильну версію.

Перейдіть всі варіанти. Не забудьте налаштувати ваш VM, я змінив кількість основних показників, але більшу частину часу це було нормально для маси.

Крок 5: Змінення файлу .vmx

Нам доведеться подолати обмеження, накладене VMWare, про яке я згадав у кроці 3. Нам доведеться додати запис до файлу конфігурації віртуальної машини. Або ви зіткнетесь із основним смітником під час запуску VM.

За замовчуванням він розташований у "~ / Документи / Віртуальна машина / <Вставте своє ім'я VM> / <Вставте своє ім'я VM> .vmx", якщо ви не змінили місцезнаходження.

Відкрийте його та додайте наступний текст у самому кінці файлу:

smc.version = "0"

Крок 6: Почніть мене вгору

Вау, яка важка робота тут. Настав час, щоб установка запрацювала.

♫ Якщо ви мене заводите, я ніколи не зупинюсь ♫

Проблем взагалі не повинно бути. Ви повинні мати можливість побачити вигадливий логотип Apple.

(YMMV)

І екран вибору мови.

Екран вибору мови

Виберіть свою мову. Тоді нам доведеться натиснути Утиліти-> Утиліта диска. Відформатуйте віртуальний диск у HFS.

Дивіться відео про це: https://puu.sh/w46Pj/a5a7f8ff5d.webm

Тоді ми могли б приступити до його встановлення. Зазвичай для цього потрібно приблизно 20 хвилин. Під час тривалого очікування приготуйте і зберіть собі чашку кави і дочекайтеся кінця. Після закінчення заплановано автоматичне перезавантаження, і ви побачите екран привітання.

Дивіться в дії: https://puu.sh/w46Pw/519687fc0d.webm

Крок 7: Налаштуйте мене

Екран вітання

Закінчіть його так, як зазвичай це робиться з новим Mac. Не вмикайте службу локації та все ж не входите в Apple ID. Не надсилайте жодних даних в Apple, а також щоб збільшити приховування нашої установки Hackintosh.

Доведеться також встановити VMWare Tools. Демонтуйте привід базової системи OSX в пошуку. Потім натисніть Player-> Manage-> Install VMWare Tools. Встановивши це, ви отримуєте величезний приріст продуктивності, але все ще ледве працює в наших очах.

Дивіться це: https://puu.sh/w4a2m/314480bc99.webm

Вітаємо! У вас зараз повністю функціональна віртуальна машина Hackintosh! Зараз ми перейдемо до розділу розробників ...

Ми збираємось налаштувати якесь важливе програмне забезпечення на нашій стороні Хакінтоша ...

Нам знадобиться ...

Заварити. Звичайно. Для NodeJS та NPM та React Native.

Пряжа, щоб пришвидшити час встановлення нашого пакету, якщо ви не використовуєте його, поділіться так, як я.

Xcode для компіляції React Native Host.

Крок 1: Встановіть Xcode

Для цього вам потрібен Apple ID, не розробник, звичайний - це нормально.

Дивіться відео:

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

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

Зачекайте, поки воно закінчиться. Якщо ви не повинні зайняти занадто багато часу, у вас є NAT провідний доступ до Інтернету. Хочете зіграти Safari чи якісь інші додатки? (Незважаючи на жахливий виступ)

Крок 2: Встановіть вариво і вузол (і пряжу, і RN)

Клацніть на посилання вище, щоб отримати команду спочатку.

Ну, це має бути легко. Враховуючи, що ви встановили інструменти VMWare, буфер обміну за замовчуванням є двонаправленим, тому ви можете скопіювати його на сторону Windows та скинути його на сторону Mac.

Відкрийте термінал і вставте команду, задану Brew. Введіть свій пароль, щоб дозволити встановлення. Все буде автоматизовано і має бути менше ніж за 10 хвилин.

Візьмемо це як приклад: https://puu.sh/w4atb/acbf000b84.webm

(Натисніть WinKey + пробіл, щоб відкрити пошук прожектора, натисніть WinKey + V, щоб вставити)

Встановлення вузла та NPM:

$ brew встановити nodejs

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

Встановлення пряжі:

$ варити встановити пряжу

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

Встановити RN:

$ npm -g встановіть react-native-cli

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

Крок 3: Приступайте до свого проекту

На даний момент я не копіював своє оригінальне репо, але натомість створив новий RN-проект. Якщо ви перемістили свій проект, у вас все налагоджено ідеально.

У вас є два способи запуску проекту; Спосіб 1: Перейдіть у папку вашого проекту, натисніть ios, відкрийте xcodeproj, натисніть на кнопку запуску в ID Xcode IDE; Спосіб 2: Перейдіть у папку свого проекту в терміналі, введіть "реагувати-нативні run-ios" і poof, це зроблено.

Заключний крок: Запустіть тренажер

Успіху! Це ідеально! Так!

Ви можете спробувати включити гаряче перезавантаження, змінити якийсь код і побачити, чи він змінився.

Після цього все повинно працювати як шарм!

Ура! (Пам'ятайте, командний ключ == клавіша Windows)

Я не намагався запускати їх на фізичних пристроях, але теоретично вам просто потрібен USB-прохід, і Xcode або iTunes повинні мати можливість розпізнавати ваші пристрої.

Тож не кажучи про законність між ними, я думаю, що цей Hackintosh є досить фантастичним злом, щоб отримати розробку iOS в Windows, не купуючи завищену Mac Pro / MacBook Pro.

Деякі можуть навіть встановити фактичне розповсюдження Hackintosh на голому металевому обладнанні, наприклад, в ультрабуках Dell XPS 15 або ZenBook, таким чином можна досягти того ж, але це небезпечніше, і ви втратили середовище Windows (якщо у вас не включено подвійне завантаження - Більшість з нас цього не робить).

Я з нетерпінням чекаю, коли команда RN випустить новий інструментарій для розробників Mac / Windows для отримання кращого досвіду розробки, використовуючи найзручніші наші інструменти. Кажуть, що це цікава ідея і чекає піару.

Сумніваюсь, це моя відповідь на це. У будь-якому випадку, дякую, що прочитали цю статтю (більше схожа на підручник). Там обов'язково буде простіше, якщо у вас є щедрість поділитися своєю ідеєю, будь ласка, зробіть це в розділі коментарів, я з нетерпінням чекаю вашої реакції. Приємного дня з моїми хаками!

(Відредаговано в 13/1)

Привітання! Я здогадуюсь пройшло давно, як я це написав. Тепер я відкрив для себе цілий новий світ щодо розробки мобільних додатків у вікні Hackintosh. Завдяки недавньому просуванню React Native та використанню Expo та підключення лише для хостів, ми можемо створити ще більш солодке середовище розробки, щоб ви могли нарешті мати свій вибір IDE та сервер пакетних пакетів, розміщений у Windows.

Це перекриє Крок 3 у підручнику, про який я згадував вище. Я також хочу представити вам ще один трюк, щоб зробити VM повністю зануреним у розробку iOS.

По суті, вам просто потрібна CRNA та остання версія Expo / React Native (якщо говорити про 0,52 під час написання), це все. Якщо у вас є завантажений додаток під CRNA, це може також працювати бездоганно.

Це дуже просто (Я припускаю, що ви будете використовувати Пряжу, має бути подібною до NPM) Запустіть пакет CRNA в Windows, використовуючи PowerShell або CMD:

Запуск запуску пряжі Windows $
...
Щоб переглянути додаток під час перезавантаження в прямому ефірі, вкажіть програму Expo на цей QR-код.
QR-сканер ви знайдете на вкладці Проекти програми.

Або введіть цю адресу на панелі пошуку програми Expo:
exp: // <РЕДАКТИРОВАНО>: 19000
Ваш телефон повинен бути в тій же локальній мережі, що і цей комп'ютер.
Для посилань на встановлення програми Expo відвідайте https://expo.io.
Тут відображатимуться журнали, які показують ваш додаток. Натисніть Ctrl + C будь-коли, щоб зупинитися.
›Натисніть a, щоб відкрити пристрій Android або емулятор.
 ›Натисніть q, щоб відобразити QR-код.
 ›Натисніть r, щоб перезапустити пакувач, або R, щоб перезапустити пакувач і очистити кеш.
 ›Натисніть d, щоб переключити режим розробки. (поточний режим: розробка)

Це буде порт, який ми використовуємо.

Потім спробуйте знайти свою адресу хоста. (У різних машин різні IP, YMMV)

OSXVM $ ifconfig
...
en0: прапори = 8863  mtu 1500
параметри = b 
ефір 00: 0c: 29: a1: d7: 8e
inet6 fe80 :: cfe: e149: 421e: 601a% en0 префікс 64 захищений діапазон 0x4
inet 192.168.67.128 netmask 0xffffff00 трансляція 192.168.67.255
nd6 параметри = 201 
медіа: автоматичний вибір (1000baseT )
статус: активний

Для мене це адреса хоста. Але вам потрібно відкинути останній байт і додати 1.

Отже IP хосту тут 192.168.67.1. Спершу візьміть на замітку.

Тоді ми активізуємо секретний соус, приготований інженерами Apple.

Починаючи з XCode 9, створивши простий каталог в корені Mac Mac HD, ви можете отримати доступ до внутрішнього меню iOS Simulator. Старіші версії не мають цієї функції AFAIK.

Спочатку закрийте всі свої тренажери. Потім просто наберіть це у своєму терміналі.

OSXVM $ sudo mkdir / AppleInternal
(Ваш пароль)

Це воно! Тепер перевірте наявність внутрішнього меню, запустивши тренажер, і шукайте це:

Насправді це універсально і для реальних Маків! Щоб отримати інформацію про це внутрішнє меню, перегляньте цю середню статтю. Але ми більше зосереджені на повноекранному режимі, що насправді є причиною того, що ви можете принести свій XCode разом із тренажером на новий віртуальний робочий стіл:

Якщо у вас виникли якісь проблеми з дозволом, ну, особливо, користувачі High Sierra, вам потрібно буде створити цю папку в режимі відновлення. Просто натисніть «Утиліта» та «Термінал», але вам потрібно буде перенести ваш основний Mac HD, це також вийде.

Тепер ми перейдемо до встановлення Expo Client на (будь-яке) середовище симулятора.

Цей крок дуже тривіальний, тож рекомендую замість цього прочитати це з офіційного документа Expo:

Як тільки ви встановили додаток Expo, відкрийте його в Simulator.

Потім натисніть "Плюс" і введіть адресу свого хоста, але спочатку нам потрібно буде відформатувати його до того, що експозиція може розпізнати:

Формат:

exp: // : <Порт хоста>

Тож для мене це: “exp: //192.168.67.1: 19000”

Натисніть кнопку "Відкрити", і якщо ви побачите, що пакет вбудований на стороні комп'ютера Windows Dev, а потім ВІДКЛЮЧЕННЯ, ви зможете створити собі середовище імітатора додатків. Однак HMR не ввімкнено, але за умовчанням є Live Reload. Якщо вам це потрібно, перейдіть на апаратне забезпечення-> струсіть жест і змініть його.

Останній крок - активація повноекранного режиму, щоб зробити його більш зануреним. Якщо натискання елемента у Внутрішньому меню для вас легко і тривіально, тоді просто натисніть зелену кнопку на повноекранному екрані.

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

І це все! Ви можете навіть попрацювати з Genymotion поряд! Це дуже великий приріст продуктивності!

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

Це завершення оновлення. Сподіваюся, ви щасливі в подорожі! Експо - це справді потужний інструмент, і нам потрібно його плекати. Немає такого поняття, як безкоштовний обід. Будь ласка, врахуйте пожертви на проект Expo. Вони прагнуть грошей на підтримку проекту та оплату свого (побудови) сервера! (На жаль, вони ще не запропонували методу цього зробити)

І будь ласка, Apple, не кажіть своєму адвокату зв’язуватися зі мною і втручатися в юридичні проблеми.