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
With version 0.12 the sdk parameter was removed and was replaced by the new type and simulator parameter
Here a table of the values for the migration to 0.12:
sdk (old) | type (new) | simulator (new) |
---|---|---|
iphonesimulator | iOS | true |
iphoneos | iOS | false |
macosx | OSX | (this value is ignored) |
- Xcode 6 or greater
- Gradle 2.0 or greater
- Java 1.6 or greater
0.12.x supports 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.13.1"
}
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.