- Как мы iOS приложение тестировали из-под Ubuntu
- Apple Remote Desktop
- Действия со стороны Mac
- Действия со стороны Ubuntu
- Настраиваем Xcode
- Работа полученной системы
- Appendix
- Заключение
- ISH Shell или возможно ли установить и использовать Linux на iOS
- Эмуляция / имитация iOS в Linux
- 6 ответов
- Is it possible to develop iOS apps with Flutter on a Linux virtual machine?
- 4 Answers 4
- Emulate/Simulate iOS in Linux [closed]
- 7 Answers 7
Как мы iOS приложение тестировали из-под Ubuntu
В компании где я работаю наступила пора корпоративов тестирования нашего iOS приложения, и т.к. мако тут только у меня, а все остальные разработчики и, что самое главное, QA работают под Ubuntu, а значит айфонов у них нет , то пришлось придумать решение проблемы и избавить себя от мук передачи личного айфона в руки тестеров.
Если Вы сталкивались с подобной проблемой или просто интересуетесь темой шаринга одного мака с возможностью одновременной работы на нём, то прошу под кат.
Apple Remote Desktop
Сначала мы попробовали www.pieceable.com, вещь действительно хорошая, особенно с перспективами развития проекта, т.к. судя по главной его купили Facebook, но пока что скорость его работы оставляет желать лучшего, хотя самая идея (если кто не знаком с ней, то это запуск эмулятора на маке с последующей трансляцией картинки на клиенты) нам приглянулась.
Начиная с Mac OS X 10.6 Apple Remote Desktop (VNC, по сути дела, только тссс. ) поддерживает Multi-user Screen Sharing, и это как раз то, что нам надо, ведь основная задача была не отвлекать от рабочего процесса iOS разработчика, который работает за этим Mac-ом.
Действия со стороны Mac
Настройки для Mac OS X 10.8 aka Mountain Lion (для остальных систем не должны сильно отличаться):
- Создаём юзера, например, SimulatorViewer;
- Идём в Settings -> Sharing -> Remote Managment, там настраиваем Allow access for: SimulatorViewer, там выбираем как минимум Observe + Control + Open And Quit Applications;
- Жмём на Computer Settings и выбираем там VNC viewers may control screen with password, а так же вводим пароль для VNC.
На этом настройка Mac OS X части закончена.
Действия со стороны Ubuntu
Для подключения к Mac-у будем использовать Remmina Remote Desktop Client, который уже присутствует в стандартной поставки Ubuntu, как мне сказали:) Прошу прощения за «чужой» скриншот, нет сейчас возможности сделать свой:
- Connection->New.
- Protocol: VNC — Virtual Network Computing;
- Server — IP адрес Mac-а (показывается на нём в окне Sharing да и вообще много где, взрослые уже)
- Вписываем в User и Password наши данные для юзера SimulatorViewer, которого мы создали чуть выше;
- Color Depth выставляем в High color (15 bit), можно и больше, если сеть позволяет), от тормозов значение особо не избавит:)
Можете попробовать уже присоединиться, должен отобразиться экран Mac OS X, при этом сессия её пользователя за компьютером не прервётся.
Настраиваем Xcode
Осталось лишь сделать так, чтобы simulator билды Xcode-а были доступны для нашего юзера. Я выбрал самый простой вариант, переместив build-директорию в /Users/Shared/:
- Выгоняем iOS-разработчика от Mac-а покурить на 5 минут, а сами в это время лезем в настройки Xcode, секция Locations;
- Выбираем Derived Data: Custom, путь /Users/Shared/Xcode/DerivedData;
- В Advanced. жмём на Shared Folder и вводим Build;
- Комментируем рандомную строчку в коде программиста;
- создаём исполняемый(!) файл /Users/Shared/run.sh с таким содержимым:
- Заметаем следы и уходим от компьютера iOS-программиста.
Внимательный читатель заметит иденификатор blah, краткое объяснение: без него работать не будет мы специально задаём несуществующий путь и тогда симулятор попросит нас его указать при старте:)
Работа полученной системы
Как подсоединиться к рабочему маку мы уже разобрались, осталось запустить в нём симулятор и начать издеваться над программистом.
- Просим iOS разработчика собрать билд для симулятора(!);
- Заходим через VNC на наш мак (дальнейшие действия я описываю уже внутри машины, на которую зашли);
- Переходим в Finder-е в /Users/Shared/;
- Запускаем run.sh, который откроет симулятор с окном выбора файла;
- Если у нас приложение называется Habrahabr, то путь к нему будет такой:
Если всё сделали правильно, то приложение запустится и можно начинать тестировать.
Appendix
Q: У разработчика iMac 27» и айфон головного мозга, нельзя ли сделать разрешение поменьше?
A: При работе через VNC Вы можеет спокойно менять разрешение экрана, а так же их конфигурацию. Настройки экрана -> Scaled, 1024×768
Q: На маке 2 монитора, как отобразить только один из них?
A: Просто зайдите в настройки экрана и нажмите Mirror Displays, тогда будет показан только один экран.
Q: При работе ощущаются тормоза, что делать?(
A: Мы перепробовали несколько VNC клиентов и их настроек, но везде присутсвует проблема лагов и медленного «умерания» коннекта, с чем это связано так и не нашли, потому что в целом тестеров устроило. Помогает переподключение.
Q: А что делать пользователям Windows?
A: Тут такое дело (с), что мы не нашли Win компьютера в офисе, но всё сводится к простейшему поиску VNC клиента под Win, который умеет коннектится к Apple Remote Desktop.
Заключение
По сути дела статья — собирательный образ Mac VNC + VNC Client + Xcode custom build path + Running Simulator with target application и была написана с целью избавить Вас от гугления данных тем.
Приветствуются советы по улучшению схемы, особенно узкого места в виде VNC и его медленной работы.
Спасибо за внимание!
Источник
ISH Shell или возможно ли установить и использовать Linux на iOS
Сегодня я хочу рассказать вам о таком приложении как ISH. ISH — это проект с открытым исходным кодом, позволяющий в виде приложения эмулировать полноценный линукс на вашем iOS (или iPadOS) устройстве. Давайте разберемся как это сделать и есть ли у подобной технологии реальноее применение и будущее или это очередная игрушка для «мамкиных хакеров»
Что такое ISH? ISH (как я писал выше) — это эмулятор терминала линукс. Совсем недавно он был доступен только в виде бета-версии через приложение TestFlight (известном многим iOS пользователям), но теперь iSH доступен для установки в магазине приложений AppStore (Так же вы можете использовать версию из TestFlight, она практически не отличается от версии из AppStore. Ссылку на актуальное приглашение в программу бета тестирования находится на официальном сайте).
После установки перед нами «голый» Alpine Linux — это минималистичный дистрибутив на основе BusyBox. Из коробки он идет абсолютно пустой, скорее всего у вас даже не будет пакетного менеджера apk (вы можете это проверить просто написав в терминал apk). Если apk у вас не установлен, то его можно установить, прописав в терминал команду:
Как вы можете видеть над клавиатурой имеются клавиши, такие как табуляция, стрелки, ctrl.
Теперь мы можем обновить систему и посмотреть, что же всё-таки мы имеем «из коробки». Для обновления системы пишем команду:
Как вы видите, при выполнении обновления я не использую sudo , т. к. по умолчанию мы уже под именем администратора. Попробуем запустить то, что обычно уже установлено практически в любом дистрибутиве linux: curl, python/python3, gcc. как вы можете заметить, ни одно из них не установлено, но это не сложно исправить, просто установив нужные нам приложения, для примера:
Не много о настройках приложения
В настройках приложения вы можете изменить тему приложения, размер и тип шрифта, иконку на рабочем столе и узнать больше информации о разработчике приложения
Теперь давайте рассмотрим где в нашей системе можно найти непосредственно файловую систему ISH и как с ней взаимодействовать визуально. Для этого нужно перейти в приложение Файлы на вашем iPhone или iPad и там, в разделе «Места» вы можете обнаружить ISH. Перейдя в ISH вы увидите самую обыкновенную, а многим привычную, файловую систему LInux. Для чего нам это нужно? К сожалению мы не можем напрямую из приложения попасть в файловую систему iPhone или iPad и благодаря возможности взаимодействовать с фалами линукса визуально мы можем переносить туда любые нужные нам файлы. Для примера я написал простейший калькулятор в Pythonista и перенес его из папки с фалами Питонисты в папку root в ISH. теперь можно увидеть его написав ls и запустив с помощью команды python3 main.py .
С тем же успехом мы можем установить git и с помощью git clone копировать свои или чужие программы и так же их запускать. Конечно же можно использовать ISH и как SSH клиент, можно проверять свои скрипты на работоспособность в таких-вот «мобильно-спартанских» условиях, можно проверять сети на защищенность.
Если постараться, придумать можно множество сценариев для использования подобного рода программ. Благодаря ним iPad и в правду может стать вполне профессиональным устройством для программистов. Если к этому будет интерес, в будущем я расскажу как записать VScode прямо на iPad`е, и вообще как можно уже сегодня iPad превратить во вполне юзабельное устройство для разработчиков.
Источник
Эмуляция / имитация iOS в Linux
Я разрабатываю веб-приложение, которое, по-видимому, имеет проблемы с устройствами iOS. Проблема в том, что у меня нет устройства iOS, и я разрабатываю Linux Ubuntu. Я ищу способ эмулировать / имитировать эту ОС в Linux (особенно в браузере), но ничего не нашел.
до сих пор я нашел симулятор iOS SDK, но это предназначено для Mac. А также некоторый эмулятор для Windows. Кто-нибудь делал это раньше?
6 ответов
единственное решение, которое я могу придумать, это установить VMWare или любой другой VT, а затем установить OSX на VM.
Он работает довольно хорошо для тестирования.
BrowserStack.com
На этом сайте вы можете эмулировать множество устройств iOS в интернете.
на linux вы можете проверить epiphany-browser, изменяет размер windows, вы получите те же ошибки, что и в ios. Оба браузера используют в WebKit.
sudo apt install epiphany-browser
может быть, этот подход лучше,https://saucelabs.com/mobile, Мобильное тестирование в облаке с селеном
- Run пульсация эмулятор(вышел на пенсию по состоянию на 2015-12-06) на Chrome
- Run iPadian на WineHQ
- Run QMole на Linux или Android
- запустите XCode на PureDarwin
насколько я знаю, нет такой вещи, как эмулятор iOS в windows или linux, есть только некоторые gameengines, которые позволяют компилировать один и тот же код для iOS и windows или linux, и есть цепочка инструментов для компиляции приложения iOS с использованием linux. ни один из них не является реальным эмулятором / симулятором. и чтобы использовать эту цепочку инструментов, вам нужно джейлбрейк iOS-устройство для тестирования двоичного файла, созданного с помощью toolchain. Я имею в виду, что linux сам не может запустить двоичный файл, созданный сам. и кстати даже в Mac simulator — это просто промежуточная программа, которая запускает Mac-скомпилированный двоичный файл, так как если вы измените компиляцию для iOS с simulator или наоборот, все файлы будут перестроены. а также есть некоторые реальные различия, например, iOS-это чувствительная к регистру операция, а simulator-нет.
поэтому лучшим решением является покупка устройства iOS самостоятельно.
Источник
Is it possible to develop iOS apps with Flutter on a Linux virtual machine?
I am new to developing mobile apps and wanted to try Flutter but I use Windows. Because Flutter doesn’t support Windows yet I had the idea to use a virtual machine running Linux to install Flutter. Does this work?
Also in the Flutter setup it says this:
To develop Flutter apps for iOS, you need a Mac with Xcode 7.2 or newer.
Is there a way to develop iOS apps without having a Mac?
4 Answers 4
Yes, you can develop iOS apps with Linux (or Windows) using Android Studio or Visual Studio Code. The point of Flutter is that you have one code base and can deploy to both Android and iOS. So the development phase is no problem.
In the past you could only deploy iOS apps to the App Store if you had a Mac, but there are some more options now. See the following articles:
To test your app on the iOS simulator, though, it is still necessary to have a Mac. However, theoretically the app should have the same behavior for most things as on an Android device, so you wouldn’t necessary need to test it using the iOS simulator. I would say long term you would probably want to consider getting a Mac, but it is certainly not necessary in the beginning.
Update: In a recent app I made, my tests passed in the Android emulator but crashed in the iOS simulator. It was a normal bug and nothing specific to iOS, but for some reason the Android simulator didn’t crash. So for a production app, you really do need to test it on an iOS device/simulator.
Источник
Emulate/Simulate iOS in Linux [closed]
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago .
I’m developing a web app that apparently is having problems in iOS devices. The problem is that I don’t own an iOS device and I develop in Linux Ubuntu. I’m looking for a way to emulate/simulate this OS in Linux (especially the browser), but haven’t found anything.
So far, what I’ve found is the iOS SDK’s Simulator, but that is meant for the Mac. And also some emulator for Windows. Has anyone done this before?
7 Answers 7
The only solution I can think of is to install VMWare or any other VT then install OSX on a VM.
It works pretty good for testing.
On linux you can check epiphany-browser, resizes the windows you’ll get same bugs as in ios. Both browsers uses Webkit.
sudo apt install epiphany-browser
BrowserStack.com
On this site, you can emulate a lot of iOS’s devices online.
- Run Ripple emulator(retired as of 2015-12-06) on Chrome
- Run iPadian on WineHQ
- Run QMole on Linux or Android
- Run XCode on PureDarwin
Maybe, this approach is better, https://saucelabs.com/mobile, mobile testing in the cloud with selenium
As far as I know, there is no such a thing as iOS emulator on windows or linux, there are only some gameengines that enable you to compile same code for both iOS and windows or linux and there is a toolchain to compile iOS application using linux. none of them are realy emulator/simulator things. and to use that toolchain you need a jailbreaked iOS device to test binary file created using toolchain. I mean linux itself can’t run the binary created itself. and by the way even in mac simulator is just an intermediate program which runs mac-compiled binary, since if you change compiling for iOS from simulator or the other way, all the files are rebuild. and also there are some real differences, like iOS is a case-sensitive operation while simulator is not.
so the best solution is to buy an iOS device yourself.
You might want to try screenfly. It worked great for me.
Источник