fastlane 2.192.0 → 2.193.0

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