fastlane 2.61.0.beta.20171006010004 → 2.61.0.beta.20171007010004

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -161
  3. data/cert/README.md +7 -166
  4. data/deliver/README.md +7 -287
  5. data/deliver/lib/deliver/runner.rb +1 -1
  6. data/fastlane/README.md +7 -209
  7. data/fastlane/lib/fastlane/actions/cocoapods.rb +27 -8
  8. data/fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif +0 -0
  9. data/fastlane/lib/fastlane/actions/docs/assets/MacExample.png +0 -0
  10. data/fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif +0 -0
  11. data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparent.png +0 -0
  12. data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparentSmall.png +0 -0
  13. data/fastlane/lib/fastlane/actions/docs/assets/PilotTextWhite.png +0 -0
  14. data/fastlane/lib/fastlane/actions/docs/assets/PilotTransparent.png +0 -0
  15. data/fastlane/lib/fastlane/actions/docs/assets/QuickLookScreenshot.png +0 -0
  16. data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsBig.png +0 -0
  17. data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsOverview.png +0 -0
  18. data/fastlane/lib/fastlane/actions/docs/assets/SignErrors.png +0 -0
  19. data/fastlane/lib/fastlane/actions/docs/assets/UDIDPrint.png +0 -0
  20. data/fastlane/lib/fastlane/actions/docs/assets/frameit.png +0 -0
  21. data/fastlane/lib/fastlane/actions/docs/assets/github_repo.png +0 -0
  22. data/fastlane/lib/fastlane/actions/docs/assets/htmlPage.png +0 -0
  23. data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreview.jpg +0 -0
  24. data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreviewFade.jpg +0 -0
  25. data/fastlane/lib/fastlane/actions/docs/assets/match.png +0 -0
  26. data/fastlane/lib/fastlane/actions/docs/assets/match_appstore_small.gif +0 -0
  27. data/fastlane/lib/fastlane/actions/docs/assets/match_init.gif +0 -0
  28. data/fastlane/lib/fastlane/actions/docs/assets/match_nuke.gif +0 -0
  29. data/fastlane/lib/fastlane/actions/docs/assets/pem.png +0 -0
  30. data/fastlane/lib/fastlane/actions/docs/assets/pilot.ai +5377 -16
  31. data/fastlane/lib/fastlane/actions/docs/assets/precheck.gif +0 -0
  32. data/fastlane/lib/fastlane/actions/docs/assets/precheck.png +0 -0
  33. data/fastlane/lib/fastlane/actions/docs/assets/produce.png +0 -0
  34. data/fastlane/lib/fastlane/actions/docs/assets/running-screengrab.gif +0 -0
  35. data/fastlane/lib/fastlane/actions/docs/assets/scan.png +0 -0
  36. data/fastlane/lib/fastlane/actions/docs/assets/scanHTML.png +0 -0
  37. data/fastlane/lib/fastlane/actions/docs/assets/scanHTMLFailing.png +0 -0
  38. data/fastlane/lib/fastlane/actions/docs/assets/scanScreenshot.png +0 -0
  39. data/fastlane/lib/fastlane/actions/docs/assets/screengrab.png +0 -0
  40. data/fastlane/lib/fastlane/actions/docs/assets/sigh.png +0 -0
  41. data/fastlane/lib/fastlane/actions/docs/assets/sighRecording.gif +0 -0
  42. data/fastlane/lib/fastlane/actions/docs/assets/slack.png +0 -0
  43. data/fastlane/lib/fastlane/actions/docs/assets/snapshot.gif +0 -0
  44. data/fastlane/lib/fastlane/actions/docs/assets/snapshot.png +0 -0
  45. data/fastlane/lib/fastlane/actions/docs/assets/supply.png +0 -0
  46. data/fastlane/lib/fastlane/actions/docs/assets/testSummary.png +0 -0
  47. data/fastlane/lib/fastlane/actions/docs/cert.md +2 -4
  48. data/fastlane/lib/fastlane/actions/docs/deliver.md +1 -3
  49. data/fastlane/lib/fastlane/actions/docs/frameit.md +215 -0
  50. data/fastlane/lib/fastlane/actions/docs/gym.md +17 -17
  51. data/fastlane/lib/fastlane/actions/docs/match.md +352 -0
  52. data/fastlane/lib/fastlane/actions/docs/pem.md +120 -0
  53. data/fastlane/lib/fastlane/actions/docs/pilot.md +218 -0
  54. data/fastlane/lib/fastlane/actions/docs/precheck.md +97 -0
  55. data/fastlane/lib/fastlane/actions/docs/produce.md +227 -0
  56. data/fastlane/lib/fastlane/actions/docs/scan.md +145 -0
  57. data/fastlane/lib/fastlane/actions/docs/screengrab.md +145 -0
  58. data/fastlane/lib/fastlane/actions/docs/sigh.md +187 -0
  59. data/fastlane/lib/fastlane/actions/docs/snapshot.md +333 -0
  60. data/fastlane/lib/fastlane/actions/docs/supply.md +144 -0
  61. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +5 -0
  62. data/fastlane/lib/fastlane/setup/setup_ios.rb +2 -0
  63. data/fastlane/lib/fastlane/version.rb +1 -1
  64. data/frameit/README.md +7 -290
  65. data/gym/README.md +7 -300
  66. data/match/README.md +7 -420
  67. data/match/lib/match/generator.rb +1 -0
  68. data/match/lib/match/git_helper.rb +31 -12
  69. data/match/lib/match/runner.rb +11 -6
  70. data/pem/README.md +7 -188
  71. data/pilot/README.md +7 -285
  72. data/pilot/lib/pilot/build_manager.rb +13 -10
  73. data/precheck/README.md +7 -171
  74. data/produce/README.md +7 -294
  75. data/scan/README.md +7 -219
  76. data/screengrab/README.md +7 -192
  77. data/sigh/README.md +7 -262
  78. data/snapshot/README.md +7 -408
  79. data/snapshot/lib/snapshot/reset_simulators.rb +4 -2
  80. data/spaceship/lib/spaceship/test_flight/build.rb +1 -1
  81. data/supply/README.md +7 -219
  82. metadata +52 -2
@@ -0,0 +1,120 @@
1
+ <p align="center">
2
+ <img src="/img/actions/pem.png" height="110">
3
+ </p>
4
+
5
+ ###### Automatically generate and renew your push notification profiles
6
+
7
+ Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a _pem_ file for your server?
8
+
9
+ _pem_ does all that for you, just by simply running _pem_.
10
+
11
+ _pem_ creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. _pem_ does not cover uploading the file to your server.
12
+
13
+ To automate iOS Provisioning profiles you can use [match](https://github.com/fastlane/fastlane/tree/master/match).
14
+
15
+ -------
16
+
17
+ <p align="center">
18
+ <a href="#features">Features</a> &bull;
19
+ <a href="#usage">Usage</a> &bull;
20
+ <a href="#how-does-it-work">How does it work?</a> &bull;
21
+ <a href="#tips">Tips</a> &bull;
22
+ <a href="#need-help">Need help?</a>
23
+ </p>
24
+
25
+ -------
26
+
27
+ <h5 align="center"><code>pem</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
28
+
29
+ # Features
30
+ Well, it's actually just one: Generate the ``_pem_`` file for your server.
31
+
32
+ Check out this gif:
33
+
34
+ ![img/actions/PEMRecording.gif](assets/PEMRecording.gif)
35
+
36
+ # Usage
37
+
38
+ fastlane pem
39
+
40
+ Yes, that's the whole command!
41
+
42
+ This does the following:
43
+
44
+ - Create a new signing request
45
+ - Create a new push certification
46
+ - Downloads the certificate
47
+ - Generates a new ```.pem``` file in the current working directory, which you can upload to your server
48
+
49
+ Note that ``_pem_`` will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
50
+
51
+ If you already have a push certificate enabled, which is active for at least 30 more days, _pem_ will not create a new certificate. If you still want to create one, use the `force`:
52
+
53
+ fastlane pem --force
54
+
55
+ You can pass parameters like this:
56
+
57
+ fastlane pem -a com.krausefx.app -u username
58
+
59
+ If you want to generate a development certificate instead:
60
+
61
+ fastlane pem --development
62
+
63
+ Set a password for your `p12` file:
64
+
65
+ fastlane pem -p "MyPass"
66
+
67
+ You can specify a name for the output file:
68
+
69
+ fastlane pem -o my.pem
70
+
71
+ To get a list of available options run:
72
+
73
+ fastlane action pem
74
+
75
+
76
+ ### Note about empty `p12` passwords and Keychain Access.app
77
+
78
+ _pem_ will produce a valid `p12` without specifying a password, or using the empty-string as the password.
79
+ While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase.
80
+
81
+ Instead, you may verify the file is valid using OpenSSL:
82
+
83
+ openssl pkcs12 -info -in my.p12
84
+
85
+ If you need the `p12` in your keychain, perhaps to test push with an app like [Knuff](https://github.com/KnuffApp/Knuff) or [Pusher](https://github.com/noodlewerk/NWPusher), you can use `openssl` to export the `p12` to _pem_ and back to `p12`:
86
+
87
+ % openssl pkcs12 -in my.p12 -out my.pem
88
+ Enter Import Password:
89
+ <hit enter: the p12 has no password>
90
+ MAC verified OK
91
+ Enter PEM pass phrase:
92
+ <enter a temporary password to encrypt the pem file>
93
+
94
+ % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
95
+ Enter pass phrase for temp.pem:
96
+ <enter the temporary password to decrypt the pem file>
97
+
98
+ Enter Export Password:
99
+ <enter a password for encrypting the new p12 file>
100
+
101
+ ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
102
+
103
+ ## Environment Variables
104
+
105
+ Run `fastlane action pem` to get a list of available environment variables.
106
+
107
+ # How does it work?
108
+
109
+ _pem_ uses [spaceship](https://spaceship.airforce) to communicate with the Apple Developer Portal to request a new push certificate for you.
110
+
111
+ ## How is my password stored?
112
+ ``_pem_`` uses the [password manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_. Take a look the [CredentialsManager README](https://github.com/fastlane/fastlane/tree/master/credentials_manager) for more information.
113
+
114
+ # Tips
115
+
116
+ ## Use the 'Provisioning Quicklook plugin'
117
+ Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning).
118
+
119
+ It will show you the ``_pem_`` files like this:
120
+ ![img/actions/QuickLookScreenshot.png](assets/QuickLookScreenshot.png)
@@ -0,0 +1,218 @@
1
+ <p align="center">
2
+ <img src="/img/actions/PilotTextTransparentSmall.png" width="500">
3
+ </p>
4
+
5
+ ###### The best way to manage your TestFlight testers and builds from your terminal
6
+
7
+ Pilot makes it easier to manage your app on Apple’s TestFlight. You can:
8
+
9
+ - Upload & distribute builds
10
+ - Add & remove testers
11
+ - Retrieve information about testers & devices
12
+ - Import/export all available testers
13
+
14
+ _pilot_ uses [spaceship.airforce](https://spaceship.airforce) to interact with iTunes Connect 🚀
15
+
16
+ -------
17
+
18
+ <p align="center">
19
+ <a href="#usage">Usage</a> &bull;
20
+ <a href="#tips">Tips</a>
21
+ </p>
22
+
23
+ -------
24
+
25
+ <h5 align="center"><code>pilot</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
26
+
27
+ # Usage
28
+
29
+ For all commands you can specify the Apple ID to use using `-u felix@krausefx.com`. If you execute _pilot_ in a project already using [fastlane](https://fastlane.tools) the username and app identifier will automatically be determined.
30
+
31
+ ## Uploading builds
32
+
33
+ To upload a new build, just run
34
+
35
+ ```no-highlight
36
+ fastlane pilot upload
37
+ ```
38
+
39
+ This will automatically look for an `ipa` in your current directory and tries to fetch the login credentials from your [fastlane setup](https://fastlane.tools).
40
+
41
+ You'll be asked for any missing information. Additionally, you can pass all kinds of parameters:
42
+
43
+ ```no-highlight
44
+ fastlane action pilot
45
+ ```
46
+
47
+ You can pass a changelog using
48
+
49
+ ```no-highlight
50
+ fastlane pilot upload --changelog "Something that is new here"
51
+ ```
52
+
53
+ You can also skip the submission of the binary, which means, the `ipa` file will only be uploaded and not distributed to testers:
54
+
55
+ ```no-highlight
56
+ fastlane pilot upload --skip_submission
57
+ ```
58
+
59
+ _pilot_ does all kinds of magic for you:
60
+
61
+ - Automatically detects the bundle identifier from your `ipa` file
62
+ - Automatically fetch the AppID of your app based on the bundle identifier
63
+
64
+ _pilot_ uses [spaceship](https://spaceship.airforce) to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, `pilot upload` does not work on Linux, as described [in this issue](https://github.com/fastlane/fastlane/issues/5789)
65
+
66
+ ## List builds
67
+
68
+ To list all builds for specific application use
69
+
70
+ ```no-highlight
71
+ fastlane pilot builds
72
+ ```
73
+
74
+ The result lists all active builds and processing builds:
75
+
76
+ ```no-highlight
77
+ +-----------+---------+----------+----------+----------+
78
+ | Great App Builds |
79
+ +-----------+---------+----------+----------+----------+
80
+ | Version # | Build # | Testing | Installs | Sessions |
81
+ +-----------+---------+----------+----------+----------+
82
+ | 0.9.13 | 1 | Expired | 1 | 0 |
83
+ | 0.9.13 | 2 | Expired | 0 | 0 |
84
+ | 0.9.20 | 3 | Expired | 0 | 0 |
85
+ | 0.9.20 | 4 | Internal | 5 | 3 |
86
+ +-----------+---------+----------+----------+----------+
87
+ ```
88
+
89
+ ## Managing beta testers
90
+
91
+ ### List of Testers
92
+
93
+ This command will list all your testers, both internal and external.
94
+
95
+ ```no-highlight
96
+ fastlane pilot list
97
+ ```
98
+
99
+ The output will look like this:
100
+
101
+ ```no-highlight
102
+ +--------+--------+--------------------------+-----------+
103
+ | Internal Testers |
104
+ +--------+--------+--------------------------+-----------+
105
+ | First | Last | Email | # Devices |
106
+ +--------+--------+--------------------------+-----------+
107
+ | Felix | Krause | felix@krausefx.com | 2 |
108
+ +--------+--------+--------------------------+-----------+
109
+
110
+ +-----------+---------+----------------------------+-----------+
111
+ | External Testers |
112
+ +-----------+---------+----------------------------+-----------+
113
+ | First | Last | Email | # Devices |
114
+ +-----------+---------+----------------------------+-----------+
115
+ | Max | Manfred | email@email.com | 0 |
116
+ | Detlef | Müller | detlef@krausefx.com | 1 |
117
+ +-----------+---------+----------------------------+-----------+
118
+ ```
119
+
120
+ ### Add a new tester
121
+
122
+ To add a new tester to both your iTunes Connect account and to your app (if given), use the `pilot add` command. This will create a new tester (if necessary) or add an existing tester to the app to test.
123
+
124
+ ```no-highlight
125
+ fastlane pilot add email@invite.com
126
+ ```
127
+
128
+ Additionally you can specify the app identifier (if necessary):
129
+
130
+ ```no-highlight
131
+ fastlane pilot add email@email.com -a com.krausefx.app
132
+ ```
133
+
134
+ ### Find a tester
135
+
136
+ To find a specific tester use
137
+
138
+ ```no-highlight
139
+ fastlane pilot find felix@krausefx.com
140
+ ```
141
+
142
+ The resulting output will look like this:
143
+
144
+ ```no-highlight
145
+ +---------------------+---------------------+
146
+ | felix@krausefx.com |
147
+ +---------------------+---------------------+
148
+ | First name | Felix |
149
+ | Last name | Krause |
150
+ | Email | felix@krausefx.com |
151
+ | Latest Version | 0.9.14 (23 |
152
+ | Latest Install Date | 03/28/15 19:00 |
153
+ | 2 Devices | • iPhone 6, iOS 8.3 |
154
+ | | • iPhone 5, iOS 7.0 |
155
+ +---------------------+---------------------+
156
+ ```
157
+
158
+ ### Remove a tester
159
+
160
+ This command will only remove external beta testers.
161
+
162
+ ```no-highlight
163
+ fastlane pilot remove felix@krausefx.com
164
+ ```
165
+
166
+ ### Export testers
167
+
168
+ To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account.
169
+
170
+ ```no-highlight
171
+ fastlane pilot export
172
+ ```
173
+
174
+ ### Import testers
175
+
176
+ Add external testers from a CSV file. Sample CSV file available [here](https://itunesconnect.apple.com/itc/docs/tester_import.csv).
177
+
178
+ ```no-highlight
179
+ fastlane pilot import
180
+ ```
181
+
182
+ You can also specify the directory using
183
+
184
+ ```no-highlight
185
+ fastlane pilot export -c ~/Desktop/testers.csv
186
+ fastlane pilot import -c ~/Desktop/testers.csv
187
+ ```
188
+
189
+ # Tips
190
+
191
+ ## Debug information
192
+
193
+ If you run into any issues you can use the `verbose` mode to get a more detailed output:
194
+
195
+ fastlane pilot upload --verbose
196
+
197
+ ## Firewall Issues
198
+
199
+ _pilot_ uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using
200
+
201
+ ```no-highlight
202
+ DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" pilot ...
203
+ ```
204
+
205
+ If you are using _pilot_ via the [fastlane action](https://docs.fastlane.tools/actions#pilot), add the following to your `Fastfile`
206
+
207
+ ```no-highlight
208
+ ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
209
+ pilot...
210
+ ```
211
+
212
+ ## Credentials Issues
213
+
214
+ If your password contains special characters, _pilot_ may throw a confusing error saying your "Your Apple ID or password was entered incorrectly". The easiest way to fix this error is to change your password to something that **does not** contains special characters.
215
+
216
+ ## How is my password stored?
217
+
218
+ _pilot_ uses the [CredentialsManager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_.
@@ -0,0 +1,97 @@
1
+ <p align="center">
2
+ <img src="/img/actions/precheck.png" height="110">
3
+ </p>
4
+
5
+ Precheck
6
+ ============
7
+
8
+ ###### Check your app using a community driven set of App Store review rules to avoid being rejected
9
+
10
+ Apple rejects builds for many avoidable metadata issues like including swear words 😮, other companies’ trademarks, or even mentioning an iOS bug 🐛. _fastlane precheck_ takes a lot of the guess work out by scanning your app’s details in iTunes Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster 🚀
11
+
12
+ -------
13
+
14
+ <p align="center">
15
+ <a href="#features">Features</a> &bull;
16
+ <a href="#usage">Usage</a> &bull;
17
+ <a href="#example">Example</a> &bull;
18
+ <a href="#how-does-it-work">How does it work?</a>
19
+ </p>
20
+
21
+ -------
22
+
23
+ # Features
24
+
25
+
26
+ | | precheck Features |
27
+ |----------|-----------------|
28
+ |🐛|  product bug mentions|
29
+ |🙅‍♂️|Swear word checker|
30
+ |🤖|Mentioning other platforms|
31
+ |😵|URL reachability checker|
32
+ |📝|Placeholder/test words/mentioning future features|
33
+ |📅|Copyright date checking|
34
+ |🙈|Customizable word list checking|
35
+ |📢|You can decide if you want to warn about potential problems and continue or have _fastlane_ show an error and stop after all scans are done.|
36
+
37
+ # Usage
38
+ Run _fastlane precheck_ to check the app metadata from iTunes Connect
39
+
40
+ fastlane precheck
41
+
42
+ To get a list of available options run
43
+
44
+ fastlane action precheck
45
+
46
+ <img src="/img/actions/precheck.gif" />
47
+
48
+ # Example
49
+
50
+ Since you might want to manually trigger _precheck_ but don't want to specify all the parameters every time, you can store your defaults in a so called `Precheckfile`.
51
+
52
+ Run `fastlane precheck init` to create a new configuration file. Example:
53
+
54
+ ```ruby
55
+ # indicates that your metadata will not be checked by this rule
56
+ negative_apple_sentiment(level: :skip)
57
+
58
+ # when triggered, this rule will warn you of a potential problem
59
+ curse_words(level: :warn)
60
+
61
+ # show error and prevent any further commands from running after fastlane precheck finishes
62
+ unreachable_urls(level: :error)
63
+
64
+ # pass in whatever words you want to check for
65
+ custom_text(data: ["chrome", "webos"],
66
+ level: :warn)
67
+ ```
68
+
69
+ ### Use with [_fastlane_](https://github.com/fastlane/fastlane/tree/master/fastlane)
70
+
71
+ _precheck_ is fully integrated with [_deliver_](https://github.com/fastlane/fastlane/tree/master/deliver) another [_fastlane_](https://github.com/fastlane/fastlane/tree/master/fastlane) tool.
72
+
73
+ Update your `Fastfile` to contain the following code:
74
+
75
+ ```ruby
76
+ lane :production do
77
+ ...
78
+ # by default deliver will call precheck and warn you of any problems
79
+ # if you want precheck to halt submitting to app review, you can pass
80
+ # precheck_default_rule_level: :error
81
+ deliver(precheck_default_rule_level: :error)
82
+ ...
83
+ end
84
+
85
+ # or if you prefer, you can run precheck alone
86
+ lane :check_metadata do
87
+ precheck
88
+ end
89
+
90
+ ```
91
+
92
+ # How does it work?
93
+
94
+ _precheck_ will access `iTunes Connect` to download your app's metadata. It uses [spaceship](https://spaceship.airforce) to communicate with Apple's web services.
95
+
96
+ # Want to improve precheck's rules?
97
+ Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public.
@@ -0,0 +1,227 @@
1
+ <p align="center">
2
+ <img src="/img/actions/produce.png" height="110">
3
+ </p>
4
+
5
+ ###### Create new iOS apps on iTunes Connect and Dev Portal using your command line
6
+
7
+ _produce_ creates new iOS apps on both the Apple Developer Portal and iTunes Connect with the minimum required information.
8
+
9
+ -------
10
+
11
+ <p align="center">
12
+ <a href="#features">Features</a> &bull;
13
+ <a href="#usage">Usage</a> &bull;
14
+ <a href="#how-does-it-work">How does it work?</a>
15
+ </p>
16
+
17
+ -------
18
+
19
+ # Features
20
+
21
+ - **Create** new apps on both iTunes Connect and the Apple Developer Portal
22
+ - **Modify** Application Services on the Apple Developer Portal
23
+ - **Create** App Groups on the Apple Developer Portal
24
+ - **Associate** apps with App Groups on the Apple Developer Portal
25
+ - **Create** Merchant Identifiers on the Apple Developer Portal
26
+ - **Associate** apps with Merchant Identifiers on the Apple Developer Portal
27
+ - Support for **multiple Apple accounts**, storing your credentials securely in the Keychain
28
+
29
+ # Usage
30
+
31
+ ## Creating a new application
32
+
33
+ fastlane produce
34
+
35
+ To get a list of all available parameters:
36
+
37
+ fastlane produce --help
38
+
39
+ ```no-highlight
40
+ Commands: (* default)
41
+ associate_group Associate with a group, which is created if needed or simply located otherwise
42
+ associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app
43
+ create * Creates a new app on iTunes Connect and the Apple Developer Portal
44
+ disable_services Disable specific Application Services for a specific app on the Apple Developer Portal
45
+ enable_services Enable specific Application Services for a specific app on the Apple Developer Portal
46
+ group Ensure that a specific App Group exists
47
+ help Display global or [command] help documentation
48
+ merchant Ensure that a specific Merchant exists
49
+
50
+ Global Options:
51
+ --verbose
52
+ -h, --help Display help documentation
53
+ -v, --version Display version information
54
+
55
+ Options for create:
56
+ -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME)
57
+ -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER)
58
+ -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX)
59
+ -q, --app_name STRING App Name (PRODUCE_APP_NAME)
60
+ -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION)
61
+ -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU)
62
+ -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM)
63
+ -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE)
64
+ -c, --company_name STRING The name of your company. Only required if it's the first app you create (PRODUCE_COMPANY_NAME)
65
+ -i, --skip_itc [VALUE] Skip the creation of the app on iTunes Connect (PRODUCE_SKIP_ITC)
66
+ -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER)
67
+ -s, --itc_users ARRAY Array of iTunes Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS)
68
+ -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID)
69
+ -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME)
70
+ -k, --itc_team_id [VALUE] The ID of your iTunes Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID)
71
+ -p, --itc_team_name STRING The name of your iTunes Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)
72
+ ```
73
+
74
+ ## Enabling / Disabling Application Services
75
+
76
+ If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example):
77
+
78
+ fastlane produce enable_services --homekit --healthkit
79
+
80
+ If you want to disable Application Services for an App ID (iCloud in this case):
81
+
82
+ fastlane produce disable_services --icloud
83
+
84
+ If you want to create a new App Group:
85
+
86
+ fastlane produce group -g group.krausefx -n "Example App Group"
87
+
88
+ If you want to associate an app with an App Group:
89
+
90
+ fastlane produce associate_group -a com.krausefx.app group.krausefx
91
+
92
+ # Parameters
93
+
94
+ Get a list of all available options using
95
+
96
+ ```no-highlight
97
+ fastlane produce enable_services --help
98
+ ```
99
+
100
+ ```no-highlight
101
+ --app-group Enable App Groups
102
+ --apple-pay Enable Apple Pay
103
+ --associated-domains Enable Associated Domains
104
+ --data-protection STRING Enable Data Protection, suitable values are "complete", "unlessopen" and "untilfirstauth"
105
+ --game-center Enable Game Center
106
+ --healthkit Enable HealthKit
107
+ --homekit Enable HomeKit
108
+ --wireless-conf Enable Wireless Accessory Configuration
109
+ --icloud STRING Enable iCloud, suitable values are "legacy" and "cloudkit"
110
+ --in-app-purchase Enable In-App Purchase
111
+ --inter-app-audio Enable Inter-App-Audio
112
+ --passbook Enable Passbook
113
+ --push-notification Enable Push notification (only enables the service, does not configure certificates)
114
+ --sirikit Enable SiriKit
115
+ --vpn-conf Enable VPN Configuration
116
+ ```
117
+
118
+ ```no-highlight
119
+ fastlane produce disable_services --help
120
+ ```
121
+
122
+ ```
123
+ --app-group Disable App Groups
124
+ --apple-pay Disable Apple Pay
125
+ --associated-domains Disable Associated Domains
126
+ --data-protection Disable Data Protection
127
+ --game-center Disable Game Center
128
+ --healthkit Disable HealthKit
129
+ --homekit Disable HomeKit
130
+ --wireless-conf Disable Wireless Accessory Configuration
131
+ --icloud Disable iCloud
132
+ --in-app-purchase Disable In-App Purchase
133
+ --inter-app-audio Disable Inter-App-Audio
134
+ --passbook Disable Passbook
135
+ --push-notification Disable Push notifications
136
+ --sirikit Disable SiriKit
137
+ --vpn-conf Disable VPN Configuration
138
+ ```
139
+
140
+ ## Creating Apple Pay merchants and associating them with an App ID
141
+
142
+ If you want to create a new Apple Pay Merchant Identifier:
143
+
144
+ ```no-highlight
145
+ fastlane produce merchant -o merchant.com.example.production -r "Example Merchant Production"
146
+ ```
147
+
148
+ Use `--help` for more information about all available parameters
149
+ ```
150
+ fastlane produce merchant --help
151
+ ```
152
+
153
+ If you want to associate an app with a Merchant Identifier:
154
+
155
+ ```no-highlight
156
+ fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production
157
+ ```
158
+
159
+ If you want to associate an app with multiple Merchant Identifiers:
160
+
161
+ ```no-highlight
162
+ fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox
163
+ ```
164
+
165
+ Use --help for more information about all available parameters
166
+
167
+ ```no-highlight
168
+ fastlane produce associate_merchant --help
169
+ ```
170
+
171
+ ## Environment Variables
172
+
173
+ All available values can also be passed using environment variables, run `fastlane produce --help` to get a list of all available parameters.
174
+
175
+ ## _fastlane_ Integration
176
+
177
+ Your `Fastfile` should look like this
178
+
179
+ ```ruby
180
+ lane :release do
181
+ produce(
182
+ username: 'felix@krausefx.com',
183
+ app_identifier: 'com.krausefx.app',
184
+ app_name: 'MyApp',
185
+ language: 'English',
186
+ app_version: '1.0',
187
+ sku: '123',
188
+ team_name: 'SunApps GmbH' # only necessary when in multiple teams
189
+
190
+ # Optional
191
+ # App services can be enabled during app creation
192
+ enable_services: {
193
+ app_group: "on" # Valid values: "on", "off"
194
+ apple_pay: "on" # Valid values: "on", "off"
195
+ associated_domains: "on" # Valid values: "on", "off"
196
+ data_protection: "complete" # Valid values: "complete", "unlessopen", "untilfirstauth"
197
+ game_center: "on" # Valid values: "on", "off"
198
+ health_kit: "on" # Valid values: "on", "off"
199
+ home_kit: "on" # Valid values: "on", "off"
200
+ wireless_accessory: "on" # Valid values: "on", "off"
201
+ icloud: "cloudkit" # Valid values: "legacy", "cloudkit"
202
+ in_app_purchase: "on" # Valid values: "on", "off"
203
+ inter_app_audio: "on" # Valid values: "on", "off"
204
+ passbook: "on" # Valid values: "on", "off"
205
+ push_notification: "on" # Valid values: "on", "off"
206
+ siri_kit: "on" # Valid values: "on", "off"
207
+ vpn_configuration: "on" # Valid values: "on", "off"
208
+ }
209
+ )
210
+
211
+ deliver
212
+ end
213
+ ```
214
+
215
+ To use the newly generated app in _deliver_, you need to add this line to your `Deliverfile`:
216
+
217
+ ```ruby
218
+ apple_id ENV['PRODUCE_APPLE_ID']
219
+ ```
220
+
221
+ This will tell _deliver_, which `App ID` to use, since the app is not yet available in the App Store.
222
+
223
+ You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use [deliver](https://github.com/fastlane/fastlane/tree/master/deliver) to upload your app metadata using a CLI
224
+
225
+ ## How is my password stored?
226
+
227
+ _produce_ uses the [password manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_. Take a look the [CredentialsManager README](https://github.com/fastlane/fastlane/tree/master/credentials_manager) for more information.