-
Notifications
You must be signed in to change notification settings - Fork 34
/
step.yml
259 lines (239 loc) · 12.3 KB
/
step.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
title: Deploy to App Store Connect with Deliver (formerly iTunes Connect)
summary: Upload screenshots, metadata and binaries to [App Store Connect (iTunes Connect)](https://appstoreconnect.apple.com/) and submit your app for App Store review.
description: |-
Upload screenshots, metadata and binaries to [App Store Connect (iTunes Connect)](https://appstoreconnect.apple.com/) and submit your app for App Store review,
using the fantastic [deliver](https://docs.fastlane.tools/actions/deliver/) fastlane action. You can upload iOS, macOS, or Apple TV apps with the Step.
This Step, however, does NOT build your binary: to create an IPA or PKG file, you need the right version of the **Xcode Archive** Step, or any other Step that is capable of building a binary file.
### Configuring the Step
Before you start using this Step, you need to do a couple of things:
* Register an app on the **My Apps** page of App Store Connect. Click on the *plus sign* and select the **New App** option. This requires an **admin** account.
* This Step requires an app signed with App Store Distibution provisioning profile. Make sure that you use the correct code signing files and the correct export method with the Step that builds your binary.
* Every build that you want to push to App Store Connect must have a unique build and version number pair. Increment either or both before a new deploy to App Store Connect.
To deploy your app with the Step:
1. Make sure that either the **IPA path** or the **PKG path** input has a valid value. The default value is perfect for most cases: it points to the output generated by the **Xcode Archive** Step.
1. Set up your connection depending on which authentication method you wish to use:
- Use a previously set up Bitrise Apple Developer connection, set the **Bitrise Apple Developer Connection** to `automatic` (this is the default setting), `api_key` or `apple_id`.
- Provide manual Step inputs: either with Apple ID or with the App Store Connet API key. Set the **Bitrise Apple Developer Connection** to `off`. Use only one of the authentication methods.
* For API key: provide your **API Key: URL** (for example, https://URL/TO/AuthKey_something.p8 or file:///PATH/TO/AuthKey_something.p8) and the **API Key: Issuer ID** inputs.
* For Apple ID: *Apple IDs with 2FA are not supported.* Fill out the **Apple ID: Email** and the **Apple ID: Password** inputs.
1. To identify the app, set either the **App Store Connect App ID** or the **App Bundle ID**. Note that while neither is marked as **Required**, one of the two MUST have a valid value.
1. If you want to immediately submit your app for an App Store review, set the **Submit for Review?** input to `yes`. Please note that if you do submit the app for review, the Step will be successful only if the submission is accepted by App Store Connect.
### Troubleshooting
Make sure your Apple ID credentials are correct. Be aware that if you use two-factor authentication, you need to [set up](https://devcenter.bitrise.io/getting-started/configuring-bitrise-steps-that-require-apple-developer-account-data/#setting-up-connection-with-the-apple-id-and-password) a connection with Apple ID.
Always make sure that **Platform** input is set to the correct value.
The Step can also fail if the **Xcode Archive** Step - or any other Step that builds your binary - did not generate an IPA or PKG with a `app-store` export method.
### Useful links
- [Deploying an app to App Store Connect](https://devcenter.bitrise.io/deploy/ios-deploy/deploying-an-ios-app-to-itunes-connect/)
- [iOS deployment](https://devcenter.bitrise.io/deploy/ios-deploy/ios-deploy-index/)
### Related Steps
- [Deploy to Google Play](https://www.bitrise.io/integrations/steps/google-play-deploy)
- [Xcode Archive & Export for iOS](https://www.bitrise.io/integrations/steps/xcode-archive)
- [Appetize.io deploy](https://www.bitrise.io/integrations/steps/appetize-deploy)
website: https://github.com/bitrise-steplib/steps-deploy-to-itunesconnect-deliver
source_code_url: https://github.com/bitrise-steplib/steps-deploy-to-itunesconnect-deliver
support_url: https://github.com/bitrise-steplib/steps-deploy-to-itunesconnect-deliver/issues
host_os_tags:
- osx-10.10
project_type_tags:
- ios
- macos
- xamarin
- cordova
- ionic
- react-native
- flutter
type_tags:
- deploy
is_requires_admin_user: false
is_always_run: false
is_skippable: false
toolkit:
go:
package_name: github.com/bitrise-steplib/steps-deploy-to-itunesconnect-deliver
inputs:
- connection: automatic
opts:
title: Bitrise Apple Developer Connection
summary: The Apple Service authentication method the Step uses. By default, any enabled Bitrise Apple Developer connection is used and other authentication-related Step inputs are ignored.
description: |-
The input determines the method used for Apple Service authentication. By default, any enabled Bitrise Apple Developer connection is used and other authentication-related Step inputs are ignored.
There are two types of Apple Developer connection you can enable on Bitrise: one is based on an API key of the App Store Connect API, the other is the legacy method of session-based authentication with an Apple ID. You can choose which type of Bitrise Apple Developer connection to use or you can tell the Step to only use the Step inputs for authentication:
- `automatic`: Use any enabled Apple Developer connection, either based on Apple ID authentication or API key authentication. Step inputs are only used as a fallback. API key authentication has priority over Apple ID authentication in both cases.
- `api_key`: Use the Apple Developer connection based on API key authentication. Authentication-related Step inputs are ignored.
- `apple_id`: Use the Apple Developer connection based on Apple ID authentication. If no app-specific password has been added to the used connection, the **Apple ID: App-specific password** Step input will be used. Other authentication-related Step inputs are ignored.
- `off`: Do not use any already configured Apple Developer Connection. Only authentication-related Step inputs are considered.
is_required: true
value_options:
- automatic
- api_key
- apple_id
- "off"
- api_key_path: ""
opts:
title: "API Key: URL"
summary: Path to local or remote file
description: |-
Specify the path in an URL format where your API key is stored.
For example: `https://URL/TO/AuthKey_[KEY_ID].p8` or `file:///PATH/TO/AuthKey_[KEY_ID].p8`.
**NOTE:** The Step will only recognize the API key if the filename includes the `KEY_ID` value as shown on the examples above.
You can upload your key on the **Generic File Storage** tab in the Workflow Editor and set the Environment Variable for the file here.
For example: `$BITRISEIO_MYKEY_URL`
- api_issuer: ""
opts:
title: "API Key: Issuer ID"
description: |-
Issuer ID. Required if **API Key: URL** (`api_key_path`) is specified.
- itunescon_user: ""
opts:
title: "Apple ID: Email"
summary: Email for Apple ID login.
description: Email for Apple ID login.
is_sensitive: true
- password: ""
opts:
title: "Apple ID: Password"
description: Password for the specified Apple ID.
is_sensitive: true
- app_password: ""
opts:
title: "Apple ID: Application-specific password"
summary: Optional if using Apple ID
description: |-
Use this input if TFA is enabled on the Apple ID but no app-specific password has been added to the used Bitrise Apple ID connection.
**NOTE:** Application-specific passwords can be created on the
[AppleID Website](https://appleid.apple.com). It can be used to
bypass two-factor authentication.
is_sensitive: true
- team_id: ""
opts:
title: "Apple ID: Team ID"
description: |-
The app's *Team ID* on App Store Connect.
**NOTE:** This field or the **Apple ID: Team name** is required when authenticating using Apple ID and the account
is linked to multiple publishing teams.
For example: `2040826`
- team_name: ""
opts:
title: "Apple ID: Team name"
description: |-
The app's *Team Name* on App Store Connect.
**NOTE:** This field or the **Apple ID: Team ID** is required when authenticating using Apple ID and the account
is linked to multiple publishing teams.
- ipa_path: $BITRISE_IPA_PATH
opts:
title: IPA path
description: |-
Path to your IPA file to be deployed.
**NOTE:** This input or the **PKG path** is required.
- pkg_path: $BITRISE_PKG_PATH
opts:
title: PKG path
description: |-
Path to your PKG file to be deployed.
**NOTE:** This input or the **IPA path** is required.
- platform: ios
opts:
title: Platform
description: The platform of the app.
is_required: true
value_options:
- ios
- osx
- appletvos
- app_id: ""
opts:
title: App Store Connect App ID
summary: App Store Connect App ID (Apple ID)
description: |-
The app's *Apple ID* on App Store Connect.
**NOTE:** This input or the **App Bundle ID** is required.
Open the **app's page on App Store Connect**, click on **App Information**,
from the **General Information** section,
copy the **Apple ID**'s value from here. It's a numeric value, for example, 846814360.
- bundle_id: ""
opts:
title: App Bundle ID
description: |-
The app's *Bundle ID* on App Store Connect.
**NOTE:** This input or the **App Store Connect App ID** is required.
- submit_for_review: "no"
opts:
title: Submit for Review?
description: |
Wait for the submission to be processed and then
submit the app for review for this specific version?
If this option is set to `no`, the Step won't wait
for the new version to be processed on App Store Connect
and won't submit it for review automatically.
If this input is set to `yes`, the Step will wait for the submission to be
processed which might take a couple of minutes after the
new version is deployed to App Store Connect. Note that in this case the Step will only be successful if the submission is accepted by App Store Connect!
value_options:
- "yes"
- "no"
is_required: true
- skip_metadata: "yes"
opts:
title: Skip metadata?
description: Don't upload the metadata. This will still upload screenshots.
value_options:
- "yes"
- "no"
is_required: true
- skip_screenshots: "yes"
opts:
title: Skip screenshots?
description: Don't upload the screenshots.
value_options:
- "yes"
- "no"
is_required: true
- skip_app_version_update: "no"
opts:
title: Skip app Version update?
description: Don't update the app version for submission.
value_options:
- "yes"
- "no"
is_required: true
- gemfile_path: ./Gemfile
opts:
category: Debug
title: Gemfile path
description: |
Path to the `Gemfile` which contains the `fastlane` gem.
If a `Gemfile` doesn't exist or doesn't contain the `fastlane` gem and
if the **fastlane version** input isn't specified, the latest fastlane version will be used.
- fastlane_version: latest-stable
opts:
category: Debug
title: fastlane version
description: |-
This option lets you specify a version of the **fastlane** gem to be installed.
- `latest-stable` installs the latest stable version.
- `latest` installs the latest version of fastlane including pre-release (release candidate) versions.
- options:
opts:
category: Debug
title: Additional options for `deliver` call
description: |-
Options added to the end of the `deliver` call.
If you want to add more options, list those separated by space character.
Example: `--skip_metadata --skip_screenshots`
- itms_upload_parameters: ""
opts:
category: Debug
title: Transporter delivery method
description: |-
`deliver` uses the iTunes Transporter to upload metadata and binaries.
If you are behind a firewall, you can specify a different transporter protocol using this input.
Read more on Apple [Transporter User Guide](https://help.apple.com/itc/transporteruserguide/#/apdATD1E1288-D1E1A1303-D1E1288A1126).
- verbose_log: "no"
opts:
category: Debug
title: Enable verbose logging?
description: Enable verbose logging?
is_required: true
value_options:
- "yes"
- "no"