fastlane 2.192.0 → 2.193.0

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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +84 -84
  3. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +1 -1
  5. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +3 -1
  6. data/fastlane/lib/fastlane/actions/zip.rb +2 -2
  7. data/fastlane/lib/fastlane/version.rb +1 -1
  8. data/fastlane/swift/Deliverfile.swift +1 -1
  9. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  10. data/fastlane/swift/Fastlane.swift +20 -8
  11. data/fastlane/swift/Gymfile.swift +1 -1
  12. data/fastlane/swift/GymfileProtocol.swift +1 -1
  13. data/fastlane/swift/Matchfile.swift +1 -1
  14. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  15. data/fastlane/swift/Precheckfile.swift +1 -1
  16. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  17. data/fastlane/swift/Scanfile.swift +1 -1
  18. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  19. data/fastlane/swift/Screengrabfile.swift +1 -1
  20. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  21. data/fastlane/swift/Snapshotfile.swift +1 -1
  22. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  23. data/fastlane/swift/formatting/Brewfile.lock.json +2 -2
  24. data/fastlane_core/lib/fastlane_core/build_watcher.rb +25 -6
  25. data/match/lib/match/runner.rb +5 -5
  26. data/match/lib/match/storage/.git_storage.rb.swp +0 -0
  27. data/match/lib/match/storage/.interface.rb.swp +0 -0
  28. data/pilot/lib/pilot/build_manager.rb +14 -3
  29. data/pilot/lib/pilot/manager.rb +3 -1
  30. data/pilot/lib/pilot/options.rb +20 -1
  31. data/spaceship/lib/spaceship/connect_api/models/build.rb +4 -0
  32. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  33. metadata +23 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1c0c051ec3343adfcc8dcc927954b9fe5e76bf56d813be5d4f0823695dcb835
4
- data.tar.gz: 328239727a6f80cca28a6524784cb2f4e1b39454f0c6f2e2cf036735c26f6811
3
+ metadata.gz: 599ea65ab3c0831e81c0a657ecca5362ade26af48cd9818943315dd956d161df
4
+ data.tar.gz: d818284a88b0e792b650e2ef26acf045a7415ca2f44015a21b3c69a0d53dbc00
5
5
  SHA512:
6
- metadata.gz: c430d54e72ceb927d096d02ac12578e196194405a6398768656ded1b0274d6fdb1988487d400b6c3e7434e02b82f372ac200959f524afaa9374d385a4ab00a46
7
- data.tar.gz: 3800cfae6b4add96d08f98fa780c721d2444c4e81e1bf24e437e5e7e9f455682b198a7bc63246738fd758da7f0437dfb311d410632b0d22faa4af0e58e7d0301
6
+ metadata.gz: 3b9fdbf6f24a19127e1b1a831256e4d9b6ebe0fa3929acdba9279e2c994200112ffb5dcfd04b85f274bc6d36be255d92edc2815e35d786c98fa3f7c05a9ff4ad
7
+ data.tar.gz: 34af6c765f4997ad611331d577de9575daaadc06f1e738c51603b0a4029da9bac656db2a2e67aae6b5da723e6c5bf666d57cc0b11a23e6348a168ea0773c1c3c
data/README.md CHANGED
@@ -35,29 +35,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='stefan-natchev'>
39
- <a href='https://github.com/snatchev'>
40
- <img src='https://github.com/snatchev.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
43
- </td>
44
- <td id='maksym-grebenets'>
45
- <a href='https://github.com/mgrebenets'>
46
- <img src='https://github.com/mgrebenets.png' width='140px;'>
38
+ <td id='roger-oba'>
39
+ <a href='https://github.com/rogerluan'>
40
+ <img src='https://github.com/rogerluan.png' width='140px;'>
47
41
  </a>
48
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
49
43
  </td>
50
- <td id='aaron-brager'>
51
- <a href='https://github.com/getaaron'>
52
- <img src='https://github.com/getaaron.png' width='140px;'>
44
+ <td id='helmut-januschka'>
45
+ <a href='https://github.com/hjanuschka'>
46
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
53
47
  </a>
54
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
55
49
  </td>
56
- <td id='satoshi-namai'>
57
- <a href='https://github.com/ainame'>
58
- <img src='https://github.com/ainame.png' width='140px;'>
50
+ <td id='manish-rathi'>
51
+ <a href='https://github.com/crazymanish'>
52
+ <img src='https://github.com/crazymanish.png' width='140px;'>
59
53
  </a>
60
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
61
55
  </td>
62
56
  <td id='jorge-revuelta-h'>
63
57
  <a href='https://github.com/minuscorp'>
@@ -65,37 +59,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
65
59
  </a>
66
60
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
67
61
  </td>
62
+ <td id='jimmy-dee'>
63
+ <a href='https://github.com/jdee'>
64
+ <img src='https://github.com/jdee.png' width='140px;'>
65
+ </a>
66
+ <h4 align='center'>Jimmy Dee</h4>
67
+ </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='olivier-halligon'>
71
- <a href='https://github.com/AliSoftware'>
72
- <img src='https://github.com/AliSoftware.png' width='140px;'>
70
+ <td id='danielle-tomlinson'>
71
+ <a href='https://github.com/endocrimes'>
72
+ <img src='https://github.com/endocrimes.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
75
75
  </td>
76
- <td id='manu-wallner'>
77
- <a href='https://github.com/milch'>
78
- <img src='https://github.com/milch.png' width='140px;'>
76
+ <td id='felix-krause'>
77
+ <a href='https://github.com/KrauseFx'>
78
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
81
81
  </td>
82
- <td id='joshua-liebowitz'>
83
- <a href='https://github.com/taquitos'>
84
- <img src='https://github.com/taquitos.png' width='140px;'>
82
+ <td id='andrew-mcburney'>
83
+ <a href='https://github.com/armcburney'>
84
+ <img src='https://github.com/armcburney.png' width='140px;'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
87
87
  </td>
88
- <td id='luka-mirosevic'>
89
- <a href='https://github.com/lmirosevic'>
90
- <img src='https://github.com/lmirosevic.png' width='140px;'>
88
+ <td id='aaron-brager'>
89
+ <a href='https://github.com/getaaron'>
90
+ <img src='https://github.com/getaaron.png' width='140px;'>
91
91
  </a>
92
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
93
93
  </td>
94
- <td id='jan-piotrowski'>
95
- <a href='https://github.com/janpio'>
96
- <img src='https://github.com/janpio.png' width='140px;'>
94
+ <td id='satoshi-namai'>
95
+ <a href='https://github.com/ainame'>
96
+ <img src='https://github.com/ainame.png' width='140px;'>
97
97
  </a>
98
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
@@ -105,23 +105,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
105
105
  </a>
106
106
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
107
107
  </td>
108
- <td id='helmut-januschka'>
109
- <a href='https://github.com/hjanuschka'>
110
- <img src='https://github.com/hjanuschka.png' width='140px;'>
111
- </a>
112
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
113
- </td>
114
- <td id='jérôme-lacoste'>
115
- <a href='https://github.com/lacostej'>
116
- <img src='https://github.com/lacostej.png' width='140px;'>
117
- </a>
118
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
119
- </td>
120
- <td id='matthew-ellis'>
121
- <a href='https://github.com/matthewellis'>
122
- <img src='https://github.com/matthewellis.png' width='140px;'>
108
+ <td id='jan-piotrowski'>
109
+ <a href='https://github.com/janpio'>
110
+ <img src='https://github.com/janpio.png' width='140px;'>
123
111
  </a>
124
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
125
113
  </td>
126
114
  <td id='fumiya-nakamura'>
127
115
  <a href='https://github.com/nafu'>
@@ -129,37 +117,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
129
117
  </a>
130
118
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
131
119
  </td>
132
- </tr>
133
- <tr>
134
- <td id='danielle-tomlinson'>
135
- <a href='https://github.com/endocrimes'>
136
- <img src='https://github.com/endocrimes.png' width='140px;'>
120
+ <td id='maksym-grebenets'>
121
+ <a href='https://github.com/mgrebenets'>
122
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
137
123
  </a>
138
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
139
125
  </td>
140
- <td id='roger-oba'>
141
- <a href='https://github.com/rogerluan'>
142
- <img src='https://github.com/rogerluan.png' width='140px;'>
126
+ <td id='kohki-miki'>
127
+ <a href='https://github.com/giginet'>
128
+ <img src='https://github.com/giginet.png' width='140px;'>
143
129
  </a>
144
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
145
131
  </td>
132
+ </tr>
133
+ <tr>
146
134
  <td id='iulian-onofrei'>
147
135
  <a href='https://github.com/revolter'>
148
136
  <img src='https://github.com/revolter.png' width='140px;'>
149
137
  </a>
150
138
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
151
139
  </td>
152
- <td id='jimmy-dee'>
153
- <a href='https://github.com/jdee'>
154
- <img src='https://github.com/jdee.png' width='140px;'>
140
+ <td id='matthew-ellis'>
141
+ <a href='https://github.com/matthewellis'>
142
+ <img src='https://github.com/matthewellis.png' width='140px;'>
155
143
  </a>
156
- <h4 align='center'>Jimmy Dee</h4>
144
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
157
145
  </td>
158
- <td id='felix-krause'>
159
- <a href='https://github.com/KrauseFx'>
160
- <img src='https://github.com/KrauseFx.png' width='140px;'>
146
+ <td id='stefan-natchev'>
147
+ <a href='https://github.com/snatchev'>
148
+ <img src='https://github.com/snatchev.png' width='140px;'>
161
149
  </a>
162
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
151
+ </td>
152
+ <td id='olivier-halligon'>
153
+ <a href='https://github.com/AliSoftware'>
154
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
155
+ </a>
156
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
157
+ </td>
158
+ <td id='jérôme-lacoste'>
159
+ <a href='https://github.com/lacostej'>
160
+ <img src='https://github.com/lacostej.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
163
163
  </td>
164
164
  </tr>
165
165
  <tr>
@@ -169,23 +169,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
169
169
  </a>
170
170
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
171
171
  </td>
172
- <td id='manish-rathi'>
173
- <a href='https://github.com/crazymanish'>
174
- <img src='https://github.com/crazymanish.png' width='140px;'>
172
+ <td id='joshua-liebowitz'>
173
+ <a href='https://github.com/taquitos'>
174
+ <img src='https://github.com/taquitos.png' width='140px;'>
175
175
  </a>
176
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
177
177
  </td>
178
- <td id='kohki-miki'>
179
- <a href='https://github.com/giginet'>
180
- <img src='https://github.com/giginet.png' width='140px;'>
178
+ <td id='luka-mirosevic'>
179
+ <a href='https://github.com/lmirosevic'>
180
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
181
181
  </a>
182
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
183
183
  </td>
184
- <td id='andrew-mcburney'>
185
- <a href='https://github.com/armcburney'>
186
- <img src='https://github.com/armcburney.png' width='140px;'>
184
+ <td id='manu-wallner'>
185
+ <a href='https://github.com/milch'>
186
+ <img src='https://github.com/milch.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
189
189
  </td>
190
190
  <td id='josh-holtz'>
191
191
  <a href='https://github.com/joshdholtz'>
@@ -64,7 +64,7 @@ module Fastlane
64
64
  ['SIGH_PROFILE_PATHS', 'Paths in which certificates, key and profile are exported'],
65
65
  ['SIGH_UUID', 'UUID (Universally Unique IDentifier) of a provisioning profile'],
66
66
  ['SIGH_NAME', 'The name of the profile'],
67
- ['SIGH_PROFILE_TYPE', 'The profile type, can be appstore, adhoc, development, enterprise']
67
+ ['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in `build_app` as a default value for `export_method`']
68
68
  ]
69
69
  end
70
70
 
@@ -82,7 +82,7 @@ module Fastlane
82
82
  def self.output
83
83
  [
84
84
  ['MATCH_PROVISIONING_PROFILE_MAPPING', 'The match provisioning profile mapping'],
85
- ['SIGH_PROFILE_TYPE', 'The profile type, can be appstore, adhoc, development, enterprise']
85
+ ['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, can be used in `build_app` as a default value for `export_method`']
86
86
  ]
87
87
  end
88
88
 
@@ -13,6 +13,8 @@ module Fastlane
13
13
  unless distribute_only
14
14
  values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
15
15
  values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
16
+ values[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
17
+ values[:pkg] = File.expand_path(values[:pkg]) if values[:pkg]
16
18
  end
17
19
 
18
20
  # Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
@@ -117,7 +119,7 @@ module Fastlane
117
119
  end
118
120
 
119
121
  def self.is_supported?(platform)
120
- [:ios].include?(platform)
122
+ [:ios, :mac, :tvos].include?(platform)
121
123
  end
122
124
  end
123
125
  end
@@ -10,8 +10,8 @@ module Fastlane
10
10
  @verbose = params[:verbose]
11
11
  @password = params[:password]
12
12
  @symlinks = params[:symlinks]
13
- @include = params[:include]
14
- @exclude = params[:exclude]
13
+ @include = params[:include] || []
14
+ @exclude = params[:exclude] || []
15
15
 
16
16
  @output_path += ".zip" unless @output_path.end_with?(".zip")
17
17
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.192.0'.freeze
2
+ VERSION = '2.193.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 = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -260,4 +260,4 @@ public extension DeliverfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.80]
263
+ // FastlaneRunnerAPIVersion [0.9.81]
@@ -7508,6 +7508,7 @@ public func pem(development: OptionalConfigValue<Bool> = .fastlaneDefault(false)
7508
7508
  - appPlatform: The platform to use (optional)
7509
7509
  - appleId: Apple ID property in the App Information section in App Store Connect
7510
7510
  - ipa: Path to the ipa file to upload
7511
+ - pkg: Path to your pkg file
7511
7512
  - demoAccountRequired: Do you need a demo account when Apple does review?
7512
7513
  - betaAppReviewInfo: Beta app review information for contact info and demo account
7513
7514
  - localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
@@ -7546,9 +7547,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7546
7547
  apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
7547
7548
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7548
7549
  appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7549
- appPlatform: String = "ios",
7550
+ appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7550
7551
  appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7551
7552
  ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7553
+ pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
7552
7554
  demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
7553
7555
  betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
7554
7556
  localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -7584,9 +7586,10 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7584
7586
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
7585
7587
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
7586
7588
  let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
7587
- let appPlatformArg = RubyCommand.Argument(name: "app_platform", value: appPlatform, type: nil)
7589
+ let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
7588
7590
  let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
7589
7591
  let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
7592
+ let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
7590
7593
  let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
7591
7594
  let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
7592
7595
  let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
@@ -7624,6 +7627,7 @@ public func pilot(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefault(ni
7624
7627
  appPlatformArg,
7625
7628
  appleIdArg,
7626
7629
  ipaArg,
7630
+ pkgArg,
7627
7631
  demoAccountRequiredArg,
7628
7632
  betaAppReviewInfoArg,
7629
7633
  localizedAppInfoArg,
@@ -11190,6 +11194,7 @@ public func testfairy(apiKey: String,
11190
11194
  - appPlatform: The platform to use (optional)
11191
11195
  - appleId: Apple ID property in the App Information section in App Store Connect
11192
11196
  - ipa: Path to the ipa file to upload
11197
+ - pkg: Path to your pkg file
11193
11198
  - demoAccountRequired: Do you need a demo account when Apple does review?
11194
11199
  - betaAppReviewInfo: Beta app review information for contact info and demo account
11195
11200
  - localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
@@ -11228,9 +11233,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11228
11233
  apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
11229
11234
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11230
11235
  appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11231
- appPlatform: String = "ios",
11236
+ appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11232
11237
  appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11233
11238
  ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11239
+ pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
11234
11240
  demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
11235
11241
  betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
11236
11242
  localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -11266,9 +11272,10 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11266
11272
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
11267
11273
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
11268
11274
  let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
11269
- let appPlatformArg = RubyCommand.Argument(name: "app_platform", value: appPlatform, type: nil)
11275
+ let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
11270
11276
  let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
11271
11277
  let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
11278
+ let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
11272
11279
  let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
11273
11280
  let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
11274
11281
  let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
@@ -11306,6 +11313,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
11306
11313
  appPlatformArg,
11307
11314
  appleIdArg,
11308
11315
  ipaArg,
11316
+ pkgArg,
11309
11317
  demoAccountRequiredArg,
11310
11318
  betaAppReviewInfoArg,
11311
11319
  localizedAppInfoArg,
@@ -12526,6 +12534,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
12526
12534
  - appPlatform: The platform to use (optional)
12527
12535
  - appleId: Apple ID property in the App Information section in App Store Connect
12528
12536
  - ipa: Path to the ipa file to upload
12537
+ - pkg: Path to your pkg file
12529
12538
  - demoAccountRequired: Do you need a demo account when Apple does review?
12530
12539
  - betaAppReviewInfo: Beta app review information for contact info and demo account
12531
12540
  - localizedAppInfo: Localized beta app test info for description, feedback email, marketing url, and privacy policy
@@ -12564,9 +12573,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12564
12573
  apiKey: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12565
12574
  username: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12566
12575
  appIdentifier: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12567
- appPlatform: String = "ios",
12576
+ appPlatform: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12568
12577
  appleId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12569
12578
  ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12579
+ pkg: OptionalConfigValue<String?> = .fastlaneDefault(nil),
12570
12580
  demoAccountRequired: OptionalConfigValue<Bool?> = .fastlaneDefault(nil),
12571
12581
  betaAppReviewInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
12572
12582
  localizedAppInfo: OptionalConfigValue<[String: Any]?> = .fastlaneDefault(nil),
@@ -12602,9 +12612,10 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12602
12612
  let apiKeyArg = apiKey.asRubyArgument(name: "api_key", type: nil)
12603
12613
  let usernameArg = username.asRubyArgument(name: "username", type: nil)
12604
12614
  let appIdentifierArg = appIdentifier.asRubyArgument(name: "app_identifier", type: nil)
12605
- let appPlatformArg = RubyCommand.Argument(name: "app_platform", value: appPlatform, type: nil)
12615
+ let appPlatformArg = appPlatform.asRubyArgument(name: "app_platform", type: nil)
12606
12616
  let appleIdArg = appleId.asRubyArgument(name: "apple_id", type: nil)
12607
12617
  let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
12618
+ let pkgArg = pkg.asRubyArgument(name: "pkg", type: nil)
12608
12619
  let demoAccountRequiredArg = demoAccountRequired.asRubyArgument(name: "demo_account_required", type: nil)
12609
12620
  let betaAppReviewInfoArg = betaAppReviewInfo.asRubyArgument(name: "beta_app_review_info", type: nil)
12610
12621
  let localizedAppInfoArg = localizedAppInfo.asRubyArgument(name: "localized_app_info", type: nil)
@@ -12642,6 +12653,7 @@ public func uploadToTestflight(apiKeyPath: OptionalConfigValue<String?> = .fastl
12642
12653
  appPlatformArg,
12643
12654
  appleIdArg,
12644
12655
  ipaArg,
12656
+ pkgArg,
12645
12657
  demoAccountRequiredArg,
12646
12658
  betaAppReviewInfoArg,
12647
12659
  localizedAppInfoArg,
@@ -13049,7 +13061,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13049
13061
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13050
13062
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13051
13063
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13052
- ideFoundationPath: String = "/Applications/Xcode-13.beta.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13064
+ ideFoundationPath: String = "/Applications/Xcode-beta.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13053
13065
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13054
13066
  {
13055
13067
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13251,4 +13263,4 @@ public let snapshotfile = Snapshotfile()
13251
13263
 
13252
13264
  // Please don't remove the lines below
13253
13265
  // They are used to detect outdated files
13254
- // FastlaneRunnerAPIVersion [0.9.133]
13266
+ // FastlaneRunnerAPIVersion [0.9.134]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -196,4 +196,4 @@ public extension GymfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.83]
199
+ // FastlaneRunnerAPIVersion [0.9.84]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.77]
187
+ // FastlaneRunnerAPIVersion [0.9.78]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.76]
55
+ // FastlaneRunnerAPIVersion [0.9.77]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -296,4 +296,4 @@ public extension ScanfileProtocol {
296
296
 
297
297
  // Please don't remove the lines below
298
298
  // They are used to detect outdated files
299
- // FastlaneRunnerAPIVersion [0.9.88]
299
+ // FastlaneRunnerAPIVersion [0.9.89]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.78]
99
+ // FastlaneRunnerAPIVersion [0.9.79]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.192.0
20
+ // Generated with fastlane 2.193.0
@@ -200,4 +200,4 @@ public extension SnapshotfileProtocol {
200
200
 
201
201
  // Please don't remove the lines below
202
202
  // They are used to detect outdated files
203
- // FastlaneRunnerAPIVersion [0.9.72]
203
+ // FastlaneRunnerAPIVersion [0.9.73]
@@ -43,9 +43,9 @@
43
43
  "macOS": "10.15.7"
44
44
  },
45
45
  "big_sur": {
46
- "HOMEBREW_VERSION": "3.2.9",
46
+ "HOMEBREW_VERSION": "3.2.10-18-g7d56615",
47
47
  "HOMEBREW_PREFIX": "/opt/homebrew",
48
- "Homebrew/homebrew-core": "d2c0a344f23a132f6fdf06a8b1d6d0eaaec54a21",
48
+ "Homebrew/homebrew-core": "17ef60082350d5eea95728f146863b767e2257f2",
49
49
  "CLT": "12.5.1.0.1.1623191612",
50
50
  "Xcode": "13.0",
51
51
  "macOS": "11.5.2"
@@ -11,7 +11,7 @@ module FastlaneCore
11
11
 
12
12
  class << self
13
13
  # @return The build we waited for. This method will always return a build
14
- def wait_for_build_processing_to_be_complete(app_id: nil, platform: nil, train_version: nil, app_version: nil, build_version: nil, poll_interval: 10, timeout_duration: nil, strict_build_watch: false, return_when_build_appears: false, return_spaceship_testflight_build: true, select_latest: false)
14
+ def wait_for_build_processing_to_be_complete(app_id: nil, platform: nil, train_version: nil, app_version: nil, build_version: nil, poll_interval: 10, timeout_duration: nil, strict_build_watch: false, return_when_build_appears: false, return_spaceship_testflight_build: true, select_latest: false, wait_for_build_beta_detail_processing: false)
15
15
  # Warn about train_version being removed in the future
16
16
  if train_version
17
17
  UI.deprecated(":train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.")
@@ -41,13 +41,13 @@ module FastlaneCore
41
41
  showed_info = true
42
42
  end
43
43
 
44
- report_status(build: matched_build)
44
+ report_status(build: matched_build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing)
45
45
 
46
46
  # Processing of builds by AppStoreConnect can be a very time consuming task and will
47
47
  # block the worker running this task until it is completed. In some cases,
48
48
  # having a build resource appear in AppStoreConnect (matched_build) may be enough (i.e. setting a changelog)
49
49
  # so here we may choose to skip the full processing of the build if return_when_build_appears is true
50
- if matched_build && (return_when_build_appears || matched_build.processed?)
50
+ if matched_build && (return_when_build_appears || processed?(build: matched_build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing))
51
51
 
52
52
  if !app_version.nil? && app_version != app_version_queried
53
53
  UI.important("App version is #{app_version} but build was found while querying #{app_version_queried}")
@@ -145,10 +145,29 @@ module FastlaneCore
145
145
  return nil
146
146
  end
147
147
 
148
- def report_status(build: nil)
149
- if build && !build.processed?
148
+ def processed?(build: nil, wait_for_build_beta_detail_processing: false)
149
+ return false unless build
150
+
151
+ is_processed = build.processed?
152
+
153
+ # App Store Connect API has multiple build processing states
154
+ # builds have one processing status
155
+ # buildBetaDetails have two processing statues (internal and external testing)
156
+ #
157
+ # If set, this method will only return true if all three statuses are complete
158
+ if wait_for_build_beta_detail_processing
159
+ is_processed &&= build.build_beta_detail.processed?
160
+ end
161
+
162
+ return is_processed
163
+ end
164
+
165
+ def report_status(build: nil, wait_for_build_beta_detail_processing: false)
166
+ is_processed = processed?(build: build, wait_for_build_beta_detail_processing: wait_for_build_beta_detail_processing)
167
+
168
+ if build && !is_processed
150
169
  UI.message("Waiting for App Store Connect to finish processing the new build (#{build.app_version} - #{build.version}) for #{build.platform}")
151
- elsif build && build.processed?
170
+ elsif build && is_processed
152
171
  UI.success("Successfully finished processing the build #{build.app_version} - #{build.version} for #{build.platform}")
153
172
  else
154
173
  UI.message("Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)")
@@ -191,12 +191,12 @@ module Match
191
191
  UI.verbose("Certificate '#{File.basename(cert_path)}' is already installed on this machine")
192
192
  else
193
193
  Utils.import(cert_path, params[:keychain_name], password: params[:keychain_password])
194
- end
195
194
 
196
- # Import the private key
197
- # there seems to be no good way to check if it's already installed - so just install it
198
- # Key will only be added to the partition list if it isn't already installed
199
- Utils.import(keys.last, params[:keychain_name], password: params[:keychain_password])
195
+ # Import the private key
196
+ # there seems to be no good way to check if it's already installed - so just install it
197
+ # Key will only be added to the partition list if it isn't already installed
198
+ Utils.import(keys.last, params[:keychain_name], password: params[:keychain_password])
199
+ end
200
200
  else
201
201
  UI.message("Skipping installation of certificate as it would not work on this operating system.")
202
202
  end
@@ -16,7 +16,7 @@ module Pilot
16
16
  should_login_in_start = options[:apple_id].nil?
17
17
  start(options, should_login: should_login_in_start)
18
18
 
19
- UI.user_error!("No ipa file given") unless config[:ipa]
19
+ UI.user_error!("No ipa or pkg file given") if config[:ipa].nil? && config[:pkg].nil?
20
20
 
21
21
  check_for_changelog_or_whats_new!(options)
22
22
 
@@ -25,10 +25,17 @@ module Pilot
25
25
  dir = Dir.mktmpdir
26
26
 
27
27
  platform = fetch_app_platform
28
- package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: fetch_app_id,
28
+ if options[:ipa]
29
+ package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: fetch_app_id,
29
30
  ipa_path: options[:ipa],
30
31
  package_path: dir,
31
32
  platform: platform)
33
+ else
34
+ package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(app_id: fetch_app_id,
35
+ pkg_path: options[:pkg],
36
+ package_path: dir,
37
+ platform: platform)
38
+ end
32
39
 
33
40
  transporter = transporter_for_selected_team(options)
34
41
  result = transporter.upload(package_path: package_path)
@@ -94,6 +101,9 @@ module Pilot
94
101
  if config[:ipa]
95
102
  app_version = FastlaneCore::IpaFileAnalyser.fetch_app_version(config[:ipa])
96
103
  app_build = FastlaneCore::IpaFileAnalyser.fetch_app_build(config[:ipa])
104
+ elsif config[:pkg]
105
+ app_version = FastlaneCore::PkgFileAnalyser.fetch_app_version(config[:pkg])
106
+ app_build = FastlaneCore::PkgFileAnalyser.fetch_app_build(config[:pkg])
97
107
  else
98
108
  app_version = config[:app_version]
99
109
  app_build = config[:build_number]
@@ -108,7 +118,8 @@ module Pilot
108
118
  timeout_duration: config[:wait_processing_timeout_duration],
109
119
  return_when_build_appears: return_when_build_appears,
110
120
  return_spaceship_testflight_build: false,
111
- select_latest: config[:distribute_only]
121
+ select_latest: config[:distribute_only],
122
+ wait_for_build_beta_detail_processing: true
112
123
  )
113
124
 
114
125
  unless latest_build.app_version == app_version && latest_build.version == app_build
@@ -73,7 +73,8 @@ module Pilot
73
73
 
74
74
  def fetch_app_identifier
75
75
  result = config[:app_identifier]
76
- result ||= FastlaneCore::IpaFileAnalyser.fetch_app_identifier(config[:ipa])
76
+ result ||= FastlaneCore::IpaFileAnalyser.fetch_app_identifier(config[:ipa]) if config[:ipa]
77
+ result ||= FastlaneCore::PkgFileAnalyser.fetch_app_identifier(config[:pkg]) if config[:pkg]
77
78
  result ||= UI.input("Please enter the app's bundle identifier: ")
78
79
  UI.verbose("App identifier (#{result})")
79
80
  return result
@@ -82,6 +83,7 @@ module Pilot
82
83
  def fetch_app_platform(required: true)
83
84
  result = config[:app_platform]
84
85
  result ||= FastlaneCore::IpaFileAnalyser.fetch_app_platform(config[:ipa]) if config[:ipa]
86
+ result ||= FastlaneCore::PkgFileAnalyser.fetch_app_platform(config[:pkg]) if config[:pkg]
85
87
  if required
86
88
  result ||= UI.input("Please enter the app's platform (appletvos, ios, osx): ")
87
89
  UI.user_error!("App Platform must be ios, appletvos, or osx") unless ['ios', 'appletvos', 'osx'].include?(result)
@@ -48,7 +48,6 @@ module Pilot
48
48
  env_name: "PILOT_PLATFORM",
49
49
  description: "The platform to use (optional)",
50
50
  optional: true,
51
- default_value: 'ios',
52
51
  verify_block: proc do |value|
53
52
  UI.user_error!("The platform can only be ios, appletvos, or osx") unless ['ios', 'appletvos', 'osx'].include?(value)
54
53
  end),
@@ -82,6 +81,26 @@ module Pilot
82
81
  value = File.expand_path(value)
83
82
  UI.user_error!("Could not find ipa file at path '#{value}'") unless File.exist?(value)
84
83
  UI.user_error!("'#{value}' doesn't seem to be an ipa file") unless value.end_with?(".ipa")
84
+ end,
85
+ conflicting_options: [:pkg],
86
+ conflict_block: proc do |value|
87
+ UI.user_error!("You can't use 'ipa' and '#{value.key}' options in one run.")
88
+ end),
89
+ FastlaneCore::ConfigItem.new(key: :pkg,
90
+ short_option: "-P",
91
+ optional: true,
92
+ env_name: "PILOT_PKG",
93
+ description: "Path to your pkg file",
94
+ code_gen_sensitive: true,
95
+ default_value: Dir["*.pkg"].sort_by { |x| File.mtime(x) }.last,
96
+ default_value_dynamic: true,
97
+ verify_block: proc do |value|
98
+ UI.user_error!("Could not find pkg file at path '#{File.expand_path(value)}'") unless File.exist?(value)
99
+ UI.user_error!("'#{value}' doesn't seem to be a pkg file") unless value.end_with?(".pkg")
100
+ end,
101
+ conflicting_options: [:ipa],
102
+ conflict_block: proc do |value|
103
+ UI.user_error!("You can't use 'pkg' and '#{value.key}' options in one run.")
85
104
  end),
86
105
 
87
106
  # app review info
@@ -86,6 +86,10 @@ module Spaceship
86
86
  return build_beta_detail.nil? == false && build_beta_detail.ready_for_internal_testing?
87
87
  end
88
88
 
89
+ def ready_for_external_testing?
90
+ return build_beta_detail.nil? == false && build_beta_detail.ready_for_external_testing?
91
+ end
92
+
89
93
  def ready_for_beta_submission?
90
94
  raise "No build_beta_detail included" unless build_beta_detail
91
95
  return build_beta_detail.ready_for_beta_submission?
@@ -53,6 +53,10 @@ module Spaceship
53
53
  return internal_build_state == InternalState::READY_FOR_BETA_TESTING
54
54
  end
55
55
 
56
+ def processed?
57
+ return internal_build_state != InternalState::PROCESSING && external_build_state != ExternalState::PROCESSING
58
+ end
59
+
56
60
  def ready_for_beta_submission?
57
61
  return external_build_state == ExternalState::READY_FOR_BETA_SUBMISSION
58
62
  end
metadata CHANGED
@@ -1,38 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.192.0
4
+ version: 2.193.0
5
5
  platform: ruby
6
6
  authors:
7
- - Jan Piotrowski
8
- - Manu Wallner
9
- - Jérôme Lacoste
10
- - Helmut Januschka
11
- - Daniel Jankowski
12
- - Satoshi Namai
13
- - Joshua Liebowitz
14
- - Roger Oba
15
- - Josh Holtz
16
- - Matthew Ellis
17
- - Andrew McBurney
7
+ - Jimmy Dee
18
8
  - Aaron Brager
19
- - Stefan Natchev
9
+ - Fumiya Nakamura
20
10
  - Manish Rathi
21
- - Felix Krause
11
+ - Olivier Halligon
12
+ - Josh Holtz
13
+ - Andrew McBurney
14
+ - Danielle Tomlinson
22
15
  - Jorge Revuelta H
16
+ - Luka Mirosevic
17
+ - Iulian Onofrei
18
+ - Matthew Ellis
19
+ - Helmut Januschka
20
+ - Jan Piotrowski
21
+ - Daniel Jankowski
22
+ - Joshua Liebowitz
23
+ - Manu Wallner
24
+ - Jérôme Lacoste
23
25
  - Max Ott
26
+ - Felix Krause
27
+ - Stefan Natchev
28
+ - Satoshi Namai
24
29
  - Maksym Grebenets
25
- - Iulian Onofrei
26
- - Olivier Halligon
27
- - Jimmy Dee
28
- - Danielle Tomlinson
29
30
  - Kohki Miki
30
- - Fumiya Nakamura
31
- - Luka Mirosevic
31
+ - Roger Oba
32
32
  autorequire:
33
33
  bindir: bin
34
34
  cert_chain: []
35
- date: 2021-08-24 00:00:00.000000000 Z
35
+ date: 2021-08-31 00:00:00.000000000 Z
36
36
  dependencies:
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: xcodeproj
@@ -1509,6 +1509,8 @@ files:
1509
1509
  - match/lib/match/setup.rb
1510
1510
  - match/lib/match/spaceship_ensure.rb
1511
1511
  - match/lib/match/storage.rb
1512
+ - match/lib/match/storage/.git_storage.rb.swp
1513
+ - match/lib/match/storage/.interface.rb.swp
1512
1514
  - match/lib/match/storage/git_storage.rb
1513
1515
  - match/lib/match/storage/google_cloud_storage.rb
1514
1516
  - match/lib/match/storage/interface.rb