Produce iOS apps without open your web browser!

screenshot-2016-06-08-01-13-36

Produce is a part of Fastlane. It is a tool that manages iOS application on iTune Connect and Apple Developer Portal using a command line.

Installation

sudo gem install produce

Create New Application

Normally, we have to create application ID on Developer Portal and create application on iTune Connect. But if we use Produce, we just run following command.

produce create

and fill application information

Your Apple ID Username: <YOUR_APPLE_ID>
App Identifier (Bundle ID, e.g. com.krausefx.app): com.bananacoding.fastlane-produce-tutorial
App Name: Fastlane Produce Tutorial

That’is it!

Creating new app 'Fastlane Produce Tutorial' on the Apple Dev Center
Created app 967E6P46BL
Finished creating new app 'Fastlane Produce Tutorial' on the Dev Center
Creating new app 'Fastlane Produce Tutorial' on iTunes Connect
Successfully created new app 'Fastlane Produce Tutorial' on iTunes Connect with ID 1121706768

or you can run it with single line using global options

produce create -u jirapong.nanta@gmail.com -a com.bananacoding.fastlane-produce-tutorial -q Fastlane Produce Tutorial

Here the lists of Global Options:

    -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME)
    -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER)
    -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX)
    -q, --app_name STRING App Name (PRODUCE_APP_NAME)
    -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION)
    -y, --sku STRING     SKU Number (e.g. '1234') (PRODUCE_SKU)
    -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
    -c, --company_name STRING The name of your company. Only required if it's the first app you create (PRODUCE_COMPANY_NAME)
    -i, --skip_itc       Skip the creation of the app on iTunes Connect (PRODUCE_SKIP_ITC)
    -d, --skip_devcenter  Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
    -b, --team_id STRING The ID of your team if you're in multiple teams (PRODUCE_TEAM_ID)
    -l, --team_name STRING The name of your team if you're in multiple teams (PRODUCE_TEAM_NAME)
    -h, --help           Display help documentation
    -v, --version        Display version information

Check it on Developer Portal > App IDs.

Screenshot 2016-06-07 23.25.55

Check it on iTune Connect > Apps.

Screenshot 2016-06-07 23.23.56

Produce created application on the Both iTune Connect and Developer Portal for us. It’s cool! right?

 

Enable/Disable Application Services

Produce can enable/disable application services on Developer Portal, by run following command.

produce enable_services <service_names>
produce disable_services <service_names>

Here the lists of service name

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

Let’s try to enable health kit.

produce enable_services --healthkit

Check it on Developer Portal, look at that, it’s enabled!

 

App Group

App Group is AppExtension to allow application in the same bundle can communicate and share data.

Create new App Group

produce group -g group.bananacoding.share -n "App Group Name"

then add an application to App Group.

produce associate_group -a com.bananacoding.fastlane-produce-tutorial group.bananacoding.share

You can check it on Developer Portal that the App Group service is enabled and associate with App Group when we just created.

 

Summary

Produce can save your time to create new iOS Application, manage application server and App Group by Run single line command.

 

Reference

https://github.com/fastlane/fastlane/tree/master/produce