Giter Club home page Giter Club logo

calabash-ios-server's Introduction

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

The Calabash iOS Server

http://calaba.sh

The companion of the calabash-ios gem: https://github.com/calabash/calabash-ios

Building

Building dylibs now requires a Developer Team.

Requires Xcode 7 or Xcode 8.

Xcode 7.3.1 is actively tested. Older versions of Xcode 7 are not.

Requires ruby >= 2.2. The latest ruby release is preferred.

$ git clone --recursive [email protected]:calabash/calabash-ios-server.git
$ cd calabash-ios-server
$ bundle

To build with an alternative Xcode:

$ DEVELOPER_DIR=/Xcode/8.1/Xcode-beta.app make < rule >

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

Maintainers must install the calabash/calabash-resign private repo. Details are below.

Building the Framework

make framework

Building the frank plugin

$ make frank

Building the dylibs

Requires Xcode 6 or greater.

make dylibs

NOTE

If you are a maintainer, you must install the codesign tool if you are planning on making a Calabash iOS gem release.

Building to embed in Calabash gem

See the calabash-ios/calabash-cucumber/Rakefile for more details.

$ cd path/to/calabash-ios/calabash-cucumber
$ be rake build_server

Testing

# Objective-C Unit tests.
$ make xct

# Building libraries.
$ make all

# Integration tests
$ make framework
$ make app-cal
$ cd cucumber
$ bundle update
$ bundle exec cucumber

If you are running the XCTests from Xcode, you might see failures in LPJSONUtilsTest. If you do, clean (Shift + Option + Command + K) and rerun.

If you want to test the LPTestTarget on device and are having problems in Xcode or the command line with messages like this:

iPhone Developer: ambiguous matches

then you must either:

  1. $ CODE_SIGN_IDENTITY="< cert name >" make ipa-cal (preferred)
  2. Update the Xcode project with a specific Code Signing entity. DO NOT CHECK THESE CHANGES INTO GIT.

Maintainers should be using the Calabash.keychain (calabash/calabash-codesign).

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

Licenses

Calabash iOS Server uses several third-party sources. You can find the licenses for these sources in the third-party-licenses directory.

calabash-ios-server's People

Contributors

jmoody avatar krukow avatar hydhknn avatar michaelkirk avatar liohau avatar btaylor-litl avatar olarivain avatar tommeier avatar idcuesta avatar baek-jinoo avatar martica avatar svevang avatar pbernery avatar ldiqual avatar jescriba avatar isachs avatar coeur avatar

Watchers

hankpeng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.