deliver •
snapshot •
frameit •
PEM •
sigh •
produce •
cert •
codes
-------
produce
============
[![Twitter: @KauseFx](https://img.shields.io/badge/contact-@KrauseFx-blue.svg?style=flat)](https://twitter.com/KrauseFx)
[![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/KrauseFx/produce/blob/master/LICENSE)
[![Gem](https://img.shields.io/gem/v/produce.svg?style=flat)](http://rubygems.org/gems/produce)
###### Create new iOS apps on iTunes Connect and Dev Portal using your command line
##### This tool was sponsored by [AppInstitute](http://appinstitute.co.uk/).
Get in contact with the developer on Twitter: [@KrauseFx](https://twitter.com/KrauseFx)
-------
Features •
Installation •
Usage •
How does it work? •
Tips •
Need help?
-------
produce
is part of fastlane: connect all deployment tools into one streamlined workflow.
# Features
- **Create** new apps on both iTunes Connect and the Apple Developer Portal
- Support for **multiple Apple accounts**, storing your credentials securely in the Keychain
##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
# Installation
sudo gem install produce
# Usage
produce
# Parameters
Get the latest list of all available parameters;
produce --help
```
-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)
-b, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX)
-a, --app_name STRING App Name (PRODUCE_APP_NAME)
-v, --version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION)
-s, --sku SKU Number (e.g. '1234') (PRODUCE_SKU)
-l, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
-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)
-t, --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
```
## Environment Variables
In case you want to pass more information to `produce` using environment variables:
- `PRODUCE_USERNAME` (your iTunes Connect username)
- `PRODUCE_APP_IDENTIFIER` (the bundle identifier of the new app)
- `PRODUCE_APP_NAME` (the name of the new app)
- `PRODUCE_LANGUAGE` (the language you want your app to use, e.g. `English`, `German`)
- `PRODUCE_VERSION` (the initial app version)
- `PRODUCE_SKU` (the SKU you want to use, which must be a unique number)
- `PRODUCE_SKIP_ITC` (should iTunes Connect app be created)
- `PRODUCE_SKIP_DEVCENTER` (should Apple Developer Portal app be created)
- `PRODUCE_TEAM_ID` (the Team ID, e.g. `Q2CBPK58CA`)
- `PRODUCE_TEAM_NAME` (the Team Name, e.g. `Felix Krause`)
## [`fastlane`](https://github.com/KrauseFx/fastlane) Integration
Your `Fastfile` should look like this
```ruby
lane :appstore do
produce(
username: 'felix@krausefx.com',
app_identifier: 'com.krausefx.app',
app_name: 'MyApp',
language: 'English',
version: '1.0',
sku: 123,
team_name: 'SunApps GmbH' # only necessary when in multiple teams
)
deliver
end
```
To use the newly generated app in `deliver`, you need to add this line to your `Deliverfile`:
```ruby
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](https://github.com/KrauseFx/deliver) to upload your app metadata using a CLI
## How is my password stored?
`produce` uses the [password manager](https://github.com/fastlane/CredentialsManager) from `fastlane`. Take a look the [CredentialsManager README](https://github.com/fastlane/CredentialsManager) for more information.
# Tips
## [`fastlane`](https://fastlane.tools) Toolchain
- [`fastlane`](https://fastlane.tools): Connect all deployment tools into one streamlined workflow
- [`deliver`](https://github.com/KrauseFx/deliver): Upload screenshots, metadata and your app to the App Store using a single command
- [`snapshot`](https://github.com/KrauseFx/snapshot): Automate taking localized screenshots of your iOS app on every device
- [`frameit`](https://github.com/KrauseFx/frameit): Quickly put your screenshots into the right device frames
- [`PEM`](https://github.com/KrauseFx/pem): Automatically generate and renew your push notification profiles
- [`sigh`](https://github.com/KrauseFx/sigh): Because you would rather spend your time building stuff than fighting provisioning
- [`cert`](https://github.com/KrauseFx/cert): Automatically create and maintain iOS code signing certificates
- [`codes`](https://github.com/KrauseFx/codes): Create promo codes for iOS Apps using the command line
##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
# Need help?
- If there is a technical problem with `produce`, submit an issue.
- I'm available for contract work - drop me an email: produce@krausefx.com
# License
This project is licensed under the terms of the MIT license. See the LICENSE file.
# Contributing
1. Create an issue to start a discussion about your idea
2. Fork it (https://github.com/KrauseFx/produce/fork)
3. Create your feature branch (`git checkout -b my-new-feature`)
4. Commit your changes (`git commit -am 'Add some feature'`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create a new Pull Request