iOS UI/Device Controller
The contents of this repo are Proof of Concept and For Educational Use Only! Archived and no longer maintained!
UI/Device Controller automates user activity on any iOS device using XCode UI Tests.
Our team started development on this project early on in it's inception. It was crude, simple, and brilliant. A young kid who hung out in the Dev forums decided to show off his school project (15 years old) --
He used XCode and Swift's Server package to build an app and sideload it onto a device. The app was a crude implementation of MITM. It grabbed the screen state and sent an image of the screen to a laptop.
This was new. iOS, which is notoriously sandboxed had a flaw.
3rd party libraries with optical image processing for non-standard UIElements, launching multiple docker-compose containers for instant replication and deploying Docker Hives for advanced user, creating a Webserver in Xcode, creating a temporary webserver inside of an application sideloaded on any compatible iOS device, all auto-replicated, plug-and-play.
Demonstration using Xcode UI Tests to perform application automation on networked iOS devices. RDM-UIC-Ultra is based on the open-source work of https://github.com/123FLO321/RealDeviceMap @123FLO321 Thank you for the opportunity , despite our creative differences and content delivery styles, myself and the community have a profound respect for your work. ~thebest100
RealDeviceMap-UIControl is a Device Controller for the RealDeviceMap-Api (https://github.com/123FLO321/RealDeviceMap).
- Clone repo then checkout uic-ultra branch,
git checkout uic-ultra
- Install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Install cococapods
sudo gem install cocoapods
- Install setup tools
sudo easy_install setuptools
- Install requests
pip2 install requests
- Install project podfile
- Open .xcworkspace file
- Fix signing inside xcode project
- Run a test build to make sure the app compiles and runs without errors.
- Exit xcode, Back in terminal
- Build manager
swift run RDM-UIC-Manager
- Wait about 2 minutes, after all of the manager dependencies are downloaded and the terminial is stuck on XcodeBuildservice
- ctrl+c then
swift run RDM-UIC-Managerand the manager should start from there. (Yes, ctrl+c is necessary for a full build...) If you have any issues, open an issue, PR's are welcome. There is still alot of room for improvement.
RealDeviceMap-UIControl interacts with the iOS Device using Xcode UITesting.
This project shows how to UITest 3rd party apps with optical image processing for none standart UIElements and how to setup and use a Webserver in a Xcode UITest.
Questions? Ask as in Discord: https://discord.gg/q2aXaGP
Log in or sign up for Devpost to join the conversation.