Setting up Mac OS X for remote use or as a CI pipeline is never a great experience. Usually we all love using Linux for these purposes, sadly iOS devices don't work on Linux.. or do they? Wouldn't it be cool to just execute Appium servers for iOS devices on Linux machines in Docker containers? Turns out you can absolutely do that and this talk explains how.
I have created go-ios (https://github.com/danielpaulus/go-ios) an open source library that allows you to access iOS device functions like:
- launch XCTests (like WebDriverAgent, an Appium requirement for iOS testing)
- start and stop apps
- and many more
from the command line on both, Mac OS X and Linux.
Because we are using unstable, private Apple APIs, I included my reverse engineering tool "dproxy" that you can use to debug future iOS updates or add missing features to go-ios.