fastlane 2.114.0.beta.20190116200018 → 2.114.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8823faa01f6b91b8f1d75874a92e31c24e5baf7b
4
- data.tar.gz: 798b9258cdccc86dd157343f01948b7b64329a01
3
+ metadata.gz: f02e6ce6045dbef96eda80e54104adc2e1c50b03
4
+ data.tar.gz: 8f8fc958abb338341a7e9cbb8092da71cda11535
5
5
  SHA512:
6
- metadata.gz: eb89b5429909549a65ad93a6f2192de69a1d33834ffb3260d413adde31da4e1b072a72953a4b35938b97c19982d0afdef08e04bcdc98c9bfc2931abf8e341107
7
- data.tar.gz: 7f60cd65995378cb001435f2a6202f45ce800b52d4607fe0b738b7be4aa45741d7100edf57537db568c1cccba18953612d0afae6328916840728d915a54cf722
6
+ metadata.gz: cc3e67789da1b3bc756232bc3930ca9c499a2c34ab2810cd00e6405974dbbacb4e681eb8948c61076cc88f24581c069a4f16966d793f16a14d532c839babefbf
7
+ data.tar.gz: 06e6af45c8e8b91a4ad64250c23b9ae1b179926e79b0218adceb3099ec0f006966da6d5155cbe7852f33989b37c77e03e6ec30bc9051c364f39a208e22c074eb
data/README.md CHANGED
@@ -39,23 +39,55 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
39
39
  </a>
40
40
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
41
41
  </td>
42
- <td id='stefan-natchev'>
43
- <a href='https://github.com/snatchev'>
44
- <img src='https://github.com/snatchev.png?size=140'>
45
- </a>
46
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
47
- </td>
48
42
  <td id='luka-mirosevic'>
49
43
  <a href='https://github.com/lmirosevic'>
50
44
  <img src='https://github.com/lmirosevic.png?size=140'>
51
45
  </a>
52
46
  <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
53
47
  </td>
54
- <td id='jorge-revuelta-h'>
55
- <a href='https://github.com/minuscorp'>
56
- <img src='https://github.com/minuscorp.png?size=140'>
48
+ <td id='jimmy-dee'>
49
+ <a href='https://github.com/jdee'>
50
+ <img src='https://github.com/jdee.png?size=140'>
57
51
  </a>
58
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
52
+ <h4 align='center'>Jimmy Dee</h4>
53
+ </td>
54
+ <td id='danielle-tomlinson'>
55
+ <a href='https://github.com/DanToml'>
56
+ <img src='https://github.com/DanToml.png?size=140'>
57
+ </a>
58
+ <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
59
+ </td>
60
+ <td id='josh-holtz'>
61
+ <a href='https://github.com/joshdholtz'>
62
+ <img src='https://github.com/joshdholtz.png?size=140'>
63
+ </a>
64
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
65
+ </td>
66
+ </tr>
67
+ <tr>
68
+ <td id='helmut-januschka'>
69
+ <a href='https://github.com/hjanuschka'>
70
+ <img src='https://github.com/hjanuschka.png?size=140'>
71
+ </a>
72
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
73
+ </td>
74
+ <td id='maksym-grebenets'>
75
+ <a href='https://github.com/mgrebenets'>
76
+ <img src='https://github.com/mgrebenets.png?size=140'>
77
+ </a>
78
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
79
+ </td>
80
+ <td id='manu-wallner'>
81
+ <a href='https://github.com/milch'>
82
+ <img src='https://github.com/milch.png?size=140'>
83
+ </a>
84
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
85
+ </td>
86
+ <td id='jan-piotrowski'>
87
+ <a href='https://github.com/janpio'>
88
+ <img src='https://github.com/janpio.png?size=140'>
89
+ </a>
90
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
59
91
  </td>
60
92
  <td id='iulian-onofrei'>
61
93
  <a href='https://github.com/revolter'>
@@ -65,11 +97,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
65
97
  </td>
66
98
  </tr>
67
99
  <tr>
68
- <td id='joshua-liebowitz'>
69
- <a href='https://github.com/taquitos'>
70
- <img src='https://github.com/taquitos.png?size=140'>
100
+ <td id='aaron-brager'>
101
+ <a href='https://github.com/getaaron'>
102
+ <img src='https://github.com/getaaron.png?size=140'>
71
103
  </a>
72
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
104
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
73
105
  </td>
74
106
  <td id='fumiya-nakamura'>
75
107
  <a href='https://github.com/nafu'>
@@ -77,11 +109,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
77
109
  </a>
78
110
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
79
111
  </td>
80
- <td id='manu-wallner'>
81
- <a href='https://github.com/milch'>
82
- <img src='https://github.com/milch.png?size=140'>
112
+ <td id='stefan-natchev'>
113
+ <a href='https://github.com/snatchev'>
114
+ <img src='https://github.com/snatchev.png?size=140'>
83
115
  </a>
84
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
116
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
85
117
  </td>
86
118
  <td id='jérôme-lacoste'>
87
119
  <a href='https://github.com/lacostej'>
@@ -89,31 +121,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
89
121
  </a>
90
122
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
91
123
  </td>
92
- <td id='jimmy-dee'>
93
- <a href='https://github.com/jdee'>
94
- <img src='https://github.com/jdee.png?size=140'>
124
+ <td id='joshua-liebowitz'>
125
+ <a href='https://github.com/taquitos'>
126
+ <img src='https://github.com/taquitos.png?size=140'>
95
127
  </a>
96
- <h4 align='center'>Jimmy Dee</h4>
128
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
97
129
  </td>
98
130
  </tr>
99
131
  <tr>
100
- <td id='josh-holtz'>
101
- <a href='https://github.com/joshdholtz'>
102
- <img src='https://github.com/joshdholtz.png?size=140'>
103
- </a>
104
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
105
- </td>
106
- <td id='maksym-grebenets'>
107
- <a href='https://github.com/mgrebenets'>
108
- <img src='https://github.com/mgrebenets.png?size=140'>
109
- </a>
110
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
111
- </td>
112
- <td id='aaron-brager'>
113
- <a href='https://github.com/getaaron'>
114
- <img src='https://github.com/getaaron.png?size=140'>
132
+ <td id='olivier-halligon'>
133
+ <a href='https://github.com/AliSoftware'>
134
+ <img src='https://github.com/AliSoftware.png?size=140'>
115
135
  </a>
116
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
136
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
117
137
  </td>
118
138
  <td id='felix-krause'>
119
139
  <a href='https://github.com/KrauseFx'>
@@ -121,37 +141,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
121
141
  </a>
122
142
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
123
143
  </td>
124
- <td id='olivier-halligon'>
125
- <a href='https://github.com/AliSoftware'>
126
- <img src='https://github.com/AliSoftware.png?size=140'>
127
- </a>
128
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
129
- </td>
130
- </tr>
131
- <tr>
132
144
  <td id='kohki-miki'>
133
145
  <a href='https://github.com/giginet'>
134
146
  <img src='https://github.com/giginet.png?size=140'>
135
147
  </a>
136
148
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
137
149
  </td>
138
- <td id='danielle-tomlinson'>
139
- <a href='https://github.com/DanToml'>
140
- <img src='https://github.com/DanToml.png?size=140'>
141
- </a>
142
- <h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
143
- </td>
144
- <td id='jan-piotrowski'>
145
- <a href='https://github.com/janpio'>
146
- <img src='https://github.com/janpio.png?size=140'>
147
- </a>
148
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
149
- </td>
150
- <td id='helmut-januschka'>
151
- <a href='https://github.com/hjanuschka'>
152
- <img src='https://github.com/hjanuschka.png?size=140'>
150
+ <td id='jorge-revuelta-h'>
151
+ <a href='https://github.com/minuscorp'>
152
+ <img src='https://github.com/minuscorp.png?size=140'>
153
153
  </a>
154
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
154
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
155
155
  </td>
156
156
  <td id='andrew-mcburney'>
157
157
  <a href='https://github.com/armcburney'>
@@ -15,8 +15,10 @@ module Deliver
15
15
  IOS_47 = "iOS-4.7-in"
16
16
  # iPhone 6 Plus
17
17
  IOS_55 = "iOS-5.5-in"
18
- # iPhone X
18
+ # iPhone XS
19
19
  IOS_58 = "iOS-5.8-in"
20
+ # iPhone XR
21
+ IOS_61 = "iOS-6.1-in"
20
22
  # iPhone XS Max
21
23
  IOS_65 = "iOS-6.5-in"
22
24
  # iPad
@@ -33,8 +35,10 @@ module Deliver
33
35
  IOS_47_MESSAGES = "iOS-4.7-in-messages"
34
36
  # iPhone 6 Plus iMessage
35
37
  IOS_55_MESSAGES = "iOS-5.5-in-messages"
36
- # iPhone X iMessage
38
+ # iPhone XS iMessage
37
39
  IOS_58_MESSAGES = "iOS-5.8-in-messages"
40
+ # iPhone XR iMessage
41
+ IOS_61_MESSAGES = "iOS-6.1-in-messages"
38
42
  # iPhone XS Max iMessage
39
43
  IOS_65_MESSAGES = "iOS-6.5-in-messages"
40
44
  # iPad iMessage
@@ -118,7 +122,8 @@ module Deliver
118
122
  ScreenSize::IOS_40 => "iPhone 5",
119
123
  ScreenSize::IOS_47 => "iPhone 6",
120
124
  ScreenSize::IOS_55 => "iPhone 6 Plus",
121
- ScreenSize::IOS_58 => "iPhone X",
125
+ ScreenSize::IOS_58 => "iPhone XS",
126
+ ScreenSize::IOS_61 => "iPhone XR",
122
127
  ScreenSize::IOS_65 => "iPhone XS Max",
123
128
  ScreenSize::IOS_IPAD => "iPad",
124
129
  ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
@@ -127,7 +132,8 @@ module Deliver
127
132
  ScreenSize::IOS_40_MESSAGES => "iPhone 5 (iMessage)",
128
133
  ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)",
129
134
  ScreenSize::IOS_55_MESSAGES => "iPhone 6 Plus (iMessage)",
130
- ScreenSize::IOS_58_MESSAGES => "iPhone X (iMessage)",
135
+ ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
136
+ ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
131
137
  ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
132
138
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
133
139
  ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
@@ -167,6 +173,9 @@ module Deliver
167
173
  ScreenSize::IOS_65_MESSAGES => [
168
174
  [1242, 2688]
169
175
  ],
176
+ ScreenSize::IOS_61_MESSAGES => [
177
+ [828, 1792]
178
+ ],
170
179
  ScreenSize::IOS_58_MESSAGES => [
171
180
  [1125, 2436]
172
181
  ],
@@ -212,6 +221,9 @@ module Deliver
212
221
  ScreenSize::IOS_65 => [
213
222
  [1242, 2688]
214
223
  ],
224
+ ScreenSize::IOS_61 => [
225
+ [828, 1792]
226
+ ],
215
227
  ScreenSize::IOS_58 => [
216
228
  [1125, 2436]
217
229
  ],
@@ -1,4 +1,5 @@
1
1
  require 'spaceship/tunes/tunes'
2
+ require 'spaceship/tunes/device_type'
2
3
 
3
4
  require_relative 'app_screenshot'
4
5
  require_relative 'module'
@@ -128,6 +129,21 @@ module Deliver
128
129
  end
129
130
  end
130
131
 
132
+ # Checking if the device type exists in spaceship
133
+ # Ex: iPhone 6.1 inch isn't supported in App Store Connect but need
134
+ # to have it in there for frameit support
135
+ unaccepted_device_shown = false
136
+ screenshots.select! do |screenshot|
137
+ exists = Spaceship::Tunes::DeviceType.exists?(screenshot.device_type)
138
+ unless exists
139
+ UI.important("Unaccepted device screenshots are detected! 🚫 Screenshot file will be skipped. 🏃") unless unaccepted_device_shown
140
+ unaccepted_device_shown = true
141
+
142
+ UI.important("🏃 Skipping screenshot file: #{screenshot.path} - Not an accepted App Store Connect device...")
143
+ end
144
+ exists
145
+ end
146
+
131
147
  return screenshots
132
148
  end
133
149
  end
@@ -9,11 +9,14 @@ module Fastlane
9
9
  cmd << "--package-path #{params[:package_path]}" if params[:package_path]
10
10
  cmd << "--configuration #{params[:configuration]}" if params[:configuration]
11
11
  cmd << "--verbose" if params[:verbose]
12
+ cmd << params[:command] if package_commands.include?(params[:command])
13
+ if params[:xcconfig]
14
+ cmd << "--xcconfig-overrides #{params[:xcconfig]}"
15
+ end
12
16
  if params[:xcpretty_output]
13
17
  cmd += ["2>&1", "|", "xcpretty", "--#{params[:xcpretty_output]}"]
14
18
  cmd = %w(set -o pipefail &&) + cmd
15
19
  end
16
- cmd << params[:command] if package_commands.include?(params[:command])
17
20
 
18
21
  FastlaneCore::CommandExecutor.execute(command: cmd.join(" "),
19
22
  print_all: true,
@@ -45,6 +48,10 @@ module Fastlane
45
48
  env_name: "FL_SPM_PACKAGE_PATH",
46
49
  description: "Change working directory before any other operation",
47
50
  optional: true),
51
+ FastlaneCore::ConfigItem.new(key: :xcconfig,
52
+ env_name: "FL_SPM_XCCONFIG",
53
+ description: "Use xcconfig file to override swift package generate-xcodeproj defaults",
54
+ optional: true),
48
55
  FastlaneCore::ConfigItem.new(key: :configuration,
49
56
  short_option: "-c",
50
57
  env_name: "FL_SPM_CONFIGURATION",
@@ -70,7 +77,7 @@ module Fastlane
70
77
  end
71
78
 
72
79
  def self.authors
73
- ["Flávio Caetano (@fjcaetano)"]
80
+ ["fjcaetano", "nxtstep"]
74
81
  end
75
82
 
76
83
  def self.is_supported?(platform)
@@ -84,6 +91,10 @@ module Fastlane
84
91
  command: "build",
85
92
  build_path: "./build",
86
93
  configuration: "release"
94
+ )',
95
+ 'spm(
96
+ command: "generate-xcodeproj",
97
+ xcconfig: "Package.xcconfig"
87
98
  )'
88
99
  ]
89
100
  end
@@ -97,7 +108,7 @@ module Fastlane
97
108
  end
98
109
 
99
110
  def self.package_commands
100
- %w(clean reset update)
111
+ %w(clean reset update resolve generate-xcodeproj init)
101
112
  end
102
113
 
103
114
  def self.valid_configurations
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.114.0.beta.20190116200018'.freeze
2
+ VERSION = '2.114.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -1360,6 +1360,7 @@ func downloadDsyms(username: String,
1360
1360
  platform: String = "ios",
1361
1361
  version: String? = nil,
1362
1362
  buildNumber: String? = nil,
1363
+ minVersion: String? = nil,
1363
1364
  outputDirectory: String? = nil) {
1364
1365
  let command = RubyCommand(commandID: "", methodName: "download_dsyms", className: nil, args: [RubyCommand.Argument(name: "username", value: username),
1365
1366
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
@@ -1368,6 +1369,7 @@ func downloadDsyms(username: String,
1368
1369
  RubyCommand.Argument(name: "platform", value: platform),
1369
1370
  RubyCommand.Argument(name: "version", value: version),
1370
1371
  RubyCommand.Argument(name: "build_number", value: buildNumber),
1372
+ RubyCommand.Argument(name: "min_version", value: minVersion),
1371
1373
  RubyCommand.Argument(name: "output_directory", value: outputDirectory)])
1372
1374
  _ = runner.executeCommand(command)
1373
1375
  }
@@ -1468,6 +1470,7 @@ func frameScreenshots(white: Bool? = nil,
1468
1470
  forceDeviceType: String? = nil,
1469
1471
  useLegacyIphone5s: Bool = false,
1470
1472
  useLegacyIphone6s: Bool = false,
1473
+ useLegacyIphonex: Bool = false,
1471
1474
  forceOrientationBlock: String? = nil,
1472
1475
  path: String = "./") {
1473
1476
  let command = RubyCommand(commandID: "", methodName: "frame_screenshots", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
@@ -1477,6 +1480,7 @@ func frameScreenshots(white: Bool? = nil,
1477
1480
  RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
1478
1481
  RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
1479
1482
  RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
1483
+ RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
1480
1484
  RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
1481
1485
  RubyCommand.Argument(name: "path", value: path)])
1482
1486
  _ = runner.executeCommand(command)
@@ -1488,6 +1492,7 @@ func frameit(white: Bool? = nil,
1488
1492
  forceDeviceType: String? = nil,
1489
1493
  useLegacyIphone5s: Bool = false,
1490
1494
  useLegacyIphone6s: Bool = false,
1495
+ useLegacyIphonex: Bool = false,
1491
1496
  forceOrientationBlock: String? = nil,
1492
1497
  path: String = "./") {
1493
1498
  let command = RubyCommand(commandID: "", methodName: "frameit", className: nil, args: [RubyCommand.Argument(name: "white", value: white),
@@ -1497,6 +1502,7 @@ func frameit(white: Bool? = nil,
1497
1502
  RubyCommand.Argument(name: "force_device_type", value: forceDeviceType),
1498
1503
  RubyCommand.Argument(name: "use_legacy_iphone5s", value: useLegacyIphone5s),
1499
1504
  RubyCommand.Argument(name: "use_legacy_iphone6s", value: useLegacyIphone6s),
1505
+ RubyCommand.Argument(name: "use_legacy_iphonex", value: useLegacyIphonex),
1500
1506
  RubyCommand.Argument(name: "force_orientation_block", value: forceOrientationBlock),
1501
1507
  RubyCommand.Argument(name: "path", value: path)])
1502
1508
  _ = runner.executeCommand(command)
@@ -2665,6 +2671,7 @@ func runTests(workspace: String? = nil,
2665
2671
  device: String? = nil,
2666
2672
  devices: [String]? = nil,
2667
2673
  skipDetectDevices: Bool = false,
2674
+ resetSimulator: Bool = false,
2668
2675
  reinstallApp: Bool = false,
2669
2676
  appIdentifier: String? = nil,
2670
2677
  onlyTesting: String? = nil,
@@ -2712,6 +2719,7 @@ func runTests(workspace: String? = nil,
2712
2719
  RubyCommand.Argument(name: "device", value: device),
2713
2720
  RubyCommand.Argument(name: "devices", value: devices),
2714
2721
  RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
2722
+ RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
2715
2723
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
2716
2724
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2717
2725
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
@@ -2801,6 +2809,7 @@ func scan(workspace: String? = scanfile.workspace,
2801
2809
  device: String? = scanfile.device,
2802
2810
  devices: [String]? = scanfile.devices,
2803
2811
  skipDetectDevices: Bool = scanfile.skipDetectDevices,
2812
+ resetSimulator: Bool = scanfile.resetSimulator,
2804
2813
  reinstallApp: Bool = scanfile.reinstallApp,
2805
2814
  appIdentifier: String? = scanfile.appIdentifier,
2806
2815
  onlyTesting: String? = scanfile.onlyTesting,
@@ -2848,6 +2857,7 @@ func scan(workspace: String? = scanfile.workspace,
2848
2857
  RubyCommand.Argument(name: "device", value: device),
2849
2858
  RubyCommand.Argument(name: "devices", value: devices),
2850
2859
  RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
2860
+ RubyCommand.Argument(name: "reset_simulator", value: resetSimulator),
2851
2861
  RubyCommand.Argument(name: "reinstall_app", value: reinstallApp),
2852
2862
  RubyCommand.Argument(name: "app_identifier", value: appIdentifier),
2853
2863
  RubyCommand.Argument(name: "only_testing", value: onlyTesting),
@@ -3316,12 +3326,14 @@ func splunkmint(dsym: String? = nil,
3316
3326
  func spm(command: String = "build",
3317
3327
  buildPath: String? = nil,
3318
3328
  packagePath: String? = nil,
3329
+ xcconfig: String? = nil,
3319
3330
  configuration: String? = nil,
3320
3331
  xcprettyOutput: String? = nil,
3321
3332
  verbose: Bool = false) {
3322
3333
  let command = RubyCommand(commandID: "", methodName: "spm", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
3323
3334
  RubyCommand.Argument(name: "build_path", value: buildPath),
3324
3335
  RubyCommand.Argument(name: "package_path", value: packagePath),
3336
+ RubyCommand.Argument(name: "xcconfig", value: xcconfig),
3325
3337
  RubyCommand.Argument(name: "configuration", value: configuration),
3326
3338
  RubyCommand.Argument(name: "xcpretty_output", value: xcprettyOutput),
3327
3339
  RubyCommand.Argument(name: "verbose", value: verbose)])
@@ -3365,7 +3377,8 @@ func supply(packageName: String,
3365
3377
  rootUrl: String? = nil,
3366
3378
  checkSupersededTracks: Bool = false,
3367
3379
  timeout: Int = 300,
3368
- deactivateOnPromote: Bool = true) {
3380
+ deactivateOnPromote: Bool = true,
3381
+ versionCodesToRetain: [String]? = nil) {
3369
3382
  let command = RubyCommand(commandID: "", methodName: "supply", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3370
3383
  RubyCommand.Argument(name: "track", value: track),
3371
3384
  RubyCommand.Argument(name: "rollout", value: rollout),
@@ -3390,7 +3403,8 @@ func supply(packageName: String,
3390
3403
  RubyCommand.Argument(name: "root_url", value: rootUrl),
3391
3404
  RubyCommand.Argument(name: "check_superseded_tracks", value: checkSupersededTracks),
3392
3405
  RubyCommand.Argument(name: "timeout", value: timeout),
3393
- RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote)])
3406
+ RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
3407
+ RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain)])
3394
3408
  _ = runner.executeCommand(command)
3395
3409
  }
3396
3410
  func swiftlint(mode: String = "lint",
@@ -3865,7 +3879,8 @@ func uploadToPlayStore(packageName: String,
3865
3879
  rootUrl: String? = nil,
3866
3880
  checkSupersededTracks: Bool = false,
3867
3881
  timeout: Int = 300,
3868
- deactivateOnPromote: Bool = true) {
3882
+ deactivateOnPromote: Bool = true,
3883
+ versionCodesToRetain: [String]? = nil) {
3869
3884
  let command = RubyCommand(commandID: "", methodName: "upload_to_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
3870
3885
  RubyCommand.Argument(name: "track", value: track),
3871
3886
  RubyCommand.Argument(name: "rollout", value: rollout),
@@ -3890,7 +3905,8 @@ func uploadToPlayStore(packageName: String,
3890
3905
  RubyCommand.Argument(name: "root_url", value: rootUrl),
3891
3906
  RubyCommand.Argument(name: "check_superseded_tracks", value: checkSupersededTracks),
3892
3907
  RubyCommand.Argument(name: "timeout", value: timeout),
3893
- RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote)])
3908
+ RubyCommand.Argument(name: "deactivate_on_promote", value: deactivateOnPromote),
3909
+ RubyCommand.Argument(name: "version_codes_to_retain", value: versionCodesToRetain)])
3894
3910
  _ = runner.executeCommand(command)
3895
3911
  }
3896
3912
  func uploadToTestflight(username: String,
@@ -4177,4 +4193,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
4177
4193
  let snapshotfile: Snapshotfile = Snapshotfile()
4178
4194
  // Please don't remove the lines below
4179
4195
  // They are used to detect outdated files
4180
- // FastlaneRunnerAPIVersion [0.9.38]
4196
+ // FastlaneRunnerAPIVersion [0.9.39]
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -5,6 +5,7 @@ protocol ScanfileProtocol: class {
5
5
  var device: String? { get }
6
6
  var devices: [String]? { get }
7
7
  var skipDetectDevices: Bool { get }
8
+ var resetSimulator: Bool { get }
8
9
  var reinstallApp: Bool { get }
9
10
  var appIdentifier: String? { get }
10
11
  var onlyTesting: String? { get }
@@ -55,6 +56,7 @@ extension ScanfileProtocol {
55
56
  var device: String? { return nil }
56
57
  var devices: [String]? { return nil }
57
58
  var skipDetectDevices: Bool { return false }
59
+ var resetSimulator: Bool { return false }
58
60
  var reinstallApp: Bool { return false }
59
61
  var appIdentifier: String? { return nil }
60
62
  var onlyTesting: String? { return nil }
@@ -100,4 +102,4 @@ extension ScanfileProtocol {
100
102
 
101
103
  // Please don't remove the lines below
102
104
  // They are used to detect outdated files
103
- // FastlaneRunnerAPIVersion [0.9.7]
105
+ // FastlaneRunnerAPIVersion [0.9.8]
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.113.0
21
+ // Generated with fastlane 2.114.0
@@ -4,6 +4,11 @@ module Frameit
4
4
  SILVER = "Silver"
5
5
  ROSE_GOLD = "Rose Gold"
6
6
  GOLD = "Gold"
7
+ RED = "Red"
8
+ YELLOW = "Yellow"
9
+ WHITE = "White"
10
+ CORAL = "Coral"
11
+ BLUE = "Blue"
7
12
  end
8
13
 
9
14
  module Orientation
@@ -47,6 +47,11 @@ module Frameit
47
47
  description: "Use iPhone 6s frames instead of iPhone 7 frames",
48
48
  default_value: false,
49
49
  type: Boolean),
50
+ FastlaneCore::ConfigItem.new(key: :use_legacy_iphonex,
51
+ env_name: "FRAMEIT_USE_LEGACY_IPHONE_X",
52
+ description: "Use iPhone X instead of iPhone XS frames",
53
+ default_value: false,
54
+ type: Boolean),
50
55
  FastlaneCore::ConfigItem.new(key: :force_orientation_block,
51
56
  type: :string_callback,
52
57
  description: "[Advanced] A block to customize your screenshots' device orientation",
@@ -29,8 +29,12 @@ module Frameit
29
29
  # rubocop:disable Require/MissingRequireStatement
30
30
  sizes = Deliver::AppScreenshot::ScreenSize
31
31
  case @screen_size
32
+ when sizes::IOS_65
33
+ return 'iPhone XS Max'
34
+ when sizes::IOS_61
35
+ return 'iPhone XR'
32
36
  when sizes::IOS_58
33
- return 'iPhone X'
37
+ return Frameit.config[:use_legacy_iphonex] ? 'iPhone X' : 'iPhone XS'
34
38
  when sizes::IOS_55
35
39
  return Frameit.config[:use_legacy_iphone6s] ? 'iPhone 6s Plus' : 'iPhone 7 Plus'
36
40
  when sizes::IOS_47
@@ -55,6 +59,8 @@ module Frameit
55
59
  if !Frameit.config[:use_legacy_iphone6s] && @color == Frameit::Color::BLACK
56
60
  if @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_55 || @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_47
57
61
  return "Matte Black" # RIP space gray
62
+ elsif @screen_size == Deliver::AppScreenshot::ScreenSize::IOS_61
63
+ return "Black"
58
64
  end
59
65
  end
60
66
  return @color
@@ -62,7 +68,7 @@ module Frameit
62
68
 
63
69
  # Is the device a 3x device? (e.g. iPhone 6 Plus, iPhone X)
64
70
  def triple_density?
65
- (screen_size == Deliver::AppScreenshot::ScreenSize::IOS_55 || screen_size == Deliver::AppScreenshot::ScreenSize::IOS_58)
71
+ (screen_size == Deliver::AppScreenshot::ScreenSize::IOS_55 || screen_size == Deliver::AppScreenshot::ScreenSize::IOS_58 || screen_size == Deliver::AppScreenshot::ScreenSize::IOS_65)
66
72
  end
67
73
 
68
74
  # Super old devices (iPhone 4)
@@ -45,6 +45,7 @@ module Produce
45
45
  c.description = 'Enable specific Application Services for a specific app on the Apple Developer Portal'
46
46
  c.example('Enable HealthKit, HomeKit and Passbook', 'fastlane produce enable_services -a com.example.app --healthkit --homekit --passbook')
47
47
 
48
+ c.option('--access-wifi', 'Enable Access WiFi')
48
49
  c.option('--app-group', 'Enable App Groups')
49
50
  c.option('--apple-pay', 'Enable Apple Pay')
50
51
  c.option('--auto-fill-credential', 'Enable AutoFill Credential')
@@ -85,6 +86,7 @@ module Produce
85
86
  c.description = 'Disable specific Application Services for a specific app on the Apple Developer Portal'
86
87
  c.example('Disable HealthKit', 'fastlane produce disable_services -a com.example.app --healthkit')
87
88
 
89
+ c.option('--access-wifi', 'Disable Access WiFi')
88
90
  c.option('--app-group', 'Disable App Groups')
89
91
  c.option('--apple-pay', 'Disable Apple Pay')
90
92
  c.option('--auto-fill-credential', 'Disable AutoFill Credential')
@@ -36,7 +36,7 @@ module Produce
36
36
  end
37
37
 
38
38
  def valid_services_for(options)
39
- allowed_keys = [:app_group, :apple_pay, :associated_domains, :auto_fill_credential, :data_protection, :game_center, :healthkit, :homekit,
39
+ allowed_keys = [:access_wifi, :app_group, :apple_pay, :associated_domains, :auto_fill_credential, :data_protection, :game_center, :healthkit, :homekit,
40
40
  :hotspot, :icloud, :in_app_purchase, :inter_app_audio, :multipath, :network_extension,
41
41
  :nfc_tag_reading, :personal_vpn, :passbook, :push_notification, :sirikit, :vpn_conf,
42
42
  :wallet, :wireless_conf]
@@ -47,6 +47,15 @@ module Produce
47
47
  def update(on, app, options)
48
48
  updated = valid_services_for(options).count
49
49
 
50
+ if options.access_wifi
51
+ UI.message("\tAccess WiFi")
52
+ if on
53
+ app.update_service(Spaceship.app_service.access_wifi.on)
54
+ else
55
+ app.update_service(Spaceship.app_service.access_wifi.off)
56
+ end
57
+ end
58
+
50
59
  if options.app_group
51
60
  UI.message("\tApp Groups")
52
61
 
@@ -1,3 +1,6 @@
1
+ require 'fastlane/action'
2
+ require 'fastlane/actions/slack'
3
+
1
4
  require_relative 'module'
2
5
 
3
6
  module Scan
@@ -12,56 +15,44 @@ module Scan
12
15
  channel = ('#' + channel) unless ['#', '@'].include?(channel[0]) # send message to channel by default
13
16
  end
14
17
 
15
- require 'slack-notifier'
16
- notifier = Slack::Notifier.new(Scan.config[:slack_url]) do
17
- defaults(channel: channel,
18
- username: 'fastlane')
19
- end
20
-
21
- attachments = []
18
+ fields = []
22
19
 
23
- if Scan.config[:slack_message]
24
- attachments << {
25
- text: Scan.config[:slack_message].to_s,
26
- color: "good"
20
+ if results[:build_errors]
21
+ fields << {
22
+ title: 'Build Errors',
23
+ value: results[:build_errors].to_s,
24
+ short: true
27
25
  }
28
26
  end
29
27
 
30
- attachments << {
31
- text: "Build Errors: #{results[:build_errors] || 0}",
32
- color: results[:build_errors].to_i > 0 ? "danger" : "good",
33
- short: true
34
- }
35
-
36
28
  if results[:failures]
37
- attachments << {
38
- text: "Test Failures: #{results[:failures]}",
39
- color: results[:failures].to_i > 0 ? "danger" : "good",
29
+ fields << {
30
+ title: 'Test Failures',
31
+ value: results[:failures].to_s,
40
32
  short: true
41
33
  }
42
34
  end
43
35
 
44
36
  if results[:tests] && results[:failures]
45
- attachments << {
46
- text: "Successful Tests: #{results[:tests] - results[:failures]}",
47
- color: "good",
37
+ fields << {
38
+ title: 'Successful Tests',
39
+ value: (results[:tests] - results[:failures]).to_s,
48
40
  short: true
49
41
  }
50
42
  end
51
43
 
52
- result = notifier.ping("#{Scan.project.app_name} Tests:",
53
- icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
54
- attachments: attachments)
55
- result = result.first
56
-
57
- if result.code.to_i == 200
58
- UI.success('Successfully sent Slack notification')
59
- elsif result.code.to_i == 404
60
- UI.error("The Slack URL you provided could not be reached (404)")
61
- else
62
- UI.error("The Slack notification could not be sent:")
63
- UI.error(result.to_s)
64
- end
44
+ Fastlane::Actions::SlackAction.run({
45
+ message: "#{Scan.project.app_name} Tests:\n#{Scan.config[:slack_message]}",
46
+ channel: channel,
47
+ slack_url: Scan.config[:slack_url].to_s,
48
+ success: results[:build_errors].to_i == 0 && results[:failures].to_i == 0,
49
+ username: 'fastlane',
50
+ icon_url: 'https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane.png',
51
+ payload: {},
52
+ attachment_properties: {
53
+ fields: fields
54
+ }
55
+ })
65
56
  end
66
57
  end
67
58
  end
@@ -53,6 +53,7 @@ module Spaceship
53
53
  UnauthorizedAccessError = Spaceship::UnauthorizedAccessError
54
54
  GatewayTimeoutError = Spaceship::GatewayTimeoutError
55
55
  InternalServerError = Spaceship::InternalServerError
56
+ BadGatewayError = Spaceship::BadGatewayError
56
57
 
57
58
  def self.hostname
58
59
  raise "You must implement self.hostname"
@@ -603,6 +604,7 @@ module Spaceship
603
604
  rescue \
604
605
  Faraday::Error::ConnectionFailed,
605
606
  Faraday::Error::TimeoutError, # New Faraday version: Faraday::TimeoutError => ex
607
+ BadGatewayError,
606
608
  AppleTimeoutError,
607
609
  GatewayTimeoutError => ex
608
610
  tries -= 1
@@ -829,6 +831,10 @@ module Spaceship
829
831
  raise AppleTimeoutError.new, "Apple 302 detected - this might be temporary server error, check https://developer.apple.com/system-status/ to see if there is a known downtime"
830
832
  end
831
833
 
834
+ if response.body.to_s.include?("<h3>Bad Gateway</h3>")
835
+ raise BadGatewayError.new, "Apple 502 detected - this might be temporary server error, try again later"
836
+ end
837
+
832
838
  return response
833
839
  end
834
840
  end
@@ -71,6 +71,9 @@ module Spaceship
71
71
  # Raised when 500 is received from App Store Connect
72
72
  class InternalServerError < BasicPreferredInfoError; end
73
73
 
74
+ # Raised when 502 is received from App Store Connect
75
+ class BadGatewayError < BasicPreferredInfoError; end
76
+
74
77
  # Raised when 504 is received from App Store Connect
75
78
  class GatewayTimeoutError < BasicPreferredInfoError; end
76
79
  end
@@ -40,7 +40,7 @@ module Spaceship
40
40
  return m
41
41
  end
42
42
 
43
- AccessWiFi = AppService.new_service("AWEQ28MY3E")
43
+ AccessWifi = AppService.new_service("AWEQ28MY3E")
44
44
  AppGroup = AppService.new_service("APG3427HIY")
45
45
  ApplePay = AppService.new_service("OM633U5T5G")
46
46
  AssociatedDomains = AppService.new_service("SKC3T5S89Y")
@@ -763,6 +763,8 @@ module Spaceship
763
763
  end
764
764
 
765
765
  def create_key!(name: nil, service_configs: nil)
766
+ fetch_csrf_token_for_keys
767
+
766
768
  params = {
767
769
  name: name,
768
770
  serviceConfigurations: service_configs,
@@ -779,6 +781,7 @@ module Spaceship
779
781
  end
780
782
 
781
783
  def revoke_key!(id: nil)
784
+ fetch_csrf_token_for_keys
782
785
  response = request(:post, 'account/auth/key/revoke', { teamId: team_id, keyId: id })
783
786
  parse_response(response)
784
787
  end
@@ -817,14 +820,26 @@ module Spaceship
817
820
  # profiles.
818
821
  # Source https://github.com/fastlane/fastlane/issues/5903
819
822
  def fetch_csrf_token_for_provisioning(mac: false)
820
- req = request(:post, "account/#{platform_slug(mac)}/profile/listProvisioningProfiles.action", {
823
+ response = request(:post, "account/#{platform_slug(mac)}/profile/listProvisioningProfiles.action", {
824
+ teamId: team_id,
825
+ pageNumber: 1,
826
+ pageSize: 1,
827
+ sort: 'name=asc'
828
+ })
829
+
830
+ parse_response(response, 'provisioningProfiles')
831
+ return nil
832
+ end
833
+
834
+ def fetch_csrf_token_for_keys
835
+ response = request(:post, 'account/auth/key/list', {
821
836
  teamId: team_id,
822
837
  pageNumber: 1,
823
838
  pageSize: 1,
824
839
  sort: 'name=asc'
825
840
  })
826
841
 
827
- parse_response(req, 'provisioningProfiles')
842
+ parse_response(response, 'keys')
828
843
  return nil
829
844
  end
830
845
  end
@@ -176,7 +176,9 @@ module Spaceship
176
176
  assert_required_params(__method__, binding)
177
177
  page_size = 40 # that's enforced by the iTC servers
178
178
  resulting_array = []
179
- initial_url = "providers/#{team_id}/apps/#{app_id}/testers?limit=#{page_size}&sort=email&order=asc"
179
+ # Sort order is set to `default` instead of `email`, because any other sort order breaks pagination
180
+ # when dealing with lots of anonymous (public link) testers: https://github.com/fastlane/fastlane/pull/13778
181
+ initial_url = "providers/#{team_id}/apps/#{app_id}/testers?limit=#{page_size}&sort=default&order=asc"
180
182
  response = request(:get, initial_url)
181
183
  link_from_response = proc do |r|
182
184
  # I weep for Swift nil chaining
metadata CHANGED
@@ -1,33 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.114.0.beta.20190116200018
4
+ version: 2.114.0
5
5
  platform: ruby
6
6
  authors:
7
- - Stefan Natchev
8
- - Jan Piotrowski
9
- - Andrew McBurney
7
+ - Danielle Tomlinson
10
8
  - Helmut Januschka
11
- - Joshua Liebowitz
12
- - Jorge Revuelta H
13
- - Felix Krause
14
- - Olivier Halligon
15
9
  - Manu Wallner
16
- - Danielle Tomlinson
10
+ - Andrew McBurney
11
+ - Luka Mirosevic
12
+ - Matthew Ellis
13
+ - Iulian Onofrei
14
+ - Stefan Natchev
15
+ - Jimmy Dee
16
+ - Jorge Revuelta H
17
17
  - Kohki Miki
18
- - Maksym Grebenets
18
+ - Jan Piotrowski
19
19
  - Jérôme Lacoste
20
+ - Olivier Halligon
21
+ - Joshua Liebowitz
22
+ - Aaron Brager
20
23
  - Josh Holtz
24
+ - Felix Krause
21
25
  - Fumiya Nakamura
22
- - Matthew Ellis
23
- - Aaron Brager
24
- - Luka Mirosevic
25
- - Iulian Onofrei
26
- - Jimmy Dee
26
+ - Maksym Grebenets
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2019-01-16 00:00:00.000000000 Z
30
+ date: 2019-01-17 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: slack-notifier
@@ -643,16 +643,22 @@ dependencies:
643
643
  name: emoji_regex
644
644
  requirement: !ruby/object:Gem::Requirement
645
645
  requirements:
646
- - - "~>"
646
+ - - ">="
647
647
  - !ruby/object:Gem::Version
648
648
  version: '0.1'
649
+ - - "<"
650
+ - !ruby/object:Gem::Version
651
+ version: '2.0'
649
652
  type: :runtime
650
653
  prerelease: false
651
654
  version_requirements: !ruby/object:Gem::Requirement
652
655
  requirements:
653
- - - "~>"
656
+ - - ">="
654
657
  - !ruby/object:Gem::Version
655
658
  version: '0.1'
659
+ - - "<"
660
+ - !ruby/object:Gem::Version
661
+ version: '2.0'
656
662
  - !ruby/object:Gem::Dependency
657
663
  name: rake
658
664
  requirement: !ruby/object:Gem::Requirement
@@ -1280,6 +1286,7 @@ files:
1280
1286
  - fastlane/swift/Fastlane.swift
1281
1287
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1282
1288
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1289
+ - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
1283
1290
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1284
1291
  - fastlane/swift/FastlaneSwiftRunner/README.txt
1285
1292
  - fastlane/swift/Gymfile.swift
@@ -1562,6 +1569,7 @@ files:
1562
1569
  - spaceship/lib/spaceship/client.rb
1563
1570
  - spaceship/lib/spaceship/commands_generator.rb
1564
1571
  - spaceship/lib/spaceship/connect_api.rb
1572
+ - spaceship/lib/spaceship/connect_api/.DS_Store
1565
1573
  - spaceship/lib/spaceship/connect_api/base.rb
1566
1574
  - spaceship/lib/spaceship/connect_api/client.rb
1567
1575
  - spaceship/lib/spaceship/du/du_client.rb
@@ -1682,24 +1690,24 @@ metadata:
1682
1690
  post_install_message:
1683
1691
  rdoc_options: []
1684
1692
  require_paths:
1693
+ - credentials_manager/lib
1694
+ - pem/lib
1695
+ - snapshot/lib
1685
1696
  - frameit/lib
1686
- - pilot/lib
1697
+ - match/lib
1698
+ - fastlane_core/lib
1699
+ - deliver/lib
1700
+ - scan/lib
1701
+ - supply/lib
1702
+ - cert/lib
1687
1703
  - fastlane/lib
1688
- - snapshot/lib
1704
+ - spaceship/lib
1705
+ - pilot/lib
1689
1706
  - gym/lib
1690
1707
  - precheck/lib
1691
- - scan/lib
1692
- - pem/lib
1693
- - produce/lib
1694
- - spaceship/lib
1695
- - fastlane_core/lib
1696
- - supply/lib
1697
- - deliver/lib
1698
- - credentials_manager/lib
1699
- - match/lib
1700
1708
  - screengrab/lib
1701
1709
  - sigh/lib
1702
- - cert/lib
1710
+ - produce/lib
1703
1711
  required_ruby_version: !ruby/object:Gem::Requirement
1704
1712
  requirements:
1705
1713
  - - ">="
@@ -1707,12 +1715,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
1707
1715
  version: 2.0.0
1708
1716
  required_rubygems_version: !ruby/object:Gem::Requirement
1709
1717
  requirements:
1710
- - - ">"
1718
+ - - ">="
1711
1719
  - !ruby/object:Gem::Version
1712
- version: 1.3.1
1720
+ version: '0'
1713
1721
  requirements: []
1714
1722
  rubyforge_project:
1715
- rubygems_version: 2.6.8
1723
+ rubygems_version: 2.5.2.3
1716
1724
  signing_key:
1717
1725
  specification_version: 4
1718
1726
  summary: The easiest way to automate beta deployments and releases for your iOS and