Skip to content

DeviceAgent.iOS is an XCUITest -Runner.app that is used by Xamarin.UITest and Calabash iOS to perform UI tests on iOS applications.

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.txt
Notifications You must be signed in to change notification settings

badoo/DeviceAgent.iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

de58e0e · Mar 20, 2020
May 31, 2016
Nov 11, 2019
Jul 23, 2018
Mar 16, 2020
Jul 29, 2019
Mar 19, 2020
Jan 31, 2018
Jul 23, 2018
Aug 9, 2017
Mar 19, 2020
Jan 9, 2018
Oct 30, 2019
Sep 25, 2018
Oct 9, 2019
Sep 27, 2019
Nov 7, 2019
Oct 8, 2019
Apr 20, 2016
Mar 5, 2018
Nov 11, 2019
Mar 5, 2018
Sep 18, 2018
Jul 23, 2018
Jul 23, 2018
Apr 12, 2019
Apr 12, 2019
Sep 17, 2018
Mar 26, 2018
Oct 21, 2019
Mar 20, 2020
Jan 9, 2018
Feb 14, 2016
Apr 5, 2017
Sep 17, 2018
Nov 11, 2019

Repository files navigation

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

DeviceAgent.iOS

Requirements

  • Xcode >= 10.3.1
  • macOS Mojave or higher
  • ruby >= 2.3

Code Signing

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

Contributors need to touch the Xcode project file with valid credentials.

Building

All build products are staged to the ./Products directory - even when building from Xcode.

Xcode

To build the DeviceAgent-Runner.app from Xcode, select the DeviceAgent scheme and Build for Testing (Shift + Command + U). Rinse and repeat for simulator or device targets. This will generate binaries for distribution in the ./Products directory. The post-build staging is done in the DeviceAgent scheme's Build Post Action Script.

The logs for this script can be found here:

/tmp/CBX-Runner-post-build.log

Inspect that log file for code signing, patching, and staging errors.

The application targets can be built as usual (Command + B).

You should never have to build the UnitTest target for distribution.

Command line

$ cd DeviceAgent.iOS
$ bundle install

# Make the agent ipa and app
$ make ipa-agent
$ make app-agent

# Unit tests; running against simulators
$ make unit-tests

# Cucumber integration tests
$ make test-app
$ cd cucumber
$ bundle update
$ be cucumber

To build with an alternative Xcode:

$ DEVELOPER_DIR=/Xcode/10.1/Xcode-beta.app/Contents/Developer make < rule >

If you have build errors, see the xcpretty section below.

Code Signing

iPhone Developer: ambiguous matches

Ambiguous matches usually mean that the certs are contained in both your login.keychain and the Calabash.keychain. Delete the certs in your login.keychain.

Contributing

  • The Calabash iOS Toolchain uses git-flow.
  • Contributors should not bump the version.
  • See the CONTRIBUTING.md guide.
  • There is a style guide: STYLE_GUIDE.md.
  • Pull-requests with unit tests will be merged faster.
  • Pull-requests with Cucumber integration tests will be merged even faster.

Releasing

See the CONTRIBUTING.md document for instructions.

xcpretty

https://github.com/supermarin/xcpretty

We use xcpretty to make builds faster and to reduce the amount of logging. Travis CI, for example, has a limit on the number of lines of logging that can be generated; xcodebuild breaks this limit.

The only problem with xcpretty is that it does not report build errors very well. If you encounter an issue with any of the make rules, run without xcpretty:

$ XCPRETTY=0 make ipa-agent

Licenses

DeviceAgent uses several third-party sources. You can find the licenses for these sources in the Licenses directory.

About

DeviceAgent.iOS is an XCUITest -Runner.app that is used by Xamarin.UITest and Calabash iOS to perform UI tests on iOS applications.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.txt

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 81.1%
  • Ruby 8.8%
  • Shell 4.9%
  • HTML 2.0%
  • Gherkin 1.7%
  • SCSS 1.2%
  • Other 0.3%