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.
Check it on iTune Connect > Apps.
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