fastlane 2.164.0 → 2.165.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -68
  3. data/cert/lib/cert/runner.rb +1 -1
  4. data/{match/lib/match/.options.rb.swp → fastlane/lib/fastlane/actions/.download_dsyms.rb.swp} +0 -0
  5. data/fastlane/lib/fastlane/version.rb +1 -1
  6. data/fastlane/swift/Deliverfile.swift +1 -1
  7. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  8. data/fastlane/swift/Fastlane.swift +4 -4
  9. data/fastlane/swift/Gymfile.swift +1 -1
  10. data/fastlane/swift/GymfileProtocol.swift +1 -1
  11. data/fastlane/swift/Matchfile.swift +1 -1
  12. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  13. data/fastlane/swift/Precheckfile.swift +1 -1
  14. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  15. data/fastlane/swift/Scanfile.swift +1 -1
  16. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  17. data/fastlane/swift/Screengrabfile.swift +1 -1
  18. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  19. data/fastlane/swift/Snapshotfile.swift +1 -1
  20. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  21. data/match/lib/match/options.rb +1 -1
  22. data/sigh/lib/sigh/runner.rb +2 -2
  23. data/spaceship/lib/spaceship/connect_api.rb +2 -0
  24. data/spaceship/lib/spaceship/connect_api/client.rb +7 -4
  25. data/spaceship/lib/spaceship/connect_api/models/app.rb +51 -0
  26. data/spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb +43 -0
  27. data/spaceship/lib/spaceship/connect_api/models/custom_app_user.rb +41 -0
  28. data/spaceship/lib/spaceship/connect_api/spaceship.rb +7 -4
  29. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +71 -0
  30. metadata +20 -20
  31. data/match/lib/match/.commands_generator.rb.swp +0 -0
  32. data/match/lib/match/.importer.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8cdb3738f1c646ea1cbff438e63895c5001d876fb9aeb585c1750ee61cbd86a4
4
- data.tar.gz: e19bd6d624de20687b690df55a2f906a69eecc9ea2ee45bf6ad6b58eb64c468c
3
+ metadata.gz: 314c607226cc1a8a4f1c7e23e6087f11ba72d05d1b95c55b4dc2477bc1a7edbe
4
+ data.tar.gz: 211a75deb1403c2d94ee7542b48f361e88780251539d5fb57384da76f8914549
5
5
  SHA512:
6
- metadata.gz: da9f5620643df9f24fbded5fe29445ad72c9601d7c370a8092d1874ab22f629389fc9c43cbed71a8fa27667d91c425aa1666a581bbd2f1b34578dc0067ba4684
7
- data.tar.gz: a62090282896c1d8c65b2c789067a82f09f60089bc4fc963c104d4bfae0ef2d89e859484e744fd3e92e49f804c0d8cd5f315c6d5f392cd7bb1ee18f34efae631
6
+ metadata.gz: 05e5e851c42e0ca60579a9a1379414f7d9e8d047657bdeb4d0bbf8714d5408fdd7e9d3dda15d6665ee5c886f92050d64265175baf0949d8ce0e61834ecabcc22
7
+ data.tar.gz: 6e0b825a88e2ec98614c26033752d7598bc5e52ba76d3b46cd23b9916ea1c92253192564ed6bd29eff6e2a29faebe5afcc29d5417ce89a65cbe35732884f56ea
data/README.md CHANGED
@@ -34,43 +34,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='stefan-natchev'>
38
- <a href='https://github.com/snatchev'>
39
- <img src='https://github.com/snatchev.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
42
- </td>
43
- <td id='olivier-halligon'>
44
- <a href='https://github.com/AliSoftware'>
45
- <img src='https://github.com/AliSoftware.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
48
- </td>
49
- <td id='luka-mirosevic'>
50
- <a href='https://github.com/lmirosevic'>
51
- <img src='https://github.com/lmirosevic.png?size=140'>
52
- </a>
53
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
54
- </td>
55
37
  <td id='joshua-liebowitz'>
56
38
  <a href='https://github.com/taquitos'>
57
39
  <img src='https://github.com/taquitos.png?size=140'>
58
40
  </a>
59
41
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
60
42
  </td>
61
- <td id='manu-wallner'>
62
- <a href='https://github.com/milch'>
63
- <img src='https://github.com/milch.png?size=140'>
43
+ <td id='danielle-tomlinson'>
44
+ <a href='https://github.com/endocrimes'>
45
+ <img src='https://github.com/endocrimes.png?size=140'>
64
46
  </a>
65
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
66
48
  </td>
67
- </tr>
68
- <tr>
69
- <td id='maksym-grebenets'>
70
- <a href='https://github.com/mgrebenets'>
71
- <img src='https://github.com/mgrebenets.png?size=140'>
49
+ <td id='andrew-mcburney'>
50
+ <a href='https://github.com/armcburney'>
51
+ <img src='https://github.com/armcburney.png?size=140'>
72
52
  </a>
73
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
74
54
  </td>
75
55
  <td id='jorge-revuelta-h'>
76
56
  <a href='https://github.com/minuscorp'>
@@ -78,26 +58,58 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
78
58
  </a>
79
59
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
80
60
  </td>
61
+ <td id='josh-holtz'>
62
+ <a href='https://github.com/joshdholtz'>
63
+ <img src='https://github.com/joshdholtz.png?size=140'>
64
+ </a>
65
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
66
+ </td>
67
+ </tr>
68
+ <tr>
69
+ <td id='max-ott'>
70
+ <a href='https://github.com/max-ott'>
71
+ <img src='https://github.com/max-ott.png?size=140'>
72
+ </a>
73
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
74
+ </td>
75
+ <td id='felix-krause'>
76
+ <a href='https://github.com/KrauseFx'>
77
+ <img src='https://github.com/KrauseFx.png?size=140'>
78
+ </a>
79
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
80
+ </td>
81
81
  <td id='jan-piotrowski'>
82
82
  <a href='https://github.com/janpio'>
83
83
  <img src='https://github.com/janpio.png?size=140'>
84
84
  </a>
85
85
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
86
86
  </td>
87
+ <td id='jérôme-lacoste'>
88
+ <a href='https://github.com/lacostej'>
89
+ <img src='https://github.com/lacostej.png?size=140'>
90
+ </a>
91
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
92
+ </td>
87
93
  <td id='helmut-januschka'>
88
94
  <a href='https://github.com/hjanuschka'>
89
95
  <img src='https://github.com/hjanuschka.png?size=140'>
90
96
  </a>
91
97
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
92
98
  </td>
93
- <td id='max-ott'>
94
- <a href='https://github.com/max-ott'>
95
- <img src='https://github.com/max-ott.png?size=140'>
96
- </a>
97
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
98
- </td>
99
99
  </tr>
100
100
  <tr>
101
+ <td id='olivier-halligon'>
102
+ <a href='https://github.com/AliSoftware'>
103
+ <img src='https://github.com/AliSoftware.png?size=140'>
104
+ </a>
105
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
106
+ </td>
107
+ <td id='iulian-onofrei'>
108
+ <a href='https://github.com/revolter'>
109
+ <img src='https://github.com/revolter.png?size=140'>
110
+ </a>
111
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
112
+ </td>
101
113
  <td id='matthew-ellis'>
102
114
  <a href='https://github.com/matthewellis'>
103
115
  <img src='https://github.com/matthewellis.png?size=140'>
@@ -110,24 +122,12 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
110
122
  </a>
111
123
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
112
124
  </td>
113
- <td id='josh-holtz'>
114
- <a href='https://github.com/joshdholtz'>
115
- <img src='https://github.com/joshdholtz.png?size=140'>
116
- </a>
117
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
118
- </td>
119
125
  <td id='jimmy-dee'>
120
126
  <a href='https://github.com/jdee'>
121
127
  <img src='https://github.com/jdee.png?size=140'>
122
128
  </a>
123
129
  <h4 align='center'>Jimmy Dee</h4>
124
130
  </td>
125
- <td id='jérôme-lacoste'>
126
- <a href='https://github.com/lacostej'>
127
- <img src='https://github.com/lacostej.png?size=140'>
128
- </a>
129
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
130
- </td>
131
131
  </tr>
132
132
  <tr>
133
133
  <td id='daniel-jankowski'>
@@ -136,44 +136,44 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
136
136
  </a>
137
137
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
138
138
  </td>
139
- <td id='andrew-mcburney'>
140
- <a href='https://github.com/armcburney'>
141
- <img src='https://github.com/armcburney.png?size=140'>
139
+ <td id='stefan-natchev'>
140
+ <a href='https://github.com/snatchev'>
141
+ <img src='https://github.com/snatchev.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
144
144
  </td>
145
- <td id='kohki-miki'>
146
- <a href='https://github.com/giginet'>
147
- <img src='https://github.com/giginet.png?size=140'>
145
+ <td id='manu-wallner'>
146
+ <a href='https://github.com/milch'>
147
+ <img src='https://github.com/milch.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
150
150
  </td>
151
- <td id='danielle-tomlinson'>
152
- <a href='https://github.com/endocrimes'>
153
- <img src='https://github.com/endocrimes.png?size=140'>
151
+ <td id='luka-mirosevic'>
152
+ <a href='https://github.com/lmirosevic'>
153
+ <img src='https://github.com/lmirosevic.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
156
156
  </td>
157
- <td id='iulian-onofrei'>
158
- <a href='https://github.com/revolter'>
159
- <img src='https://github.com/revolter.png?size=140'>
157
+ <td id='kohki-miki'>
158
+ <a href='https://github.com/giginet'>
159
+ <img src='https://github.com/giginet.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
+ <td id='maksym-grebenets'>
166
+ <a href='https://github.com/mgrebenets'>
167
+ <img src='https://github.com/mgrebenets.png?size=140'>
168
+ </a>
169
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
170
+ </td>
165
171
  <td id='fumiya-nakamura'>
166
172
  <a href='https://github.com/nafu'>
167
173
  <img src='https://github.com/nafu.png?size=140'>
168
174
  </a>
169
175
  <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
170
176
  </td>
171
- <td id='felix-krause'>
172
- <a href='https://github.com/KrauseFx'>
173
- <img src='https://github.com/KrauseFx.png?size=140'>
174
- </a>
175
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
176
- </td>
177
177
  </table>
178
178
 
179
179
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -232,7 +232,7 @@ module Cert
232
232
  cert_name = "#{cert_name}.cer" unless File.extname(cert_name) == ".cer"
233
233
  path = File.expand_path(File.join(Cert.config[:output_path], cert_name))
234
234
  raw_data = Base64.decode64(certificate.certificate_content)
235
- File.write(path, raw_data)
235
+ File.write(path, raw_data.force_encoding("UTF-8"))
236
236
  return path
237
237
  end
238
238
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.164.0'.freeze
2
+ VERSION = '2.165.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
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -256,4 +256,4 @@ public extension DeliverfileProtocol {
256
256
 
257
257
  // Please don't remove the lines below
258
258
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.47]
259
+ // FastlaneRunnerAPIVersion [0.9.48]
@@ -4748,7 +4748,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
4748
4748
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
4749
4749
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
4750
4750
  - skipProvisioningProfiles: Skip syncing provisioning profiles
4751
- - appIdentifier: The bundle identifier(s) of your app (comma-separated)
4751
+ - appIdentifier: The bundle identifier(s) of your app (comma-separated string or array of strings)
4752
4752
  - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
4753
4753
  - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
4754
4754
  - username: Your Apple ID Username
@@ -7678,7 +7678,7 @@ public func swiftlint(mode: Any = "lint",
7678
7678
  - readonly: Only fetch existing certificates and profiles, don't generate new ones
7679
7679
  - generateAppleCerts: Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)
7680
7680
  - skipProvisioningProfiles: Skip syncing provisioning profiles
7681
- - appIdentifier: The bundle identifier(s) of your app (comma-separated)
7681
+ - appIdentifier: The bundle identifier(s) of your app (comma-separated string or array of strings)
7682
7682
  - apiKeyPath: Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
7683
7683
  - apiKey: Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)
7684
7684
  - username: Your Apple ID Username
@@ -9253,7 +9253,7 @@ public func xcov(workspace: String? = nil,
9253
9253
  coverallsServiceJobId: String? = nil,
9254
9254
  coverallsRepoToken: String? = nil,
9255
9255
  xcconfig: String? = nil,
9256
- ideFoundationPath: String = "/Applications/Xcode-11.7.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9256
+ ideFoundationPath: String = "/Applications/Xcode-12.0.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9257
9257
  legacySupport: Bool = false)
9258
9258
  {
9259
9259
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9399,4 +9399,4 @@ public let snapshotfile = Snapshotfile()
9399
9399
 
9400
9400
  // Please don't remove the lines below
9401
9401
  // They are used to detect outdated files
9402
- // FastlaneRunnerAPIVersion [0.9.100]
9402
+ // FastlaneRunnerAPIVersion [0.9.101]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -184,4 +184,4 @@ public extension GymfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.50]
187
+ // FastlaneRunnerAPIVersion [0.9.51]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -17,7 +17,7 @@ public protocol MatchfileProtocol: class {
17
17
  /// Skip syncing provisioning profiles
18
18
  var skipProvisioningProfiles: Bool { get }
19
19
 
20
- /// The bundle identifier(s) of your app (comma-separated)
20
+ /// The bundle identifier(s) of your app (comma-separated string or array of strings)
21
21
  var appIdentifier: [String] { get }
22
22
 
23
23
  /// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
@@ -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.44]
187
+ // FastlaneRunnerAPIVersion [0.9.45]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -48,4 +48,4 @@ public extension PrecheckfileProtocol {
48
48
 
49
49
  // Please don't remove the lines below
50
50
  // They are used to detect outdated files
51
- // FastlaneRunnerAPIVersion [0.9.43]
51
+ // FastlaneRunnerAPIVersion [0.9.44]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -260,4 +260,4 @@ public extension ScanfileProtocol {
260
260
 
261
261
  // Please don't remove the lines below
262
262
  // They are used to detect outdated files
263
- // FastlaneRunnerAPIVersion [0.9.55]
263
+ // FastlaneRunnerAPIVersion [0.9.56]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.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.45]
99
+ // FastlaneRunnerAPIVersion [0.9.46]
@@ -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.164.0
20
+ // Generated with fastlane 2.165.0
@@ -184,4 +184,4 @@ public extension SnapshotfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.39]
187
+ // FastlaneRunnerAPIVersion [0.9.40]
@@ -65,7 +65,7 @@ module Match
65
65
  FastlaneCore::ConfigItem.new(key: :app_identifier,
66
66
  short_option: "-a",
67
67
  env_name: "MATCH_APP_IDENTIFIER",
68
- description: "The bundle identifier(s) of your app (comma-separated)",
68
+ description: "The bundle identifier(s) of your app (comma-separated string or array of strings)",
69
69
  type: Array, # we actually allow String and Array here
70
70
  skip_type_validation: true,
71
71
  code_gen_sensitive: true,
@@ -303,7 +303,7 @@ module Sigh
303
303
  end
304
304
 
305
305
  if Sigh.config[:cert_owner_name]
306
- next unless c.owner_name.strip == Sigh.config[:cert_owner_name].strip
306
+ next unless c.display_name.strip == Sigh.config[:cert_owner_name].strip
307
307
  end
308
308
 
309
309
  true
@@ -327,7 +327,7 @@ module Sigh
327
327
  UI.important("Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options.")
328
328
  UI.important("Available Code Signing Identities for current filters:")
329
329
  certificates.each do |c|
330
- str = ["\t- Name:", c.owner_name, "- ID:", c.id + " - Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
330
+ str = ["\t- Name:", c.display_name, "- ID:", c.id + " - Expires", c.expires.strftime("%d/%m/%Y")].join(" ")
331
331
  UI.message(str.green)
332
332
  end
333
333
  end
@@ -31,6 +31,8 @@ require 'spaceship/connect_api/models/beta_tester_metric'
31
31
  require 'spaceship/connect_api/models/build'
32
32
  require 'spaceship/connect_api/models/build_delivery'
33
33
  require 'spaceship/connect_api/models/build_beta_detail'
34
+ require 'spaceship/connect_api/models/custom_app_organization'
35
+ require 'spaceship/connect_api/models/custom_app_user'
34
36
  require 'spaceship/connect_api/models/pre_release_version'
35
37
 
36
38
  require 'spaceship/connect_api/models/age_rating_declaration'
@@ -13,20 +13,23 @@ module Spaceship
13
13
 
14
14
  # Initializes client with Apple's App Store Connect JWT auth key.
15
15
  #
16
- # This method will automatically use the key id, issuer id, and filepath from environment
16
+ # This method will automatically use the arguments from environment
17
17
  # variables if not given.
18
18
  #
19
- # All three parameters are needed to authenticate.
19
+ # The key_id, issuer_id and either filepath or key are needed to authenticate.
20
20
  #
21
21
  # @param key_id (String) (optional): The key id
22
22
  # @param issuer_id (String) (optional): The issuer id
23
23
  # @param filepath (String) (optional): The filepath
24
+ # @param key (String) (optional): The key
25
+ # @param duration (Integer) (optional): How long this session should last
26
+ # @param in_house (Boolean) (optional): Whether this session is an Enterprise one
24
27
  #
25
28
  # @raise InvalidUserCredentialsError: raised if authentication failed
26
29
  #
27
30
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
28
- def self.auth(key_id: nil, issuer_id: nil, filepath: nil)
29
- token = Spaceship::ConnectAPI::Token.create(key_id: key_id, issuer_id: issuer_id, filepath: filepath)
31
+ def self.auth(key_id: nil, issuer_id: nil, filepath: nil, key: nil, duration: nil, in_house: nil)
32
+ token = Spaceship::ConnectAPI::Token.create(key_id: key_id, issuer_id: issuer_id, filepath: filepath, key: key, duration: duration, in_house: in_house)
30
33
  return ConnectAPI::Client.new(token: token)
31
34
  end
32
35
 
@@ -18,11 +18,26 @@ module Spaceship
18
18
  attr_accessor :app_store_versions
19
19
  attr_accessor :prices
20
20
 
21
+ # Only available with Apple ID auth
22
+ attr_accessor :distribution_type
23
+ attr_accessor :educationDiscountType
24
+
21
25
  module ContentRightsDeclaration
22
26
  USES_THIRD_PARTY_CONTENT = "USES_THIRD_PARTY_CONTENT"
23
27
  DOES_NOT_USE_THIRD_PARTY_CONTENT = "DOES_NOT_USE_THIRD_PARTY_CONTENT"
24
28
  end
25
29
 
30
+ module DistributionType
31
+ APP_STORE = "APP_STORE"
32
+ CUSTOM = "CUSTOM"
33
+ end
34
+
35
+ module EducationDiscountType
36
+ DISCOUNTED = "DISCOUNTED"
37
+ NOT_APPLICABLE = "NOT_APPLICABLE"
38
+ NOT_DISCOUNTED = "NOT_DISCOUNTED"
39
+ end
40
+
26
41
  self.attr_mapping({
27
42
  "name" => "name",
28
43
  "bundleId" => "bundle_id",
@@ -32,6 +47,8 @@ module Spaceship
32
47
  "removed" => "removed",
33
48
  "isAAG" => "is_aag",
34
49
  "availableInNewTerritories" => "available_in_new_territories",
50
+ "distributionType" => "distribution_type",
51
+ "educationDiscountType" => "education_discount_type",
35
52
 
36
53
  "contentRightsDeclaration" => "content_rights_declaration",
37
54
 
@@ -252,6 +269,24 @@ module Spaceship
252
269
  return resps.flat_map(&:to_models)
253
270
  end
254
271
 
272
+ #
273
+ # B2B
274
+ #
275
+
276
+ def disable_b2b
277
+ update(attributes: {
278
+ distributionType: DistributionType::APP_STORE,
279
+ education_discount_type: EducationDiscountType::NOT_DISCOUNTED
280
+ })
281
+ end
282
+
283
+ def enable_b2b
284
+ update(attributes: {
285
+ distributionType: App::DistributionType::CUSTOM,
286
+ education_discount_type: EducationDiscountType::NOT_APPLICABLE
287
+ })
288
+ end
289
+
255
290
  #
256
291
  # Beta Feedback
257
292
  #
@@ -323,6 +358,22 @@ module Spaceship
323
358
  return resps.flat_map(&:to_models).first
324
359
  end
325
360
 
361
+ #
362
+ # Education
363
+ #
364
+
365
+ def disable_educational_discount
366
+ update(attributes: {
367
+ education_discount_type: EducationDiscountType::NOT_DISCOUNTED
368
+ })
369
+ end
370
+
371
+ def enable_educational_discount
372
+ update(attributes: {
373
+ education_discount_type: EducationDiscountType::DISCOUNTED
374
+ })
375
+ end
376
+
326
377
  #
327
378
  # Users
328
379
  #
@@ -0,0 +1,43 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class CustomAppOrganization
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :device_enrollment_program_id
8
+ attr_accessor :name
9
+
10
+ attr_mapping({
11
+ "deviceEnrollmentProgramId" => "device_enrollment_program_id",
12
+ "name" => "name"
13
+ })
14
+
15
+ def self.type
16
+ return "customAppOrganizations"
17
+ end
18
+
19
+ #
20
+ # API
21
+ #
22
+
23
+ def self.all(app_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
24
+ resps = Spaceship::ConnectAPI.get_custom_app_organization(
25
+ app_id: app_id,
26
+ filter: filter,
27
+ includes: includes,
28
+ limit: nil,
29
+ sort: nil
30
+ ).all_pages
31
+ return resps.flat_map(&:to_models)
32
+ end
33
+
34
+ def self.create(app_id: nil, device_enrollment_program_id: nil, name: nil)
35
+ return Spaceship::ConnectAPI.post_custom_app_organization(app_id: app_id, device_enrollment_program_id: device_enrollment_program_id, name: name).first
36
+ end
37
+
38
+ def delete!
39
+ Spaceship::ConnectAPI.delete_custom_app_organization(custom_app_organization_id: id)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,41 @@
1
+ require_relative '../model'
2
+ module Spaceship
3
+ class ConnectAPI
4
+ class CustomAppUser
5
+ include Spaceship::ConnectAPI::Model
6
+
7
+ attr_accessor :apple_id
8
+
9
+ attr_mapping({
10
+ "appleId" => "apple_id"
11
+ })
12
+
13
+ def self.type
14
+ return "customAppUsers"
15
+ end
16
+
17
+ #
18
+ # API
19
+ #
20
+
21
+ def self.all(app_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
22
+ resps = Spaceship::ConnectAPI.get_custom_app_users(
23
+ app_id: app_id,
24
+ filter: filter,
25
+ includes: includes,
26
+ limit: nil,
27
+ sort: nil
28
+ ).all_pages
29
+ return resps.flat_map(&:to_models)
30
+ end
31
+
32
+ def self.create(app_id: nil, apple_id: nil)
33
+ return Spaceship::ConnectAPI.post_custom_app_user(app_id: app_id, apple_id: apple_id).first
34
+ end
35
+
36
+ def delete!
37
+ Spaceship::ConnectAPI.delete_custom_app_user(custom_app_user_id: id)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -44,20 +44,23 @@ module Spaceship
44
44
 
45
45
  # Initializes client with Apple's App Store Connect JWT auth key.
46
46
  #
47
- # This method will automatically use the key id, issuer id, and filepath from environment
47
+ # This method will automatically use the arguments from environment
48
48
  # variables if not given.
49
49
  #
50
- # All three parameters are needed to authenticate.
50
+ # The key_id, issuer_id and either filepath or key are needed to authenticate.
51
51
  #
52
52
  # @param key_id (String) (optional): The key id
53
53
  # @param issuer_id (String) (optional): The issuer id
54
54
  # @param filepath (String) (optional): The filepath
55
+ # @param key (String) (optional): The key
56
+ # @param duration (Integer) (optional): How long this session should last
57
+ # @param in_house (Boolean) (optional): Whether this session is an Enterprise one
55
58
  #
56
59
  # @raise InvalidUserCredentialsError: raised if authentication failed
57
60
  #
58
61
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
59
- def auth(key_id: nil, issuer_id: nil, filepath: nil)
60
- @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath)
62
+ def auth(key_id: nil, issuer_id: nil, filepath: nil, key: nil, duration: nil, in_house: nil)
63
+ @client = ConnectAPI::Client.auth(key_id: key_id, issuer_id: issuer_id, filepath: filepath, key: key, duration: duration, in_house: in_house)
61
64
  end
62
65
 
63
66
  # Authenticates with Apple's web services. This method has to be called once
@@ -890,6 +890,77 @@ module Spaceship
890
890
  tunes_request_client.post("appStoreVersionReleaseRequests", body)
891
891
  end
892
892
 
893
+ #
894
+ # customAppUsers
895
+ #
896
+
897
+ def get_custom_app_users(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
898
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
899
+ tunes_request_client.get("apps/#{app_id}/customAppUsers", params)
900
+ end
901
+
902
+ def post_custom_app_user(app_id: nil, apple_id: nil)
903
+ body = {
904
+ data: {
905
+ type: "customAppUsers",
906
+ attributes: {
907
+ appleId: apple_id
908
+ },
909
+ relationships: {
910
+ app: {
911
+ data: {
912
+ type: "apps",
913
+ id: app_id
914
+ }
915
+ }
916
+ }
917
+ }
918
+ }
919
+
920
+ tunes_request_client.post("customAppUsers", body)
921
+ end
922
+
923
+ def delete_custom_app_user(custom_app_user_id: nil)
924
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
925
+ tunes_request_client.delete("customAppUsers/#{custom_app_user_id}", params)
926
+ end
927
+
928
+ #
929
+ # customOrganizationUsers
930
+ #
931
+
932
+ def get_custom_app_organization(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
933
+ params = tunes_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
934
+ tunes_request_client.get("apps/#{app_id}/customAppOrganizations", params)
935
+ end
936
+
937
+ def post_custom_app_organization(app_id: nil, device_enrollment_program_id: nil, name: nil)
938
+ body = {
939
+ data: {
940
+ type: "customAppOrganizations",
941
+ attributes: {
942
+ deviceEnrollmentProgramId: device_enrollment_program_id,
943
+ name: name
944
+ },
945
+ relationships: {
946
+ app: {
947
+ data: {
948
+ type: "apps",
949
+ id: app_id
950
+ }
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ tunes_request_client.post("customAppOrganizations", body)
957
+ end
958
+
959
+ def delete_custom_app_organization(custom_app_organization_id: nil)
960
+ params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
961
+ tunes_request_client.delete("customAppOrganizations/#{custom_app_organization_id}", params)
962
+ end
963
+
893
964
  #
894
965
  # idfaDeclarations
895
966
  #
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.164.0
4
+ version: 2.165.0
5
5
  platform: ruby
6
6
  authors:
7
- - Helmut Januschka
8
- - Luka Mirosevic
9
- - Fumiya Nakamura
10
- - Jimmy Dee
7
+ - Jorge Revuelta H
8
+ - Matthew Ellis
9
+ - Felix Krause
10
+ - Josh Holtz
11
+ - Danielle Tomlinson
12
+ - Jérôme Lacoste
13
+ - Kohki Miki
11
14
  - Maksym Grebenets
15
+ - Aaron Brager
16
+ - Jimmy Dee
17
+ - Max Ott
18
+ - Luka Mirosevic
12
19
  - Manu Wallner
13
- - Danielle Tomlinson
14
20
  - Jan Piotrowski
15
- - Max Ott
21
+ - Stefan Natchev
22
+ - Andrew McBurney
23
+ - Fumiya Nakamura
16
24
  - Iulian Onofrei
17
- - Jérôme Lacoste
18
- - Matthew Ellis
19
25
  - Olivier Halligon
20
- - Josh Holtz
21
- - Jorge Revuelta H
22
- - Aaron Brager
23
- - Felix Krause
24
26
  - Joshua Liebowitz
25
- - Kohki Miki
26
- - Stefan Natchev
27
27
  - Daniel Jankowski
28
- - Andrew McBurney
28
+ - Helmut Januschka
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-10-19 00:00:00.000000000 Z
32
+ date: 2020-10-23 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -983,6 +983,7 @@ files:
983
983
  - fastlane/lib/fastlane/.erb_template_helper.rb.swp
984
984
  - fastlane/lib/fastlane/action.rb
985
985
  - fastlane/lib/fastlane/action_collector.rb
986
+ - fastlane/lib/fastlane/actions/.download_dsyms.rb.swp
986
987
  - fastlane/lib/fastlane/actions/.git_commit.rb.swp
987
988
  - fastlane/lib/fastlane/actions/README.md
988
989
  - fastlane/lib/fastlane/actions/actions_helper.rb
@@ -1453,9 +1454,6 @@ files:
1453
1454
  - match/lib/assets/MatchfileTemplate.swift
1454
1455
  - match/lib/assets/READMETemplate.md
1455
1456
  - match/lib/match.rb
1456
- - match/lib/match/.commands_generator.rb.swp
1457
- - match/lib/match/.importer.rb.swp
1458
- - match/lib/match/.options.rb.swp
1459
1457
  - match/lib/match/change_password.rb
1460
1458
  - match/lib/match/commands_generator.rb
1461
1459
  - match/lib/match/encryption.rb
@@ -1657,6 +1655,8 @@ files:
1657
1655
  - spaceship/lib/spaceship/connect_api/models/bundle_id.rb
1658
1656
  - spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb
1659
1657
  - spaceship/lib/spaceship/connect_api/models/certificate.rb
1658
+ - spaceship/lib/spaceship/connect_api/models/custom_app_organization.rb
1659
+ - spaceship/lib/spaceship/connect_api/models/custom_app_user.rb
1660
1660
  - spaceship/lib/spaceship/connect_api/models/device.rb
1661
1661
  - spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb
1662
1662
  - spaceship/lib/spaceship/connect_api/models/pre_release_version.rb