The gradle xcode plugin (gxp) makes it easier to build Xcode projects by specifying the build settings in a single configuration file. The goal is to keep the build file as simple as possible, but also enable a great flexibility for the build.
The gxp uses the Apple command line tools (like xcodebuild) to perform the build.
Here a brief overview of the features:
- Build iOS, watchOS and Mac projects
- Override sign settings for builds
- Perform unit tests
- Support for multiple Xcodes (on one machine)
- Cocoapods support
- Appledoc support
- Code coverage support (using gcovr )
- Hockeykit, HockeyApp, DeployGate , Apple TestFlight, Crashlytics
- OCLint (Works not with Xcode 7-beta)
With version 0.12 the sdk parameter was removed and was replaced by the new type and simulator parameter
- Xcode 5 or greater
- Gradle 2.0 or greater
- Java 1.6 or greater
0.9.x up to 0.12.x supports Xcode 5, Xcode 6.* and Xcode 7
Create a build.gradle file and place it in the same directory where xcodeproj file lies.
Here the minimal content you need in your build.gradle file:
plugins {
id "org.openbakery.xcode-plugin" version "0.12.0"
}
xcodebuild {
scheme = 'MY-SCHEMA'
target = 'MY-TARGET'
}
You find example projects in example/ with a working build.gradle file.
After you have fetched the example go to the example/iOS/Example directory and you build the project different targets:
- Build with
gradle xcodebuild - Run the unit tests with
gradle test - Perform a device build and upload it to hockeyapp with
gradle integration. Here you need to specify your sign settings first (see Signing ). Open the build.gradle file an follow the instructions. - Perform an appstore build with
gradle appstore. (Also the sign settings are needed).
I'm always happy to receive pull requests with new features and if you send a pull request please consider the following things:
- Use the develop branch for pull requests, because all the new stuff is implemented in the develop branch and also pull requests are always merge into develop
- Use Tabs instead of spaces.
- Make sure that all unit tests are working before you send the pull request. Just run 'gradle test'
- I urge you to write unit tests.
- For unit test please use the spock framework for mocking. I want to remove the old gmock framework and port the old tests to use spock.
- If a pull request does not contain any unit tests, I always think twice if I should merge it at all.