GithubHelp home page GithubHelp logo

brewinapps / ios-maven-plugin Goto Github PK

View Code? Open in Web Editor NEW
23.0 9.0 18.0 51 KB

Maven plugin to simplify automated builds and deploys of iOS projects

Home Page: http://www.brewinapps.com

License: The Unlicense

Java 100.00%

ios-maven-plugin's Introduction

ios-maven-plugin

Build Status

The ios-maven-plugin plugs in to the Maven build lifecycle to automate compilation and deployment of iOS applications. This enables continuous integration for the iOS platform with ease.

Features

  1. Compilation of iOS applications
  2. Distribution of iOS applications
  3. Versioning of iOS applications
  4. One-step HockeyApp deployment
  5. Packaging of iOS applications (.ipa & .dSYM) for deployment to Nexus/Artifactory
  6. Available in the central repository

Requirements

  1. The plugin relies on several tools that are only available on Mac OS X: xcodebuild, xcrun and agvtool.
  2. To let ios-maven-plugin take care of versioning, be sure to set 'Versioning System' in the project settings to apple-generic

Maven Goals

ios:build

Compiles the application and generates an IPA package

Parameters

  1. ios.sourceDir
  2. ios.appName
  3. ios.scheme
  4. ios.sdk
  5. ios.codeSignIdentity
  6. ios.configuration
  7. ios.version
  8. ios.buildId

ios:deploy

Deploys the IPA package as well as the generated dSYM.zip to HockeyApp

Parameters

  1. ios.sourceDir
  2. ios.appName
  3. ios.scheme
  4. ios.sdk
  5. ios.codeSignIdentity
  6. ios.configuration
  7. ios.version
  8. ios.buildId
  9. ios.hockeyAppToken
  10. ios.releaseNotes

Getting started with ios-maven-plugin and Jenkins

Configure a basic POM for your iOS project or module and add:

<plugin>
    <groupId>com.brewinapps</groupId>
    <artifactId>ios-maven-plugin</artifactId>
    <version>1.2</version>
    <extensions>true</extensions>                
    <configuration>
        <codeSignIdentity>iPhone Distribution: ACME Inc</codeSignIdentity>
        <appName>AcmeApp</appName>
    </configuration>				                
</plugin>

Compile to verify

mvn clean compile

Allow jenkins to access your keychain

To sign the package, unlock the keychain on the jenkins node. The two commands below can be set up as a pre-build shell script.

security list-keychains -s ~/Library/Keychains/jenkins.keychain
security unlock-keychain -p CHANGEME ~/Library/Keychains/jenkins.keychain

Deploy to HockeyApp

To deploy to HockeyApp add -Dios.hockeyAppToken=YOUR_TOKEN as an argument and invoke mvn ios:deploy.

Tips

  1. ios-maven-plugin sets the CFBundleShortVersionString to the Maven project version by default. You can override this behaviour by adding the -Dios.version argument.
  2. To set CFBundleVersion to the svn revision or git commit add -Dios.buildId=$SVN_REVISION or -Dios.buildId=$GIT_COMMIT respectively.

ios-maven-plugin's People

Contributors

jgmchan avatar mathieuboniface avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ios-maven-plugin's Issues

Multiple Executions

Can you please give me an example of multiple executions for your plugin? e.g. building multiple targets.

Many thanks

The appName Tag does't work

If I change the appName in pom file which is different with my xcode project,It will fail when generate the ipa file from the app file.But if I set The appName in pom file the same as my xcode project name,it work fine.

Here is the log:

Executing 'xcrun -sdk iphoneos PackageApplication -v /Users/Niko/Projects/Demos/test/target/Debug-iphoneos/AcmeApp.app -o /Users/Niko/Projects/Demos/test/target/Debug-iphoneos/AcmeApp.ipa --sign iPhone Developer: ?? ? (DN6Z49L525)'
error: Specified application doesn't exist or isn't a bundle directory : '/Users/Niko/Projects/Demos/test/target/Debug-iphoneos/AcmeApp.app'

License Request

Could you please add a license for this project. I would like to create a fork and make some modifications.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.