fastlane 2.142.0 → 2.146.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/credentials_manager/lib/credentials_manager/appfile_config.rb +4 -0
  4. data/deliver/lib/deliver/app_screenshot.rb +1 -0
  5. data/deliver/lib/deliver/options.rb +30 -1
  6. data/deliver/lib/deliver/setup.rb +4 -4
  7. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +7 -1
  8. data/fastlane/lib/fastlane/actions/clean_build_artifacts.rb +3 -0
  9. data/fastlane/lib/fastlane/actions/crashlytics.rb +14 -2
  10. data/fastlane/lib/fastlane/actions/create_pull_request.rb +7 -1
  11. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +10 -4
  12. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +22 -6
  13. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +23 -7
  14. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +2 -1
  15. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/pod_lib_lint.rb +7 -1
  17. data/fastlane/lib/fastlane/actions/s3.rb +3 -289
  18. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/setup_jenkins.rb +11 -2
  20. data/fastlane/lib/fastlane/actions/slather.rb +1 -1
  21. data/fastlane/lib/fastlane/actions/swiftlint.rb +28 -7
  22. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +203 -0
  23. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  25. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +61 -0
  26. data/fastlane/lib/fastlane/version.rb +1 -1
  27. data/fastlane/swift/Deliverfile.swift +1 -1
  28. data/fastlane/swift/Fastlane.swift +147 -8
  29. data/fastlane/swift/Gymfile.swift +1 -1
  30. data/fastlane/swift/Matchfile.swift +1 -1
  31. data/fastlane/swift/MatchfileProtocol.swift +17 -1
  32. data/fastlane/swift/Precheckfile.swift +1 -1
  33. data/fastlane/swift/Scanfile.swift +1 -1
  34. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  35. data/fastlane/swift/Screengrabfile.swift +1 -1
  36. data/fastlane/swift/Snapshotfile.swift +1 -1
  37. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +9 -0
  38. data/fastlane_core/lib/fastlane_core/device_manager.rb +3 -3
  39. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -0
  40. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +15 -2
  41. data/frameit/lib/frameit/commands_generator.rb +25 -0
  42. data/frameit/lib/frameit/config_parser.rb +31 -9
  43. data/frameit/lib/frameit/device.rb +90 -0
  44. data/frameit/lib/frameit/device_types.rb +121 -5
  45. data/frameit/lib/frameit/editor.rb +29 -41
  46. data/frameit/lib/frameit/offsets.rb +8 -1
  47. data/frameit/lib/frameit/options.rb +81 -54
  48. data/frameit/lib/frameit/runner.rb +17 -7
  49. data/frameit/lib/frameit/screenshot.rb +39 -47
  50. data/frameit/lib/frameit/template_finder.rb +15 -12
  51. data/gym/lib/gym/generators/package_command_generator.rb +4 -0
  52. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
  53. data/gym/lib/gym/runner.rb +14 -0
  54. data/match/lib/match/change_password.rb +1 -1
  55. data/match/lib/match/encryption.rb +4 -0
  56. data/match/lib/match/importer.rb +37 -20
  57. data/match/lib/match/module.rb +1 -1
  58. data/match/lib/match/nuke.rb +5 -1
  59. data/match/lib/match/options.rb +18 -0
  60. data/match/lib/match/runner.rb +4 -0
  61. data/match/lib/match/setup.rb +1 -1
  62. data/match/lib/match/storage.rb +4 -0
  63. data/match/lib/match/storage/s3_storage.rb +167 -0
  64. data/pilot/lib/pilot/build_manager.rb +15 -4
  65. data/pilot/lib/pilot/options.rb +8 -0
  66. data/produce/lib/produce/developer_center.rb +11 -2
  67. data/produce/lib/produce/itunes_connect.rb +11 -3
  68. data/produce/lib/produce/options.rb +12 -0
  69. data/scan/lib/scan/options.rb +5 -0
  70. data/scan/lib/scan/test_command_generator.rb +5 -1
  71. data/screengrab/lib/screengrab/runner.rb +12 -4
  72. data/snapshot/lib/snapshot/reports_generator.rb +4 -0
  73. data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
  74. data/spaceship/lib/spaceship/connect_api/models/build.rb +1 -2
  75. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -0
  76. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +23 -0
  77. data/spaceship/lib/spaceship/portal/app_service.rb +2 -2
  78. data/spaceship/lib/spaceship/portal/portal_client.rb +13 -0
  79. data/spaceship/lib/spaceship/tunes/app_version.rb +6 -1
  80. data/spaceship/lib/spaceship/tunes/application.rb +2 -1
  81. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  82. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +52 -16
  83. data/supply/lib/supply/client.rb +4 -4
  84. data/supply/lib/supply/setup.rb +5 -3
  85. metadata +34 -17
  86. data/gym/lib/gym/.code_signing_mapping.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 16f5d0c8e98d22db28cf818ffd26b3ecddf27f360bbe11174dd398d00f8d4a7c
4
- data.tar.gz: 63fae2c4ff11cc689da7946ee00cfab6219da35aa70308e9b0d61ec09a91ce25
3
+ metadata.gz: 840f7025891d2ec9c10c0909e6297b7d036b929ec2df20df12d9f4c6947a511b
4
+ data.tar.gz: 562429cfd8fd189564f0ec40fb6e278b61517d4c38efc090ac0228e33a15453a
5
5
  SHA512:
6
- metadata.gz: e87a15a427996b6169a72f2b8c62d02016cc7ec7d6278ae9a427f7f44800682487739a5efd21596c1ea098f76b11431365a986dc02451854f113e5fca2489627
7
- data.tar.gz: 2e88f0b54168f8cf9b252296e41a35e0f7231a4383a8838bb44864235d3cc00aeca5bdb81fe56c95985ebde78c401530aec9048efd755963c01cd993eed395c8
6
+ metadata.gz: af344e7c9f56a9c4d97e2cf9ef6b798719fdc697063495a740a606a154bbda05df19451a196f4d60e6b9faf32ebaf9b65ba7690b9dc870dc9f23f754dab52be5
7
+ data.tar.gz: 3c9718177512614b392e500c5e99ee5592f1880ac4b44ff587096e93bfb14589707243d30582f9482b32b3166bd70b3cfbef23b6b5002e133562204bf0955f93
data/README.md CHANGED
@@ -34,81 +34,87 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='luka-mirosevic'>
38
- <a href='https://github.com/lmirosevic'>
39
- <img src='https://github.com/lmirosevic.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
42
- </td>
43
- <td id='stefan-natchev'>
44
- <a href='https://github.com/snatchev'>
45
- <img src='https://github.com/snatchev.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
48
- </td>
49
37
  <td id='daniel-jankowski'>
50
38
  <a href='https://github.com/mollyIV'>
51
39
  <img src='https://github.com/mollyIV.png?size=140'>
52
40
  </a>
53
41
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
54
42
  </td>
55
- <td id='jorge-revuelta-h'>
56
- <a href='https://github.com/minuscorp'>
57
- <img src='https://github.com/minuscorp.png?size=140'>
43
+ <td id='fumiya-nakamura'>
44
+ <a href='https://github.com/nafu'>
45
+ <img src='https://github.com/nafu.png?size=140'>
58
46
  </a>
59
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
60
48
  </td>
61
- <td id='joshua-liebowitz'>
62
- <a href='https://github.com/taquitos'>
63
- <img src='https://github.com/taquitos.png?size=140'>
49
+ <td id='matthew-ellis'>
50
+ <a href='https://github.com/matthewellis'>
51
+ <img src='https://github.com/matthewellis.png?size=140'>
64
52
  </a>
65
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
54
+ </td>
55
+ <td id='iulian-onofrei'>
56
+ <a href='https://github.com/revolter'>
57
+ <img src='https://github.com/revolter.png?size=140'>
58
+ </a>
59
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
60
+ </td>
61
+ <td id='jérôme-lacoste'>
62
+ <a href='https://github.com/lacostej'>
63
+ <img src='https://github.com/lacostej.png?size=140'>
64
+ </a>
65
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
+ <td id='olivier-halligon'>
70
+ <a href='https://github.com/AliSoftware'>
71
+ <img src='https://github.com/AliSoftware.png?size=140'>
72
+ </a>
73
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
74
+ </td>
69
75
  <td id='josh-holtz'>
70
76
  <a href='https://github.com/joshdholtz'>
71
77
  <img src='https://github.com/joshdholtz.png?size=140'>
72
78
  </a>
73
79
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
74
80
  </td>
75
- <td id='jimmy-dee'>
76
- <a href='https://github.com/jdee'>
77
- <img src='https://github.com/jdee.png?size=140'>
78
- </a>
79
- <h4 align='center'>Jimmy Dee</h4>
80
- </td>
81
- <td id='helmut-januschka'>
82
- <a href='https://github.com/hjanuschka'>
83
- <img src='https://github.com/hjanuschka.png?size=140'>
81
+ <td id='aaron-brager'>
82
+ <a href='https://github.com/getaaron'>
83
+ <img src='https://github.com/getaaron.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
86
86
  </td>
87
- <td id='olivier-halligon'>
88
- <a href='https://github.com/AliSoftware'>
89
- <img src='https://github.com/AliSoftware.png?size=140'>
87
+ <td id='max-ott'>
88
+ <a href='https://github.com/max-ott'>
89
+ <img src='https://github.com/max-ott.png?size=140'>
90
90
  </a>
91
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
92
92
  </td>
93
- <td id='maksym-grebenets'>
94
- <a href='https://github.com/mgrebenets'>
95
- <img src='https://github.com/mgrebenets.png?size=140'>
93
+ <td id='joshua-liebowitz'>
94
+ <a href='https://github.com/taquitos'>
95
+ <img src='https://github.com/taquitos.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='jérôme-lacoste'>
102
- <a href='https://github.com/lacostej'>
103
- <img src='https://github.com/lacostej.png?size=140'>
101
+ <td id='luka-mirosevic'>
102
+ <a href='https://github.com/lmirosevic'>
103
+ <img src='https://github.com/lmirosevic.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
106
106
  </td>
107
- <td id='iulian-onofrei'>
108
- <a href='https://github.com/revolter'>
109
- <img src='https://github.com/revolter.png?size=140'>
107
+ <td id='stefan-natchev'>
108
+ <a href='https://github.com/snatchev'>
109
+ <img src='https://github.com/snatchev.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
112
+ </td>
113
+ <td id='helmut-januschka'>
114
+ <a href='https://github.com/hjanuschka'>
115
+ <img src='https://github.com/hjanuschka.png?size=140'>
116
+ </a>
117
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
112
118
  </td>
113
119
  <td id='danielle-tomlinson'>
114
120
  <a href='https://github.com/endocrimes'>
@@ -116,12 +122,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
116
122
  </a>
117
123
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
118
124
  </td>
119
- <td id='fumiya-nakamura'>
120
- <a href='https://github.com/nafu'>
121
- <img src='https://github.com/nafu.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
124
- </td>
125
125
  <td id='andrew-mcburney'>
126
126
  <a href='https://github.com/armcburney'>
127
127
  <img src='https://github.com/armcburney.png?size=140'>
@@ -130,29 +130,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='max-ott'>
134
- <a href='https://github.com/max-ott'>
135
- <img src='https://github.com/max-ott.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
138
- </td>
139
- <td id='felix-krause'>
140
- <a href='https://github.com/KrauseFx'>
141
- <img src='https://github.com/KrauseFx.png?size=140'>
142
- </a>
143
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
144
- </td>
145
- <td id='aaron-brager'>
146
- <a href='https://github.com/getaaron'>
147
- <img src='https://github.com/getaaron.png?size=140'>
148
- </a>
149
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
150
- </td>
151
- <td id='kohki-miki'>
152
- <a href='https://github.com/giginet'>
153
- <img src='https://github.com/giginet.png?size=140'>
133
+ <td id='jimmy-dee'>
134
+ <a href='https://github.com/jdee'>
135
+ <img src='https://github.com/jdee.png?size=140'>
154
136
  </a>
155
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
137
+ <h4 align='center'>Jimmy Dee</h4>
156
138
  </td>
157
139
  <td id='manu-wallner'>
158
140
  <a href='https://github.com/milch'>
@@ -160,19 +142,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
160
142
  </a>
161
143
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
162
144
  </td>
163
- </tr>
164
- <tr>
145
+ <td id='maksym-grebenets'>
146
+ <a href='https://github.com/mgrebenets'>
147
+ <img src='https://github.com/mgrebenets.png?size=140'>
148
+ </a>
149
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
150
+ </td>
165
151
  <td id='jan-piotrowski'>
166
152
  <a href='https://github.com/janpio'>
167
153
  <img src='https://github.com/janpio.png?size=140'>
168
154
  </a>
169
155
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
170
156
  </td>
171
- <td id='matthew-ellis'>
172
- <a href='https://github.com/matthewellis'>
173
- <img src='https://github.com/matthewellis.png?size=140'>
157
+ <td id='felix-krause'>
158
+ <a href='https://github.com/KrauseFx'>
159
+ <img src='https://github.com/KrauseFx.png?size=140'>
174
160
  </a>
175
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
162
+ </td>
163
+ </tr>
164
+ <tr>
165
+ <td id='kohki-miki'>
166
+ <a href='https://github.com/giginet'>
167
+ <img src='https://github.com/giginet.png?size=140'>
168
+ </a>
169
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
170
+ </td>
171
+ <td id='jorge-revuelta-h'>
172
+ <a href='https://github.com/minuscorp'>
173
+ <img src='https://github.com/minuscorp.png?size=140'>
174
+ </a>
175
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -119,6 +119,10 @@ module CredentialsManager
119
119
  setter(:itc_team_name, *args, &block)
120
120
  end
121
121
 
122
+ def itc_provider(*args, &block)
123
+ setter(:itc_provider, *args, &block)
124
+ end
125
+
122
126
  # Android
123
127
  def json_key_file(*args, &block)
124
128
  setter(:json_key_file, *args, &block)
@@ -316,6 +316,7 @@ module Deliver
316
316
  def self.resolve_ipadpro_conflict_if_needed(screen_size, filename)
317
317
  is_3rd_gen = [
318
318
  "iPad Pro (12.9-inch) (3rd generation)", # default simulator name has this
319
+ "iPad Pro (12.9-inch) (4th generation)", # default simulator name has this
319
320
  "ipadPro129" # downloaded screenshots name has this
320
321
  ].any? { |key| filename.include?(key) }
321
322
  if is_3rd_gen
@@ -30,6 +30,7 @@ module Deliver
30
30
  # version
31
31
  FastlaneCore::ConfigItem.new(key: :app_version,
32
32
  short_option: '-z',
33
+ env_name: "DELIVER_APP_VERSION",
33
34
  description: "The version that should be edited or created",
34
35
  optional: true),
35
36
 
@@ -68,6 +69,7 @@ module Deliver
68
69
  end),
69
70
  FastlaneCore::ConfigItem.new(key: :build_number,
70
71
  short_option: "-n",
72
+ env_name: "DELIVER_BUILD_NUMBER",
71
73
  description: "If set the given build number (already uploaded to iTC) will be used instead of the current built one",
72
74
  optional: true,
73
75
  conflicting_options: [:ipa, :pkg],
@@ -93,6 +95,7 @@ module Deliver
93
95
  description: "Modify live metadata, this option disables ipa upload and screenshot upload",
94
96
  is_string: false),
95
97
  FastlaneCore::ConfigItem.new(key: :use_live_version,
98
+ env_name: "DELIVER_USE_LIVE_VERSION",
96
99
  description: "Force usage of live version rather than edit version",
97
100
  is_string: false,
98
101
  default_value: false),
@@ -100,27 +103,33 @@ module Deliver
100
103
  # paths
101
104
  FastlaneCore::ConfigItem.new(key: :metadata_path,
102
105
  short_option: '-m',
106
+ env_name: "DELIVER_METADATA_PATH",
103
107
  description: "Path to the folder containing the metadata files",
104
108
  optional: true),
105
109
  FastlaneCore::ConfigItem.new(key: :screenshots_path,
106
110
  short_option: '-w',
111
+ env_name: "DELIVER_SCREENSHOTS_PATH",
107
112
  description: "Path to the folder containing the screenshots",
108
113
  optional: true),
109
114
 
110
115
  # skip
111
116
  FastlaneCore::ConfigItem.new(key: :skip_binary_upload,
117
+ env_name: "DELIVER_SKIP_BINARY_UPLOAD",
112
118
  description: "Skip uploading an ipa or pkg to App Store Connect",
113
119
  is_string: false,
114
120
  default_value: false),
115
121
  FastlaneCore::ConfigItem.new(key: :skip_screenshots,
122
+ env_name: "DELIVER_SKIP_SCREENSHOTS",
116
123
  description: "Don't upload the screenshots",
117
124
  is_string: false,
118
125
  default_value: false),
119
126
  FastlaneCore::ConfigItem.new(key: :skip_metadata,
127
+ env_name: "DELIVER_SKIP_METADATA",
120
128
  description: "Don't upload the metadata (e.g. title, description). This will still upload screenshots",
121
129
  is_string: false,
122
130
  default_value: false),
123
131
  FastlaneCore::ConfigItem.new(key: :skip_app_version_update,
132
+ env_name: "DELIVER_SKIP_APP_VERSION_UPDATE",
124
133
  description: "Don't update app version for submission",
125
134
  is_string: false,
126
135
  default_value: false),
@@ -128,6 +137,7 @@ module Deliver
128
137
  # how to operate
129
138
  FastlaneCore::ConfigItem.new(key: :force,
130
139
  short_option: "-f",
140
+ env_name: "DELIVER_FORCE",
131
141
  description: "Skip the HTML report file verification",
132
142
  is_string: false,
133
143
  default_value: false),
@@ -149,6 +159,7 @@ module Deliver
149
159
 
150
160
  # release
151
161
  FastlaneCore::ConfigItem.new(key: :automatic_release,
162
+ env_name: "DELIVER_AUTOMATIC_RELEASE",
152
163
  description: "Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`)",
153
164
  is_string: false,
154
165
  default_value: false),
@@ -162,11 +173,13 @@ module Deliver
162
173
  UI.user_error!("You can't use 'auto_release_date' and '#{value.key}' options together.")
163
174
  end),
164
175
  FastlaneCore::ConfigItem.new(key: :phased_release,
176
+ env_name: "DELIVER_PHASED_RELEASE",
165
177
  description: "Enable the phased release feature of iTC",
166
178
  optional: true,
167
179
  is_string: false,
168
180
  default_value: false),
169
181
  FastlaneCore::ConfigItem.new(key: :reset_ratings,
182
+ env_name: "DELIVER_RESET_RATINGS",
170
183
  description: "Reset the summary rating when you release a new version of the application",
171
184
  optional: true,
172
185
  is_string: false,
@@ -175,11 +188,13 @@ module Deliver
175
188
  # other app configuration
176
189
  FastlaneCore::ConfigItem.new(key: :price_tier,
177
190
  short_option: "-r",
191
+ env_name: "DELIVER_PRICE_TIER",
178
192
  description: "The price tier of this application",
179
193
  is_string: false,
180
194
  optional: true),
181
195
  FastlaneCore::ConfigItem.new(key: :app_rating_config_path,
182
196
  short_option: "-g",
197
+ env_name: "DELIVER_APP_RATING_CONFIG_PATH",
183
198
  description: "Path to the app rating's config",
184
199
  is_string: true,
185
200
  optional: true,
@@ -244,7 +259,10 @@ module Deliver
244
259
  FastlaneCore::ConfigItem.new(key: :itc_provider,
245
260
  env_name: "DELIVER_ITC_PROVIDER",
246
261
  description: "The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column",
247
- optional: true),
262
+ optional: true,
263
+ code_gen_sensitive: true,
264
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:itc_provider),
265
+ default_value_dynamic: true),
248
266
  # rubocop:enable Metrics/LineLength
249
267
 
250
268
  # precheck
@@ -271,6 +289,7 @@ module Deliver
271
289
 
272
290
  # Non Localised
273
291
  FastlaneCore::ConfigItem.new(key: :app_icon,
292
+ env_name: "DELIVER_APP_ICON_PATH",
274
293
  description: "Metadata: The path to the app icon",
275
294
  optional: true,
276
295
  short_option: "-l",
@@ -279,6 +298,7 @@ module Deliver
279
298
  UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
280
299
  end),
281
300
  FastlaneCore::ConfigItem.new(key: :apple_watch_app_icon,
301
+ env_name: "DELIVER_APPLE_WATCH_APP_ICON_PATH",
282
302
  description: "Metadata: The path to the Apple Watch app icon",
283
303
  optional: true,
284
304
  short_option: "-q",
@@ -287,30 +307,37 @@ module Deliver
287
307
  UI.user_error!("'#{value}' doesn't seem to be one of the supported files. supported: #{Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.join(',')}") unless Deliver::UploadAssets::SUPPORTED_ICON_EXTENSIONS.include?(File.extname(value).downcase)
288
308
  end),
289
309
  FastlaneCore::ConfigItem.new(key: :copyright,
310
+ env_name: "DELIVER_COPYRIGHT",
290
311
  description: "Metadata: The copyright notice",
291
312
  optional: true,
292
313
  is_string: true),
293
314
  FastlaneCore::ConfigItem.new(key: :primary_category,
315
+ env_name: "DELIVER_PRIMARY_CATEGORY",
294
316
  description: "Metadata: The english name of the primary category (e.g. `Business`, `Books`)",
295
317
  optional: true,
296
318
  is_string: true),
297
319
  FastlaneCore::ConfigItem.new(key: :secondary_category,
320
+ env_name: "DELIVER_SECONDARY_CATEGORY",
298
321
  description: "Metadata: The english name of the secondary category (e.g. `Business`, `Books`)",
299
322
  optional: true,
300
323
  is_string: true),
301
324
  FastlaneCore::ConfigItem.new(key: :primary_first_sub_category,
325
+ env_name: "DELIVER_PRIMARY_FIRST_SUB_CATEGORY",
302
326
  description: "Metadata: The english name of the primary first sub category (e.g. `Educational`, `Puzzle`)",
303
327
  optional: true,
304
328
  is_string: true),
305
329
  FastlaneCore::ConfigItem.new(key: :primary_second_sub_category,
330
+ env_name: "DELIVER_PRIMARY_SECOND_SUB_CATEGORY",
306
331
  description: "Metadata: The english name of the primary second sub category (e.g. `Educational`, `Puzzle`)",
307
332
  optional: true,
308
333
  is_string: true),
309
334
  FastlaneCore::ConfigItem.new(key: :secondary_first_sub_category,
335
+ env_name: "DELIVER_SECONDARY_FIRST_SUB_CATEGORY",
310
336
  description: "Metadata: The english name of the secondary first sub category (e.g. `Educational`, `Puzzle`)",
311
337
  optional: true,
312
338
  is_string: true),
313
339
  FastlaneCore::ConfigItem.new(key: :secondary_second_sub_category,
340
+ env_name: "DELIVER_SECONDARY_SECOND_SUB_CATEGORY",
314
341
  description: "Metadata: The english name of the secondary second sub category (e.g. `Educational`, `Puzzle`)",
315
342
  optional: true,
316
343
  is_string: true),
@@ -325,6 +352,7 @@ module Deliver
325
352
  is_string: false,
326
353
  type: Hash),
327
354
  FastlaneCore::ConfigItem.new(key: :app_review_attachment_file,
355
+ env_name: "DELIVER_APP_REVIEW_ATTACHMENT_FILE",
328
356
  description: "Metadata: Path to the app review attachment file",
329
357
  optional: true,
330
358
  is_string: true),
@@ -391,6 +419,7 @@ module Deliver
391
419
  # The verify_block has been removed from here and verification now happens in Deliver::DetectValues
392
420
  # Verification needed Spaceship::Tunes.client which required the Deliver::Runner to already by started
393
421
  FastlaneCore::ConfigItem.new(key: :languages,
422
+ env_name: "DELIVER_LANGUAGES",
394
423
  description: "Metadata: List of languages to activate",
395
424
  type: Array,
396
425
  optional: true),
@@ -67,7 +67,7 @@ module Deliver
67
67
  else
68
68
  content = app_details.send(key)[language].to_s
69
69
  end
70
- content << "\n"
70
+ content += "\n"
71
71
  resulting_path = File.join(path, language, "#{key}.txt")
72
72
  FileUtils.mkdir_p(File.expand_path('..', resulting_path))
73
73
  File.write(resulting_path, content)
@@ -82,7 +82,7 @@ module Deliver
82
82
  else
83
83
  content = app_details.send(key).to_s
84
84
  end
85
- content << "\n"
85
+ content += "\n"
86
86
  resulting_path = File.join(path, "#{key}.txt")
87
87
  File.write(resulting_path, content)
88
88
  UI.message("Writing to '#{resulting_path}'")
@@ -91,7 +91,7 @@ module Deliver
91
91
  # Trade Representative Contact Information
92
92
  UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_VALUES.each do |key, option_name|
93
93
  content = v.send(key).to_s
94
- content << "\n"
94
+ content += "\n"
95
95
  base_dir = File.join(path, UploadMetadata::TRADE_REPRESENTATIVE_CONTACT_INFORMATION_DIR)
96
96
  FileUtils.mkdir_p(base_dir)
97
97
  resulting_path = File.join(base_dir, "#{option_name}.txt")
@@ -102,7 +102,7 @@ module Deliver
102
102
  # Review information
103
103
  UploadMetadata::REVIEW_INFORMATION_VALUES.each do |key, option_name|
104
104
  content = v.send(key).to_s
105
- content << "\n"
105
+ content += "\n"
106
106
  base_dir = File.join(path, UploadMetadata::REVIEW_INFORMATION_DIR)
107
107
  FileUtils.mkdir_p(base_dir)
108
108
  resulting_path = File.join(base_dir, "#{option_name}.txt")