Skip to content

calabash/iOSDeviceManager

Repository files navigation

develop master versioning license contributing
Build Status Build Status Version License Contributing

iOSDeviceManager

A command line tool for managing applications on iOS simulators and physical iOS devices.

Requirements

  • Xcode >= 12; Xcode 13.* preferred.
  • ruby >= 2.3.1

Code Signing

Project maintainers must clone the codesign repo and install the certs and profiles. Talk to a maintainer for details.

Contributors will need to update the Xcode project with valid code signing properties.

Building

$ git clone --recursive git@github.com:calabash/iOSDeviceManager.git
$ make build

Usage

After building, you can run:

$ Products/iOSDeviceManager

to see usage information.

Testing

$ make unit-tests
$ make integration-tests
$ make cli-tests

# Or just execute 'tests' to run all
$ make tests

# Test against an alternative Xcode
$ DEVELOPER_DIR=/Xcode/9.4.1/Xcode-beta.app/Contents/Developer make tests

If you encounter build errors in the Xcode IDE, clean the DerivedData directory (deep clean - Command + Shift + Option + K). You are likely to see errors if you switch Xcode IDEs between runs.

If you have physical device attached and it is compatible with and available to the active Xcode (the Xcode IDE or the returned by xcode-select), integration tests will be performed against the device. If no device is found, the tests are skipped.

The Expecta, Specta, and OCMock frameworks are controlled by Carthage. We commit the frameworks to source control to avoid having to run carthage bootstrap on CI machines and locally. To update the frameworks, run carthage update and commit the Cartfile.resolved and frameworks changes to git.

idb

The idb's repository is expected to be located ../ relative to this directory. Checkout the branch you want to build and run: make frameworks to build and install.

See bin/make/frameworks.sh