Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/platanus/fastlane-cordova


https://github.com/platanus/fastlane-cordova

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Fastlane for Cordova

This is a collection of *lanes* and *actions* ment to streamline the
platanus workflow for app developemnt and deployment.

## What is fastlane

From the fastlane [repository][fastlane-repo]

> fastlane lets you define and run your deployment pipelines for different
> environments. It helps you unify your apps release process and automate the
> whole process.

## Getting started

You need to install the fastlane gem and setup your project to load the
fastlane-cordova collections into your project

gem install fastlane

In you app repository, add the fastlane configuration file

mkdir fastlane
touch fastlane/Fastfile

In the `Fastfile` you need to import the `Fastfile` located in this repository

```ruby
# /fastlane/Fastfile

# import from an online repository
import_from_git(url:"https://github.com/platanus/fastlane-cordova")

# or
# import from a local checkout
# this is usefull for development
import "~/fastlane-cordova/fastlane/Fastfile"
```

You'll need to add a `config.yml` with the base configuration.

```yaml
---
default: &default
apple_id: "[email protected]"
team_id: "35EKS95Z97"
certificates_url: "https://github.com/org/repo"

stages:
staging:
<<: *default

production:
<<: *default
```

**Configuration options:**

- **stages** (required):
Is a map of stage specific configuration where the *key*
is the name of the stage

- `apple_id` (required): The Apple ID account to use

- `team_id` (required): The apple developer team ID

- `certificates_url` (required):
The url where match will store and sync the certificates and
provitioning profiles.
> **NOTE:** You should use a different repository per account and team.

## How to use it

Just run fastlane with the lane and options you want to use

fastlane ios [option_key:option_value,...]

1. Create the application and app ids in iTunes Connect and the developer
center with the `create` lane

1. Then you should create the certificates and provisioning profiles running
the `certs` lane

1. Then you should be able to deploy with the `deploy` lane

## Available lanes

### `create`

Creates app ids for each of the stages. The apps are created using the
information in the cordova `config.xml` file with a `stage` suffix.
It use the following values:

| value | template | example |
| ------------ | ------------------------------ | ------------------------- |
| **App Id** | `.` | us.platan.madbill.staging |
| **App Name** | ` - ` | Madbill - Staging |

> **Note**: If a stage is named **production**, the `app_id` and `app_name` are
> used as are defined in the `config.xml` without the `stage` suffix

### `certs`

Create necessary profiles and certificates

It use [match][fastlane-match] and follows the
[code signing guide][codesigning-guide]

### `deploy`

Deploy app to testflight or appstore. To deploy you need to specify
distribution type and the stage.

```shell
fastlane ios deploy to: stage:

# To deploy the staging app to the appstore
fastlane ios deploy to:appstore stage:staging
```

- **distribution types**: `testflight` or `appstore`
- **stage**: the stages are defined in the `config.yml` file

### `service`

Enable or disable services in the application.

```shell
fastlane ios service enable: disable:

# To deploy enable push notifications
fastlane ios service enable:push-notification
```

- **supported service types**:

- `healthkit` HealthKit
- `homekit` HomeKit
- `wireless-conf` Wireless Accessory Configuration
- `inter-app-audio` Inter-App-Audio
- `passbook` Passbook
- `push-notification` Push notification
- `vpn-conf` VPN Configuration

When enabling `push-notification` the lane also creates a new certificate for
each stage and upload them to the SNS platform creating a new application.

> **Important** You need to have a valid AWS credentials in your
> environment. `ENV['AWS_ACCESS_KEY_ID'] and ENV['AWS_SECRET_ACCESS_KEY']`

## Credits

Thank you [contributors](https://github.com/platanus/fastlane-cordova/graphs/contributors)!

Platanus

fastlane-cordova is maintained by [platanus](http://platan.us).

## License

Potassium is © 2016 platanus, spa. It is free software and may be redistributed
under the terms specified in the LICENSE file.

[fastlane-repo]: https://github.com/fastlane/fastlane
[fastlane-match]: https://github.com/fastlane/match
[codesigning-guide]: https://codesigning.guide