fastlane-produce

1.0.0 • Public • Published

fastlane-produce

NPM version Build Status Coverage Status

Node.js Wrapper for the Ruby Fastlane Produce Tool

Important

You will have to follow the fastlane API when determining what options you need to have passed for whatever command you are trying to use. For example, if I want to create an app, I'd need to pass the required options of username, app identifier, app name, and company name. This may change in the future, however.

I recommend manually testing the fastlane commands on the command line to see what fastlane expects.

example

var produce = require('fastlane-produce')
var options = {
    create:true,
    username:'gege',
    app:'yoyo',
    identifier:'123',
    skipItc: true,
    enableServices: [{service:'icloud', value:'legacy'}, 'homekit']
}
produce(options, function(err) {
    if (err) console.log(err)
    else //do something
})

api

var produce = require('fastlane-produce')

produce(options, [callback])

Accepts a required options object, with the available options listed below. Optional callback function.

Produce Options

Produce Option Example Description Command Executed
create (boolean) { create:true } Creates a new app on iTunes Connect and the Apple Developer Portal create
skipItc (boolean) { skipItc: true } Skip the creation of the app on iTunes Connect -i
skipDevCenter (boolean) { skipDevCenter: true } Skip the creation of the app on Apple Developer Portal -d
name (string) { name: 'appname' } App Name -q {name}
identifier (string) { identifier:'myapp' } The bundle identifier of your app -a { identifier }
user (string) { user:username } Your Apple ID Username -u { user }
teamId (string) { teamId:'ekjo' } The ID of your team if you're in multiple teams -b { teamId }
teamName (string) { teamName:'teamA' } The name of your team if you're in multiple teams -l { teamName }
suffix (string) { suffix:'pin' } App Identifier Suffix (Ignored if App Identifier does not ends with .*) -e { suffix }
version (string) { version:'1.0' } Initial version number -z { version }
sku (string) { sku:'23423' } SKU Number -y { sku }
language (string) { language:'french' } Primary Language (e.g. 'English', 'German') -m { language }
company (string) { company:'ABC' } The name of your company. Only required if it's the first app you create -c { company }
createAppGroup (object) { createAppGroup :{name:'app group name', description: 'app group description' }} Create a New App Group group -g { name } -n { description }
associateGroup (object) { associateGroup: { app:'app identifier', group:'group id'} } Associate with a group, which is create if needed or simply located otherwise associate_group -a { app } { group }

Enabling and Disabling Application Services for a specific app on the Apple Developer Portal

Note: Both enableServices and disableServices can be an array of strings, array of objects (with required key of service, optional key of value), or mixed.

Option Example Command Executed
enableServices (array of strings or object with required service key) { enableServices:['app-group', { service:'icloud', value:'legacy'}] } enable_services --app-group --icloud 'legacy'

Specific Application Services that can be disabled for an app on the Apple Developer Portal



    app-group          Enable App Groups
    associated-domains Enable Associated Domains
    healthkit          Enable HealthKit
    homekit            Enable HomeKit
    wireless-conf      Enable Wireless Accessory Configuration
    inter-app-audio    Enable Inter-App-Audio
    passbook           Enable Passbook
    push-notification  Enable Push notification (only enables the service, does not configure certificates)
    vpn-conf           Enable VPN Configuration
    icloud STRING      Enable iCloud, DEFAULTS TO CLOUDKIT but acceptable values are "legacy" or "cloudkit"
    data-protection    Enable Data Protection, DEFAULTS TO COMPLETE but acceptable values are "complete", "unlessopen" and "untilfirstauth"

    if icloud or data-protection is passed as string, it will set defaults. To override default properties,
    pass an object with service and value. { service:'icloud', value: 'legacy'}


Option Example Command Executed
disableServices (array of strings or object with required service key) { disableServices:['app-group', { service:'icloud'}, 'data-protection'] } disable_services --app-group --icloud --data-protection

Specific Application Services that can be disabled for an app on the Apple Developer Portal

    app-group          Disable App Groups
    associated-domains Disable Associated Domains
    data-protection    Disable Data Protection
    healthkit          Disable HealthKit
    homekit            Disable HomeKit
    wireless-conf      Disable Wireless Accessory Configuration
    icloud             Disable iCloud
    inter-app-audio    Disable Inter-App-Audio
    passbook           Disable Passbook
    push-notification  Disable Push notifications
    vpn-conf           Disable VPN Configuration

Runtime Options

Runtime Option Example Description
timeout (number) { timeout:0 } specify when to exit execution in case of error
password (string) {password:''} app store password
path (string) {path:'/'} path of directory where produce executes

install

With npm do:

npm install --save fastlane-produce

testing

npm test

coverage

npm run view-cover

This will output a textual coverage report.

npm run open-cover

This will open an HTML coverage report in the default browser.

Package Sidebar

Install

npm i fastlane-produce

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • gege