/xcode-maven-plugin

A maven build plugin for iOS continuous integration builds

Primary LanguageJavaApache License 2.0Apache-2.0

Xcode-Maven-Plugin

Overview

A maven plugin for building iOS Apps, run unit-tests and integration-tests.

Build Status

Documentation

Documentation

Wiki

Requirements on your xcode project

Requirements on your build agent

  • Xcode command line tools
  • Homebrew: ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
  • lcov: brew install lcov
  • ios-sim: brew install ios-sim

Example Project

iOS-Continuous-Integration-Demo

Example POM

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.felixschulze.my-project</groupId>
    <artifactId>my-project</artifactId>
    <packaging>xcode</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>My Project</name>
    <build>
        <plugins>
            <plugin>
                <groupId>de.felixschulze.maven.plugins.xcode</groupId>
                <artifactId>xcode-maven-plugin</artifactId>
                <version>1.2</version>
                <configuration>
                    <xcodeProject>my-project.xcodeproj</xcodeProject>
                    <xcodeTarget>my-project</xcodeTarget>
                    <xcodeConfiguration>Release</xcodeConfiguration>
                    <xcodeSdk>iphoneos</xcodeSdk>
                </configuration>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
</project>

Advanced POM

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>de.felixschulze.my-project</groupId>
    <artifactId>my-project</artifactId>
    <packaging>xcode</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>My Project</name>
    <build>
        <plugins>
            <plugin>
                <groupId>de.felixschulze.maven.plugins.xcode</groupId>
                <artifactId>xcode-maven-plugin</artifactId>
                <version>1.2</version>
                <configuration>
                    <xcodeProject>my-project.xcodeproj</xcodeProject>
                    <xcodeTarget>my-project</xcodeTarget>
                    <xcodeConfiguration>Release</xcodeConfiguration>
                    <xcodeSdk>iphoneos</xcodeSdk>
                    <appName>my-project</appName>
                    <executeGHUnitTests>true</executeGHUnitTests>
                    <generateCoverageReport>true</generateCoverageReport>
                    <coverageTarget>CI-Demo</coverageTarget>
                    <bundleVersionFromGit>true</bundleVersionFromGit>
                    <teamCityLog>true</teamCityLog>
                    <infoPlist>my-project/my-project-Info.plist</infoPlist>
                    <provisioningProfile>ABCDEFGH-ABCD-1234-ABCD-12345678901</provisioningProfile>
                    <codeSignIdentity>iPhone Distribution: Developer Name</codeSignIdentity>
                    <executeKIFIntegrationTests>true</executeKIFIntegrationTests>
                    <kifMakeScreenshots>true</kifMakeScreenshots>
                </configuration>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
</project>

License

Apache License, Version 2.0 - See LICENSE