xcode:package-xcodeproj

Full name:

com.sap.prd.mobile.ios.mios:xcode-maven-plugin:1.14.5:package-xcodeproj

Description:

Packages the Xcode project with all its resolved binary dependencies. I.e. this archive can be unzipped and directly opened in Xcode. It uses the zip command for packaging. The zip command is called with the -y options to preserver symbolic links and the -r option to follow the paths recursively. The following files and folders get packaged:
  • src/xcode/ (or the directory specified by the Maven parameter xcode.sourceDirectory in you changed the default Xcode project location)
  • pom.xml
  • sync.info
  • target/bundles/
  • target/headers/
  • target/libs/
  • target/xcode-deps/
You can use the additionalArchivePaths and the excludes If called from command line you have to call mvn initialize before in order to make sure that all binary dependencies have been retrieved from the command line. Please note that this goal is not part of the default lifecycle for xcode-lib and xcode-app projects.

Attributes:

  • Requires a Maven project to be executed.

Optional Parameters

Name Type Since Description
additionalArchivePaths List 1.3.2 You can use this parameter to define additional paths that shall be packaged into the source archive. If the path denotes a folder the folder content with all subfolders will be added. If the path points to a file only the file will be added. Plugin configuration example:
  <build>
    <plugins>
      <plugin>
        <groupId>com.sap.prd.mobile.ios.mios</groupId>
        <artifactId>xcode-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <additionalArchivePaths>
            <param>src/docs</param>
            <param>src/uml</param>
            ...
          </additionalArchivePaths>
         </configuration>  
       </plugin>
       ...
      </plugins>
    </build>
  </build>

checkoutDirectory File - The original Xcode sources located in the src/xcode directory stay untouched during the whole Maven build. However, as we might have to modify the info.plist or the project itself we copy the whole Xcode source directory during the build into another "checkout" directory that by default named checkout and located below the Maven build ( target) directory.
configurations Set - The Xcode configurations that shall be built (e.g. Debug and Release). If no configuration is provided in the plugin's configuration section of the pom.xml it defaults to the values provided in the defaultAppConfigurations or defaultLibConfigurations parameters
defaultAppConfigurations String 1.2.0 Comma separated list of the default Xcode build configurations that should be built for apps (in contrast to libraries). These values only apply if no "configurations" are explicitly provided in the POM.
Default value is: Release,Debug.
defaultAppSdks String 1.2.0 Comma separated list of the default Xcode SDKs that should be used for apps (in contrast to libs). These values only apply if no "sdks" are explicitly provided in the POM.
Default value is: iphoneos,iphonesimulator.
defaultLibConfigurations String 1.2.0 Comma separated list of the default Xcode build configurations that should be built for libraries (in contrast to apps). These values only apply if no "configurations" are explicitly provided in the POM.
Default value is: Release,Debug.
defaultLibSdks String 1.2.0 Comma separated list of the default Xcode SDKs that should be used for libraries (in contrast to apps). These values only apply if no "sdks" are explicitly provided in the POM.
Default value is: iphoneos,iphonesimulator.
excludes List 1.3.3 Specify files or file patterns to be excluded from the archive. Configuration example:
  <build>
    <plugins>
      <plugin>
        <groupId>com.sap.prd.mobile.ios.mios</groupId>
        <artifactId>xcode-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <excludes>
            <param>*.tmp</param>
            <param>*/tmp/*</param>
            ...
          </excludes>
         </configuration>  
       </plugin>
       ...
      </plugins>
    </build>
  </build>

sdks Set - Explicit lists of sdks (iphoneos,iphonesimulator) the Xcode project shall be built for. If no configuration is provided in the plugin's configuration section of the pom.xml it defaults to the values provided in the defaultAppSdks or defaultLibSdks parameters
xcodeCompileDirectory File - The xcode directory of the copied sources below the checkout directory.

Parameter Details

additionalArchivePaths:

You can use this parameter to define additional paths that shall be packaged into the source archive. If the path denotes a folder the folder content with all subfolders will be added. If the path points to a file only the file will be added. Plugin configuration example:
  <build>
    <plugins>
      <plugin>
        <groupId>com.sap.prd.mobile.ios.mios</groupId>
        <artifactId>xcode-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <additionalArchivePaths>
            <param>src/docs</param>
            <param>src/uml</param>
            ...
          </additionalArchivePaths>
         </configuration>  
       </plugin>
       ...
      </plugins>
    </build>
  </build>
  • Type: java.util.List
  • Since: 1.3.2
  • Required: No

checkoutDirectory:

The original Xcode sources located in the src/xcode directory stay untouched during the whole Maven build. However, as we might have to modify the info.plist or the project itself we copy the whole Xcode source directory during the build into another "checkout" directory that by default named checkout and located below the Maven build ( target) directory.
  • Type: java.io.File
  • Required: No
  • Expression: ${xcode.checkoutDirectory}

configurations:

The Xcode configurations that shall be built (e.g. Debug and Release). If no configuration is provided in the plugin's configuration section of the pom.xml it defaults to the values provided in the defaultAppConfigurations or defaultLibConfigurations parameters
  • Type: java.util.Set
  • Required: No

defaultAppConfigurations:

Comma separated list of the default Xcode build configurations that should be built for apps (in contrast to libraries). These values only apply if no "configurations" are explicitly provided in the POM.
  • Type: java.lang.String
  • Since: 1.2.0
  • Required: No
  • Expression: ${xcode.app.defaultConfigurations}
  • Default: Release,Debug

defaultAppSdks:

Comma separated list of the default Xcode SDKs that should be used for apps (in contrast to libs). These values only apply if no "sdks" are explicitly provided in the POM.
  • Type: java.lang.String
  • Since: 1.2.0
  • Required: No
  • Expression: ${xcode.app.defaultSdks}
  • Default: iphoneos,iphonesimulator

defaultLibConfigurations:

Comma separated list of the default Xcode build configurations that should be built for libraries (in contrast to apps). These values only apply if no "configurations" are explicitly provided in the POM.
  • Type: java.lang.String
  • Since: 1.2.0
  • Required: No
  • Expression: ${xcode.lib.defaultConfigurations}
  • Default: Release,Debug

defaultLibSdks:

Comma separated list of the default Xcode SDKs that should be used for libraries (in contrast to apps). These values only apply if no "sdks" are explicitly provided in the POM.
  • Type: java.lang.String
  • Since: 1.2.0
  • Required: No
  • Expression: ${xcode.lib.defaultSdks}
  • Default: iphoneos,iphonesimulator

excludes:

Specify files or file patterns to be excluded from the archive. Configuration example:
  <build>
    <plugins>
      <plugin>
        <groupId>com.sap.prd.mobile.ios.mios</groupId>
        <artifactId>xcode-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <excludes>
            <param>*.tmp</param>
            <param>*/tmp/*</param>
            ...
          </excludes>
         </configuration>  
       </plugin>
       ...
      </plugins>
    </build>
  </build>
  • Type: java.util.List
  • Since: 1.3.3
  • Required: No

sdks:

Explicit lists of sdks (iphoneos,iphonesimulator) the Xcode project shall be built for. If no configuration is provided in the plugin's configuration section of the pom.xml it defaults to the values provided in the defaultAppSdks or defaultLibSdks parameters
  • Type: java.util.Set
  • Required: No

xcodeCompileDirectory:

The xcode directory of the copied sources below the checkout directory.
  • Type: java.io.File
  • Required: No
  • Expression: ${xcode.compileDirectory}