/gradle-xcodePlugin

gradle xcodePlugin to build iOS and Mac projects

Primary LanguageGroovyApache License 2.0Apache-2.0

gradle-xcodePlugin

gradle xcodePlugin to build Mac and iOS projects

Current stable version is 0.9.14

0.9.14 supports Xcode 5, Xcode 6 and Xcode 6.1

Introduction: http://openbakery.org/gradle.php

Example: build.gradle

xcodebuild Parameters:

  • scheme - the xcode build scheme that should be used. If the scheme is set the configuration and target is ignored

    default value: empty

  • workspace - the workspace file that should be used for the build.

    default value: empty

  • configuration - the build configuration name that should be used (e.g. 'Debug', 'Release')

    default value: 'Debug'

  • sdk - the SDK that should be used (e.g. 'iphonesimulator', 'iphoneos')

    default value: 'iphonesimulator'

  • target - the xcode build target that should be used

    default value: empty

  • signing - signing configuration that should be used when building for the device

    • identity - the signing identity e.g. 'iPhone Developer: Rene Piringer (AASDF1234)'

      default value: empty
      
      • mobileProvisionURI - URI where the mobile provision profile is located that should be used when signing the app

        default value: empty

      • certificateURI - Uri to the certificate that should be used to sign the app

        default value: empty

      • certificatePassword - Password for the certificate file

        default value: empty

      • keychainPassword - Password for the chain that is created

        default value: "This_is_the_default_keychain_password"

      • keychain - Parameter to specify an existing keychain. If this parameters is set no keychain is created and also the certificate is not imported.

        default value: empty

        Note: Make sure that /usr/bin/codesign is allowed to access the certificate in the keychain that is needed to sign.

      • timeout - A custom timeout before the keychain automatically locks, in seconds. Set this to be longer than your build time if you are getting a prompt for the keychain password.

        default value: empty

  • destination * - destination configuration, that is used for the unit test execution

    default value: empty (When empty alls available simulators are used for the unit tests)

    Note when building using the iPhoneSimulator: The destinations are verified if they already exists. If not then the destination is ignored for the unit test. If no valid destination is specified, then all available simulator destinations are used for the unit tests. Therefor you can specify destinations to limit on which simulator destinations the unit tests are performed. You also can specify a regular expression for the value and all available simulator devices are included that match these value: e.g. name = 'iPhone.*'

    • platform - Platform, e.g. 'iOS' or 'OS X'

    default value: empty

    • name - Name of the destination device.

    default value: empty

    • arch - Architecture of the destination target

    The arch can a single value e.g. 'i386' or a list of values e.g. [ 'armv7', 'armv7s' ]

    default value: empty

  • additionalParameters - additional parameters for the xcodebuild. Here you can for example pass preprocessor definitions: additionalParameters = "GCC_PREPROCESSOR_DEFINITIONS='TIME=" + System.currentTimeMillis() + "'".

    Also an array of parameters is excepted e.g. ["-xcconfig", "/path/to/the/xconfig" ]

    default value: empty

  • bundleNameSuffix - String that should be appended to the generated app bundle. e.g. the default app bundle name is 'Demo.App'. When you set bundleNameSuffix=-1.0.0 than the generated bundle is 'Demo-1.0.0.app'

    default value: empty

  • arch - Use the architecture specified by architecture when building each target. e.g. 'i386', 'armv6', 'armv7'

    Also an array of parameters is possible e.g. ['armv7', 'arm64']

    default value: empty

  • buildRoot - build root directory for the build output

    default value: build

  • dstRoot - the distribution root directory

    default value: 'build/dst'

  • objRoot - the object root directory

    default value: 'build/obj'

  • symRoot - the sym directory. Here is where the app and ipa is generated

    default value: 'build/sym'

  • sharedPrecompsDir

    default value: 'build/shared'

  • infoPlist - override the Info.plist file that is configured in the xcode project file

    default value: empty

  • version - set the xcode version that should be used if multiple versions of Xcode are installed. Here the build number must be specifed e.g. '5B1008' for Xcode 5.1.1. If this value is empty then the default version is used that is selected using 'xcode-select'

    defaul value: empty

infoplist Parameters:

  • bundleIdentifier - If set it override the bundle identifier in the Info.plist (CFBundleIdentifier)

    default value: empty

  • bundleIdentifierSuffix - If set it adds a suffix to the bundle identifier in the Info.plist (CFBundleIdentifier)

    default value: empty

  • bundleDisplayName - If set it override the bundle display name in the Info.plist (CFBundleDisplayName)

    default value: empty

  • bundleDisplayNameSuffix - If set it adds a suffix to the bundle display name in the Info.plist (CFBundleDisplayName)

    default value: empty

  • version - sets the CFBundleVersion to the given version Note: version=2.3.4 and versionSuffix=-Suffix and versionPrefix=Prefix- results in 'Prefix-2.3.4-Suffix'

    default value: empty

  • versionSuffix - adds the value to the CFBundleVersion e.g. 'CFBundleVersion=1.0.0' and 'versionSuffix=-Test' results in '1.0.0-Test'

    default value: empty

  • versionPrefix - adds the value in front of the CFBundleVersion e.g. 'CFBundleVersion=1.0.0' and 'versionPrefix=Test-' results in 'Test-1.0.0'

    default value: empty

  • shortVersionString - sets the CFBundleShortVersionString to the given shortVersionString

    default value: empty

  • shortVersionStringSuffix - adds the value to the CFBundleVersion e.g. 'CFBundleShortVersionString=1.0.0' and 'versionSuffix=-Test' results in '1.0.0-Test'

    default value: empty

  • shortVersionStringPrefix - adds the value in front of the CFBundleVersion e.g. 'CFBundleShortVersionString=1.0.0' and 'versionPrefix=Test-' results in 'Test-1.0.0'

    default value: empty

  • commands - adds commands to modify the info plist that are excuted with the plistbuddy tool (see also 'man PlistBuddy' )

    default value: empty

    Example: This commands modify the URL scheme.

	commands = [
		'Delete CFBundleURLTypes:0:CFBundleURLSchemes',
		'Add CFBundleURLTypes:0:CFBundleURLSchemes array',
		'Add CFBundleURLTypes:0:CFBundleURLSchemes:0 string newscheme'
	]

hockeykit Parameters:

  • displayName - Title that should be used that is shown on the hockeykit site for the app. If the value is not set then the bundle identifier is used

    default value: the CFBundleDisplayName from the Info.plist file is used

  • versionDirectoryName - subdirectory that should be used for the app.

    default value: "0"

  • outputDirectory - directory where to store the files that are generated for the hockeykit distribution

    default value "build/hockeykit";

  • notes - Release notes as HTML or Markdown for the build that is stored in a releasenotes.html.

    default value: empty

TestFlight Parameters:

  • apiToken - The TestFlight API Token (https://testflightapp.com/account/#api-token)

    default value: empty

  • teamToken - The TestFlight Team Token (https://testflightapp.com/dashboard/team/edit/?next=/api/doc/)

    default value: empty

  • notes - Release notes for the build

    default value: "This build was uploaded using the gradle xcodePlugin"

  • outputDirectory - Output directory where the ipa an dSYM.zip is created

    default value: "build/testflight"

  • distributionLists - Comma separated distribution list names which will receive access to the build

    default value: empty

  • notifyDistributionList - notify permitted teammates to install the build

    default value: false

  • replaceBuild - replace binary for an existing build if one is found with the same name/bundle version

    default value: false

Note: see also https://testflightapp.com/api/doc/

HockeyApp Parameters:

  • apiToken - The HockeyApp API Token (see https://rink.hockeyapp.net/manage/auth_tokens )

    default value: empty

  • appID - The HockeyApp App ID (see https://rink.hockeyapp.net/manage/dashboard and select the app)

    default value: empty

  • outputDirectory - Optional, output directory where the ipa an dSYM.zip is created

    default value: "build/hockeyapp"

  • notes - Release notes for the build

    default value: "This build was uploaded using the gradle xcodePlugin"

  • status - Optional, download status (can only be set with full-access tokens):

    default value: 2

  • notify - Optional, notify testers

    default value: 1

  • notesType - Optional, type of release notes

    default value: 1

DeployGate Parameters:

  • apiToken - The DeployGate API Token (https://deploygate.com/settings)

    default value: empty

  • userName - The DeployGate User Name (https://deploygate.com/settings)

    default value: empty

  • message - Release notes for the build

    default value: "This build was uploaded using the gradle xcodePlugin"

  • outputDirectory - Output directory where the ipa

    default value: "build/deploygate"

Note: see also https://deploygate.com/docs/api

sparkle Parameters:

  • appName - You should specify this parameter when your appname does not match your target name. Default appname in XCode is $(TARGET_NAME). Do not specify .app here because it will be added automatically. If a different file ending than .app will be needed in future we will add a new parameter.

    default value: empty

  • outputDirectory - The directory to output a ZIP file and release notes of the app.

    default value: empty

coverage Parameters:

Note: For coverage the the "Generate Test Coverage Files" in the project for the executed target must be set to Yes

  • exclude - Exclude data files that match this regular expression. e.g. '.*h$|.*UnitTests.*m$' excludes all headers and all *.m files from the UnitTests directory

    default value: empty

  • outputFormat - Format of the generated output. Possible values are, xml or html. If not specified text file is generated

    default value: empty

  • outputDirectory - Output directory for the results

    default value: "build/coverage"