deliver • snapshot • frameit • pem • sigh • produce • cert • spaceship • pilot • boarding • gym • scan • match • precheck
produce
creates new iOS apps on both the Apple Developer Portal and iTunes Connect with the minimum required information.
Get in contact with the developers on Twitter: @FastlaneTools
Features • Installation • Usage • How does it work? • Tips • Need help?
produce
is part of fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps.
- Create new apps on both iTunes Connect and the Apple Developer Portal
- Modify Application Services on the Apple Developer Portal
- Create App Groups on the Apple Developer Portal
- Associate apps with App Groups on the Apple Developer Portal
- Support for multiple Apple accounts, storing your credentials securely in the Keychain
sudo gem install fastlane
fastlane produce
To get a list of all available parameters:
fastlane produce --help
Commands: (* default)
associate_group Associate with a group, which is created if needed or simply located otherwise
create * Creates a new app on iTunes Connect and the Apple Developer Portal
disable_services Disable specific Application Services for a specific app on the Apple Developer Portal
enable_services Enable specific Application Services for a specific app on the Apple Developer Portal
group Ensure that a specific App Group exists
help Display global or [command] help documentation
Global Options:
--verbose
-h, --help Display help documentation
-v, --version Display version information
Options for create:
-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)
-j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM)
-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 [VALUE] Skip the creation of the app on iTunes Connect (PRODUCE_SKIP_ITC)
-d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
-b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID)
-l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME)
-k, --itc_team_id [VALUE] The ID of your iTunes Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID)
-p, --itc_team_name STRING The name of your iTunes Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)
If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example):
fastlane produce enable_services --homekit --healthkit
If you want to disable Application Services for an App ID (iCloud in this case):
fastlane produce disable_services --icloud
If you want to create a new App Group:
fastlane produce group -g group.krausefx -n "Example App Group"
If you want to associate an app with an App Group:
fastlane produce associate_group -a com.krausefx.app group.krausefx
Get a list of all available options using
fastlane produce enable_services --help
--app-group Enable App Groups
--apple-pay Enable Apple Pay
--associated-domains Enable Associated Domains
--data-protection STRING Enable Data Protection, suitable values are "complete", "unlessopen" and "untilfirstauth"
--game-center Enable Game Center
--healthkit Enable HealthKit
--homekit Enable HomeKit
--wireless-conf Enable Wireless Accessory Configuration
--icloud STRING Enable iCloud, suitable values are "legacy" and "cloudkit"
--in-app-purchase Enable In-App Purchase
--inter-app-audio Enable Inter-App-Audio
--passbook Enable Passbook
--push-notification Enable Push notification (only enables the service, does not configure certificates)
--sirikit Enable SiriKit
--vpn-conf Enable VPN Configuration
fastlane produce disable_services --help
--app-group Disable App Groups
--apple-pay Disable Apple Pay
--associated-domains Disable Associated Domains
--data-protection Disable Data Protection
--game-center Disable Game Center
--healthkit Disable HealthKit
--homekit Disable HomeKit
--wireless-conf Disable Wireless Accessory Configuration
--icloud Disable iCloud
--in-app-purchase Disable In-App Purchase
--inter-app-audio Disable Inter-App-Audio
--passbook Disable Passbook
--push-notification Disable Push notifications
--sirikit Disable SiriKit
--vpn-conf Disable VPN Configuration
All available values can also be passed using environment variables, run fastlane produce --help
to get a list of all available parameters.
fastlane
Integration
Your Fastfile
should look like this
lane :release do
produce(
username: '[email protected]',
app_identifier: 'com.krausefx.app',
app_name: 'MyApp',
language: 'English',
app_version: '1.0',
sku: '123',
team_name: 'SunApps GmbH' # only necessary when in multiple teams
# Optional
# App services can be enabled during app creation
enable_services: {
app_group: "on" # Valid values: "on", "off"
apple_pay: "on" # Valid values: "on", "off"
associated_domains: "on" # Valid values: "on", "off"
data_protection: "complete" # Valid values: "complete", "unlessopen", "untilfirstauth"
game_center: "on" # Valid values: "on", "off"
health_kit: "on" # Valid values: "on", "off"
home_kit: "on" # Valid values: "on", "off"
wireless_accessory: "on" # Valid values: "on", "off"
icloud: "cloudkit" # Valid values: "legacy", "cloudkit"
in_app_purchase: "on" # Valid values: "on", "off"
inter_app_audio: "on" # Valid values: "on", "off"
passbook: "on" # Valid values: "on", "off"
push_notification: "on" # Valid values: "on", "off"
siri_kit: "on" # Valid values: "on", "off"
vpn_configuration: "on" # Valid values: "on", "off"
}
)
deliver
end
To use the newly generated app in deliver
, you need to add this line to your Deliverfile
:
apple_id ENV['PRODUCE_APPLE_ID']
This will tell deliver
, which App ID
to use, since the app is not yet available in the App Store.
You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI
produce
uses the password manager from fastlane
. Take a look the CredentialsManager README for more information.
fastlane
Toolchain
fastlane
: The easiest way to automate beta deployments and releases for your iOS and Android appsdeliver
: Upload screenshots, metadata and your app to the App Storesnapshot
: Automate taking localized screenshots of your iOS app on every deviceframeit
: Quickly put your screenshots into the right device framespem
: Automatically generate and renew your push notification profilessigh
: Because you would rather spend your time building stuff than fighting provisioningcert
: Automatically create and maintain iOS code signing certificatesspaceship
: Ruby library to access the Apple Dev Center and iTunes Connectpilot
: The best way to manage your TestFlight testers and builds from your terminalboarding
: The easiest way to invite your TestFlight beta testersgym
: Building your iOS apps has never been easierscan
: The easiest way to run tests of your iOS and Mac appmatch
: Easily sync your certificates and profiles across your team using gitprecheck
: Check your app using a community driven set of App Store review rules to avoid being rejected
Please submit an issue on GitHub and provide information about your setup
Help us keep produce
open and inclusive. Please read and follow our Code of Conduct.
This project is licensed under the terms of the MIT license. See the LICENSE file.
This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.