This reference provides description for all tasks accessible in Apphance Flow. To use Apphance Flow build system only single plugin needs to be applied: 'apphance-flow', but under the hood, for better clarity and organisation several plugins are implemented. Every task is assigned to a particular plugin and for better understanding, the documentation below follows this scheme.
Android Analysis Plugin
Android Apphance Plugin
Android Release Plugin
Android Test Plugin
IOS Release Plugin
IOS Apphance Plugin
IOS Test Plugin
You can find example projects for Android at our github page.
You can find example projects for iOS at our github page.
Name: Project Plugin
This is the base plugin which is applied to every project.
This plugin provides setup-related tasks. The tasks allow to generate new configuration or verify existing configuration.
Name: Release Plugin
The plugin provides a set of release-related tasks. It enables creating image montage, zipped sources and sending release notification via email.
Name: Android Plugin
Main android build plugin.
The plugin provides all the tasks needed to build android application. Among plugin tasks there are three static anchor tasks: 'buildAll', 'buildAllDebug' and 'buildAllRelease'. They actually don't do anything besides calling other build tasks. Build tasks are created dynamically based on available variants.
Name: Android Analysis Plugin
This plugin provides tasks for android project code analysis. When applied following analysis can be performed on project: PMD, Checkstyle, Findbugs, Lint and CPD.
Every analysis task has predefined default configuration but custom configurations can be provided for pmd, checkstyle and findbugs. Every analysis task generates reports in 'build/report' directory.
Name: Android Apphance Plugin
Plugin for enabling Apphance (apphance.com) library in android project.
The plugin provides integration with Apphance service. It performs the following tasks: adding Apphance on-the-fly while building the application for configured variants, submitting the application to apphance at release time.
Adding Apphance is implemented according to library installation documentation: help.apphance.com
Name: Android Release Plugin
Plugin that provides release functionality for android.
It provides basic release tasks that update version code and version name of the application while preparing the release and produces ready-to-use OTA (Over-The-Air) package (in flow-ota directory) that you can copy to appropriate directory on your web server and have ready-to-use, easily installable OTA version of your application
Name: Android Test Plugin
Plugin that provides test functionality for android project.
Currently Apphance Flow supports testing android app with Robolectric framework. Plugin adds one anchor task 'testAll' and 'testVariantName' tasks for each configured variant.
Name: IOS Plugin
This is the main iOS plugin.
It provides all tasks necessary for building artifacts for the defined variants. Every variant has a related task, that is dynamically created during initialization of Apphance Flow. For 'DEVICE' and 'SIMULATOR' variants build task name is prefixed with 'archive' prefix, for 'FRAMEWORK' mode prefix for task name is 'framework'.
The following artifacts are be prepared with usage of iOS Plugin:
Name: IOS Release Plugin
This plugin provides simple release functionality.
It provides basic release tasks, allowing to upgrade version of the application (in *.plist files) while preparing the release. Most importantly however, it produces ready-to-use OTA (Over-The-Air) package (under 'flow-ota' directory). This folder contains all built artifacts (as well with HTML sites that present them) that can copied to appropriate directory on a web server and become ready-to-use, easily installable OTA version of the application.
Name: IOS Apphance Plugin
This plugin provides automatic source code integration of apphance framework and defines a task for uploading built artifacts (ipa, ahSYM and image montage) to 'apphance.com'. To upload artifacts apphance user and pass must be passed via flow.properties file, system (-D) properties or environment variables.
For more info visit: apphance.com.
No special task is defined for apphance integration. If apphance mode for particular variant is one of 'QA', 'SILENT' or 'PROD' source code will be modified before building the variant.
Automatic source integration does the following:
Name: IOS Test Plugin
This plugin enables running ocunit compatible tests for chosen variants.
To enable this plugin following requirements must be fulfilled:
For xcode version higher or equal to 5.0 simply 'test' action is invoked for the specified variant.