Volver al ranking

danielpaulus/go-ios

Go

This is an operating system independent implementation of iOS device features. You can run UI tests, launch or kill apps, install apps etc. with it.

ioslinuxxcuitestinstrumentsdtx-frameworkdtxappium-ioshacktoberfestgolanghacktoberfest2022hacktoberfest2023
Crecimiento de estrellas
Estrellas
2.2k
Forks
321
Crecimiento semanal
Issues
108
1k2k
jun 2019oct 2021mar 2024jul 2026
ArtefactosGo Modulesgo get github.com/danielpaulus/go-ios
README

NPM License: MIT Twitter NPM

Welcome 👋

npm install -g go-ios can be used to get going. Run ios --help after the installation for details. For iOS 17+ devices you need to run sudo ios tunnel start for go ios to work. This will start a tunnel daemon. To make this work on Windows, download the latest wintun.dll from here https://git.zx2c4.com/wintun and copy it to C:/Windows/system32

The goal of this project is to provide a stable and production ready opensource solution to automate iOS device on Linux, Windows and Mac OS X. I am delighted to announce that a few companies including headspin.io and Sauce Labs will use or are using go-iOS.

Follow my twitter for updates or check out my medium blog: https://daniel-paulus.medium.com/

If you are interested in using go-iOS please get in touch on LinkedIn, Twitter or the Github discussions above, I always love to hear what people are doing with it.

If you miss something your Mac can do but go-iOS can't, just request a feature in the issues tab.

New REST-API

Go-iOS is getting an experimental REST-API check it out https://github.com/danielpaulus/go-ios/tree/main/restapi

Design principles:

  1. Using golang to compile static, small and fast binaries for all platforms very easily.

    Build Manual: Install golang and run go build

  2. All output as JSON so you can easily use go-iOS from any other programming language

  3. Everything is a module, you can use go-iOS in golang projects as a module dependency easily

Features:

Most notable:

  • Install apps zipped as ipa or unzipped from their .app folder ios install --path=/path/to/app
  • Run XCTests including WebdriverAgent on Linux, Windows and Mac
  • Start and Stop apps
  • Use a debug proxy to reverse engineer every tool Mac OSX has, so you can contrib to go-ios or build your own
  • Pair devices without manual tapping on a popup
  • Install developer images automatically by running ios image auto
  • Set thermal states and network emulation on the device with the ios devicestate command

Help:

ios --help
ios help <command>
ios <command> --help
go-ios local-build

Cross-platform iOS automation CLI.

Usage:
  ios [--help]
  ios help [<command>...]
  ios <command> [<args>...]

Global options:
  -h, --help                 Show help.
  -v, --verbose              Enable debug logging.
  -t, --trace                Enable trace logging.
  --nojson                   Disable JSON output.
  --pretty                   Pretty-print JSON output.
  --udid=<udid>              Target a specific device.
  --tunnel-info-port=<port>  Tunnel info API port (default 28100).
  --address=<ipv6addr>       Device tunnel address.
  --rsd-port=<port>          Device tunnel RSD port.
  --proxyurl=<url>           Outbound HTTP proxy URL.
  --userspace-port=<port>    Userspace tunnel port.

Commands:
  activate                   Activate a device.
  apps                       List installed applications.
  assistivetouch             Manage AssistiveTouch state.
  ax                         Accessibility inspector features.
  batterycheck               Battery information.
  batteryregistry            Battery registry metrics.
  crash cp                   Copy crash reports.
  crash ls                   List crash reports.
  crash rm                   Remove crash reports.
  date                       Print device date.
  debug                      Start LLDB debug session.
  devicename                 Print device name.
  devicestate enable         Enable device condition profile.
  devicestate list           List device condition profiles.
  devmode                    Manage developer mode.
  diagnostics list           List diagnostics.
  diskspace                  Print disk usage.
  dproxy                     Start debug proxy.
  erase                      Erase device.
  file ls                    List files in app/group/temp/crash container.
  file pull                  Pull file from device.
  file push                  Push file to device.
  forward                    Forward host port to device.
  fsync                      App container file sync operations.
  httpproxy                  Install global HTTP proxy profile.
  httpproxy remove           Remove go-ios HTTP proxy profile.
  image auto                 Auto-download and mount developer image.
  image list                 List mounted developer images.
  image mount                Mount developer image.
  image unmount              Unmount developer image.
  info                       Dump device info.
  install                    Install app bundle or IPA.
  instruments notifications  Stream app state notifications.
  ip                         Detect device IP from packet capture.
  kill                       Kill app by bundle ID, PID, or process.
  lang                       Read or set device language and locale.
  launch                     Launch app by bundle ID.
  list                       List connected devices.
  listen                     Listen for device connect/disconnect.
  lockdown get               Query lockdown values.
  memlimitoff                Disable process memory limit.
  mobilegestalt              Query mobilegestalt keys.
  ostrace                    Stream os_trace_relay logs.
  pair                       Pair host with device.
  pcap                       Capture network packets.
  prepare                    Prepare device for automation.
  prepare cloudconfig        Print cloud configuration.
  prepare create-cert        Create supervision certificate.
  prepare printskip          Print prepare skip options.
  profile add                Install profile on device.
  profile list               List installed profiles.
  profile remove             Remove installed profile.
  ps                         List running processes.
  readpair                   Dump pair record.
  reboot                     Reboot device.
  resetax                    Reset accessibility settings.
  resetlocation              Reset simulated location.
  rsd ls                     List RSD services.
  runtest                    Run XCUITest bundles.
  runwda                     Run WebDriverAgent.
  runxctest                  Run XCTest from .xctestrun file.
  screenshot                 Capture screenshot or stream MJPEG.
  setlocation                Set simulated location coordinates.
  setlocationgpx             Set simulated location from GPX.
  syslog                     Stream device syslog.
  sysmontap                  Stream CPU and memory metrics.
  timeformat                 Manage time format setting.
  tunnel ls                  List running tunnels.
  tunnel start               Start iOS 17+ tunnel and pair if needed.
  tunnel stopagent           Stop tunnel agent.
  uninstall                  Uninstall app by bundle ID.
  version                    Print version.
  voiceover                  Manage VoiceOver state.
  zoom                       Manage Zoom state.

Run 'ios help <command>' or 'ios <command> --help' for command details.
Repositorios relacionados
flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

DartBSD 3-Clause "New" or "Revised" Licensemobileandroid
flutter.dev
177.9k30.7k
react/react-native

A framework for building native applications using React

C++MIT Licenseandroidapp-framework
reactnative.dev
126.2k25.2k
facebook/react-native

A framework for building native applications using React

C++MIT Licenseandroidapp-framework
reactnative.dev
120.9k24.5k
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Rustcrates.ioGNU Affero General Public License v3.0remote-controlremote-desktop
rustdesk.com
118.6k18.1k
justjavac/free-programming-books-zh_CN

:books: 免费的计算机编程类中文书籍,欢迎投稿

GNU General Public License v3.0pythonjavascript
weibo.com/justjavac
117.7k28.2k
Solido/awesome-flutter

An awesome list that curates the best Flutter libraries, tools, tutorials, articles and more.

Dartflutterawesome-list
60.7k6.9k
FiloSottile/mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like.

GoGo ModulesBSD 3-Clause "New" or "Revised" Licensehttpstls
mkcert.dev
59.4k3.1k
appwrite/appwrite

Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more

TypeScriptnpmBSD 3-Clause "New" or "Revised" Licenseappwritedocker
appwrite.io
56.6k5.6k
google/material-design-icons

Material Design icons by Google (Material Symbols)

Apache License 2.0materialmaterial-design
google.github.io/material-design-icons/
53.6k9.7k
vsouza/awesome-ios

A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects

SwiftMIT Licenseawesomeswift-library
awesomeios.dev
52.8k7k
ionic-team/ionic-framework

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

TypeScriptnpmMIT Licenseionicmobile
ionicframework.com
52.6k13.3k
dkhamsing/open-source-ios-apps

:iphone: Collaborative List of Open-Source iOS Apps

Creative Commons Zero v1.0 Universaliosswift
51.3k6k