fastlane 2.142.0 → 2.146.1

Sign up to get free protection for your applications and to get access to all the features.
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")