Skip to content

v1.5.2

Latest

Choose a tag to compare

@e-khalilov e-khalilov released this 28 Feb 05:45
· 2 commits to master since this release
8b77eb1

For migration, it is recommended to download the project from scratch and remove old build images if you used Docker.

# To prepare, run:
npm ci && npm link

# To prepare WebDriverAgent (for Apple devices) in Xcode, run:
npm run setup-wda

# To save the settings (provisioning profile) of WebDriverAgent, run:
npm run save-wda-sign

# To apply saved changes to WebDriverAgent (after any `npm install / npm ci`), run:
npm run apply-wda-sign

# To run locally, run:
devicehub local

The purpose of this update was to optimize the Apple device workflow:

  • Replaced the embedded WebDriverAgent source with the appium-webdriveragent npm package
  • The build / installation / validation / cleanup processes are now controlled by the appium-webdriveragent package
  • Refactored touch events, optimized the touchMove event, which can now have intermediate points in the path instead of a straight line with "from - to" coordinates
  • Added setup-wda npm script that opens WebDriverAgent.xcodeproj from ./node_modules in Xcode
  • Added save-wda-sign npm script to save the user's signature for WebDriverAgent.xcodeproj, which must be used after each Xcode project edit, as dependency reinstallation ( npm install ) causes a reset
  • Added apply-wda-sign npm script to apply the saved user signature to the WebDriverAgent.xcodeproj project
  • When releasing an Apple device, it goes into lock mode and stops the current WDA Session
  • Implemented a healthcheck mechanism for the WebDriverAgent Server running on the device, which terminates the process after 4 failed attempts
    ( the ios-provider unit will automatically restart the device process )
  • Fix incorrect device model and marketName display in ui
  • Replaced usbmux with usb-hotplug to reduce USB monitoring overhead
    ( now using native macOS IOKit API )

During the work, bugs and technical debt were fixed:

  • Removed tsx from the project, added a postinstall script that initiates the project build with copying all necessary assets to the build folder and installing dependencies in ui
  • Added a postinstall script in ui that initiates the project build
  • Devices now always correctly reflect their status
    ( OFFLINE = 1 | ONLINE = 3 | CONNECTING = 4 | PREPARING = 6 )
  • Fixed the No display width or height bug that prevented ui from displaying the screen broadcast
  • Fixed a bug that prevented releasing Apple devices
  • Fixed a bug where repeated device connections were ignored
  • Added important flags when launching ios-device by the ios-provider unit

Целью данного обновления была оптимизация работы Apple устройств:

  • Локальный клон WebDriverAgent заменен на установку пакета appium-webdriveragent через npm
  • Процессы билда / установки / валидации / очистки теперь контролируются пакетом appium-webdriveragent
  • Отрефакторены touch события, оптимизировано touchMove событие, теперь оно может иметь промежуточные точки в пути вместо прямой с координатами "от - до"
  • Добавлен npm скрипт setup-wda открывающий WebDriverAgent.xcodeproj из node_modules в xcode
  • Добавлен npm скрипт save-wda-sign для сохранения подписи пользователя для WebDriverAgent.xcodeproj, его необходимо использовать после каждого редактирования xcode проекта, ведь при повторной установки зависимостей ( npm install ) происходит сброс
  • Добавлен npm скрипт apply-wda-sign для применения сохраненной подписи пользователя проекта WebDriverAgent.xcodeproj
  • При освобождении Apple устройства оно уходит в блокировку и останавливает текущую WDA Session
  • Реализован healthcheck механизм для запущенного на устройстве WebDriverAgent Server, который останавливает процесс при достижении 4х неудачных попыток
    ( юнит ios-provider автоматически запустит процесс девайса вновь )
  • Исправлено некорректное отображение model и marketName девайса в ui
  • Заменен usbmux на usb-hotplug для минимизации оверхеда при прослушке usb
    ( теперь используется нативный macOS IOKit API )

В процессе работы были исправлены баги и техдолг:

  • Убран tsx из проекта, добавлен postinstall скрипт инициирующий билд проекта с копированием всех необходимых ассетов в папку билда и установкой зависимостей в ui
  • В ui добавлен postinstall скрипт инициирующий билд проекта
  • Устройства теперь всегда корректно отражают свой статус
    ( OFFLINE = 1 | ONLINE = 3 | CONNECTING = 4 | PREPARING = 6 )
  • Исправлен баг No display width or height, из-за которого ui не мог отобразить трансляцию экрана
  • Исправлен баг, из-за которого невозможно было освободить Apple устройство
  • Исправлен баг, при котором игнорировалось повторное переподключение девайса
  • Добавлены важные флаги при запуске ios-device юнитов ios-provider

Full Changelog: v1.5.1...v1.5.2