fastlane 2.144.0 → 2.145.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 +70 -70
  3. data/fastlane/lib/fastlane/actions/{.update_project_provisioning.rb.swp → .push_to_git_remote.rb.swp} +0 -0
  4. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
  5. data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/setup_ci.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/slather.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
  9. data/fastlane/lib/fastlane/version.rb +1 -1
  10. data/fastlane/swift/Deliverfile.swift +1 -1
  11. data/fastlane/swift/Fastlane.swift +9 -9
  12. data/fastlane/swift/Gymfile.swift +1 -1
  13. data/fastlane/swift/Matchfile.swift +1 -1
  14. data/fastlane/swift/MatchfileProtocol.swift +2 -2
  15. data/fastlane/swift/Precheckfile.swift +1 -1
  16. data/fastlane/swift/Scanfile.swift +1 -1
  17. data/fastlane/swift/Screengrabfile.swift +1 -1
  18. data/fastlane/swift/Snapshotfile.swift +1 -1
  19. data/{spaceship/lib/spaceship/connect_api/models/.bundle_id_capability.rb.swp → frameit/lib/frameit/.screenshot.rb.swp} +0 -0
  20. data/match/lib/match/options.rb +1 -1
  21. data/scan/lib/scan/test_command_generator.rb +1 -1
  22. data/spaceship/lib/spaceship/portal/.portal_client.rb.swp +0 -0
  23. data/spaceship/lib/spaceship/portal/portal_client.rb +13 -0
  24. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +52 -16
  25. data/supply/lib/supply/client.rb +3 -3
  26. metadata +20 -26
  27. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  28. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  29. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  30. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  31. data/sigh/lib/sigh/.runner.rb.swp +0 -0
  32. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  33. data/spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a010cab564b7d5d0bec26939d93d9e043e62daf47240bf20acbaa7f2415366b0
4
- data.tar.gz: df53185c28f8fc39c4ef76b0acc6cfc18b1c8421bc70a4493af0f4298e0bd2a4
3
+ metadata.gz: 50526fb8e2f431e1fe07d3667568902f85b83536f2a35a97763d85c40f3703b3
4
+ data.tar.gz: f7b223f5674354e6034fc80cc8eeff9cf21c4d610254e3675e4fdab2fe9cbfc8
5
5
  SHA512:
6
- metadata.gz: 98bd1adcc40ea458038dfa535f7ac3c39c3203effe06c66e0889daa76dd9cec6d49fe72165411de859678f675dd02d1f6af8635289ef637e7f05667553d5a5b1
7
- data.tar.gz: 440cc16fb48caca5a24dea8190dffc07a0423b7f4ab4c0df083874dfc8c711f22a52f4fde7764ea014b93fecdec0b270de7270a2915741a55243f3e8fbd38bb6
6
+ metadata.gz: 45c216049c389336751e7927a578153cc80ed4c46d7bf77f3a59a8290e77fcf22f52cd1785d7f1effdee70b5f57aa8a1e8db2caba0c2a6fdb62a2cd20a013d2e
7
+ data.tar.gz: dc3622f0cfb168ebb0ff473f769f600c85521e487330cd9ad085642bda846db8982db531d14746fe81462112510194495a793f7784c3a8800c4ff8f0c3cddec3
data/README.md CHANGED
@@ -34,55 +34,61 @@ 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'>
37
+ <td id='luka-mirosevic'>
38
+ <a href='https://github.com/lmirosevic'>
39
+ <img src='https://github.com/lmirosevic.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
42
42
  </td>
43
- <td id='jorge-revuelta-h'>
44
- <a href='https://github.com/minuscorp'>
45
- <img src='https://github.com/minuscorp.png?size=140'>
43
+ <td id='jan-piotrowski'>
44
+ <a href='https://github.com/janpio'>
45
+ <img src='https://github.com/janpio.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
48
48
  </td>
49
- <td id='josh-holtz'>
50
- <a href='https://github.com/joshdholtz'>
51
- <img src='https://github.com/joshdholtz.png?size=140'>
49
+ <td id='felix-krause'>
50
+ <a href='https://github.com/KrauseFx'>
51
+ <img src='https://github.com/KrauseFx.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
54
54
  </td>
55
- <td id='jérôme-lacoste'>
56
- <a href='https://github.com/lacostej'>
57
- <img src='https://github.com/lacostej.png?size=140'>
55
+ <td id='max-ott'>
56
+ <a href='https://github.com/max-ott'>
57
+ <img src='https://github.com/max-ott.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
60
60
  </td>
61
- <td id='maksym-grebenets'>
62
- <a href='https://github.com/mgrebenets'>
63
- <img src='https://github.com/mgrebenets.png?size=140'>
61
+ <td id='matthew-ellis'>
62
+ <a href='https://github.com/matthewellis'>
63
+ <img src='https://github.com/matthewellis.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='manu-wallner'>
70
- <a href='https://github.com/milch'>
71
- <img src='https://github.com/milch.png?size=140'>
69
+ <td id='fumiya-nakamura'>
70
+ <a href='https://github.com/nafu'>
71
+ <img src='https://github.com/nafu.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
74
74
  </td>
75
- <td id='max-ott'>
76
- <a href='https://github.com/max-ott'>
77
- <img src='https://github.com/max-ott.png?size=140'>
75
+ <td id='jimmy-dee'>
76
+ <a href='https://github.com/jdee'>
77
+ <img src='https://github.com/jdee.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
79
+ <h4 align='center'>Jimmy Dee</h4>
80
80
  </td>
81
- <td id='luka-mirosevic'>
82
- <a href='https://github.com/lmirosevic'>
83
- <img src='https://github.com/lmirosevic.png?size=140'>
81
+ <td id='stefan-natchev'>
82
+ <a href='https://github.com/snatchev'>
83
+ <img src='https://github.com/snatchev.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
86
+ </td>
87
+ <td id='olivier-halligon'>
88
+ <a href='https://github.com/AliSoftware'>
89
+ <img src='https://github.com/AliSoftware.png?size=140'>
90
+ </a>
91
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
86
92
  </td>
87
93
  <td id='daniel-jankowski'>
88
94
  <a href='https://github.com/mollyIV'>
@@ -90,12 +96,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
96
  </a>
91
97
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
92
98
  </td>
93
- <td id='jan-piotrowski'>
94
- <a href='https://github.com/janpio'>
95
- <img src='https://github.com/janpio.png?size=140'>
96
- </a>
97
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
98
- </td>
99
99
  </tr>
100
100
  <tr>
101
101
  <td id='joshua-liebowitz'>
@@ -104,11 +104,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
104
104
  </a>
105
105
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
106
106
  </td>
107
- <td id='jimmy-dee'>
108
- <a href='https://github.com/jdee'>
109
- <img src='https://github.com/jdee.png?size=140'>
107
+ <td id='kohki-miki'>
108
+ <a href='https://github.com/giginet'>
109
+ <img src='https://github.com/giginet.png?size=140'>
110
110
  </a>
111
- <h4 align='center'>Jimmy Dee</h4>
111
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
112
112
  </td>
113
113
  <td id='helmut-januschka'>
114
114
  <a href='https://github.com/hjanuschka'>
@@ -116,37 +116,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
116
116
  </a>
117
117
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
118
118
  </td>
119
- <td id='fumiya-nakamura'>
120
- <a href='https://github.com/nafu'>
121
- <img src='https://github.com/nafu.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
124
- </td>
125
119
  <td id='aaron-brager'>
126
120
  <a href='https://github.com/getaaron'>
127
121
  <img src='https://github.com/getaaron.png?size=140'>
128
122
  </a>
129
123
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
130
124
  </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
- <td id='olivier-halligon'>
134
- <a href='https://github.com/AliSoftware'>
135
- <img src='https://github.com/AliSoftware.png?size=140'>
133
+ <td id='josh-holtz'>
134
+ <a href='https://github.com/joshdholtz'>
135
+ <img src='https://github.com/joshdholtz.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
138
138
  </td>
139
- <td id='kohki-miki'>
140
- <a href='https://github.com/giginet'>
141
- <img src='https://github.com/giginet.png?size=140'>
139
+ <td id='manu-wallner'>
140
+ <a href='https://github.com/milch'>
141
+ <img src='https://github.com/milch.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
144
144
  </td>
145
- <td id='iulian-onofrei'>
146
- <a href='https://github.com/revolter'>
147
- <img src='https://github.com/revolter.png?size=140'>
145
+ <td id='jorge-revuelta-h'>
146
+ <a href='https://github.com/minuscorp'>
147
+ <img src='https://github.com/minuscorp.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
150
+ </td>
151
+ <td id='maksym-grebenets'>
152
+ <a href='https://github.com/mgrebenets'>
153
+ <img src='https://github.com/mgrebenets.png?size=140'>
154
+ </a>
155
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
150
156
  </td>
151
157
  <td id='andrew-mcburney'>
152
158
  <a href='https://github.com/armcburney'>
@@ -154,12 +160,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
154
160
  </a>
155
161
  <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
156
162
  </td>
157
- <td id='matthew-ellis'>
158
- <a href='https://github.com/matthewellis'>
159
- <img src='https://github.com/matthewellis.png?size=140'>
160
- </a>
161
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
162
- </td>
163
163
  </tr>
164
164
  <tr>
165
165
  <td id='danielle-tomlinson'>
@@ -168,11 +168,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
168
168
  </a>
169
169
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
170
170
  </td>
171
- <td id='felix-krause'>
172
- <a href='https://github.com/KrauseFx'>
173
- <img src='https://github.com/KrauseFx.png?size=140'>
171
+ <td id='iulian-onofrei'>
172
+ <a href='https://github.com/revolter'>
173
+ <img src='https://github.com/revolter.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  A new approach to iOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues.
8
8
 
9
- _match_ is the implementation of the [codesigning.guide concept](https://codesigning.guide). _match_ creates all required certificates & provisioning profiles and stores them in a separate git repository. Every team member with access to the repo can use those credentials for code signing. _match_ also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams
9
+ _match_ is the implementation of the [codesigning.guide concept](https://codesigning.guide). _match_ creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. _match_ also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams
10
10
 
11
11
  [More information on how to get started with codesigning](https://docs.fastlane.tools/codesigning/getting-started/)
12
12
 
@@ -82,7 +82,7 @@ module Fastlane
82
82
  def self.get_version_number_from_build_settings!(target, variable, configuration = nil)
83
83
  target.build_configurations.each do |config|
84
84
  if configuration.nil? || config.name == configuration
85
- value = config.build_settings[variable]
85
+ value = config.resolve_build_setting(variable)
86
86
  return value if value
87
87
  end
88
88
  end
@@ -93,7 +93,7 @@ module Fastlane
93
93
  env_name: "FL_SETUP_CI_PROVIDER",
94
94
  description: "CI provider. If none is set, the provider is detected automatically",
95
95
  is_string: true,
96
- default_value: false,
96
+ optional: true,
97
97
  verify_block: proc do |value|
98
98
  value = value.to_s
99
99
  # Validate both 'travis' and 'circleci' for backwards compatibility, even
@@ -241,7 +241,7 @@ module Fastlane
241
241
  FastlaneCore::ConfigItem.new(key: :ignore,
242
242
  env_name: "FL_SLATHER_IGNORE",
243
243
  description: "Tell slather to ignore files matching a path or any path from an array of paths",
244
- is_string: false,
244
+ type: Array,
245
245
  optional: true),
246
246
  FastlaneCore::ConfigItem.new(key: :verbose,
247
247
  env_name: "FL_SLATHER_VERBOSE",
@@ -46,7 +46,7 @@ module Fastlane
46
46
 
47
47
  parts = cert_info.strip.split(/\r?\n/)
48
48
  parts.each do |part|
49
- if part =~ /\AAuthority=i(Phone|OS)/
49
+ if part =~ /\AAuthority=(iPhone|iOS|Apple)\s(Distribution|Development)/
50
50
  type = part.split('=')[1].split(':')[0]
51
51
  values['provisioning_type'] = type.downcase =~ /distribution/i ? "distribution" : "development"
52
52
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.144.0'.freeze
2
+ VERSION = '2.145.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -18,4 +18,4 @@ class Deliverfile: DeliverfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -2761,7 +2761,7 @@ func downloadDsyms(username: String,
2761
2761
  func downloadFromPlayStore(packageName: String,
2762
2762
  versionName: String? = nil,
2763
2763
  track: String = "production",
2764
- metadataPath: String = "./metadata",
2764
+ metadataPath: String? = nil,
2765
2765
  key: String? = nil,
2766
2766
  issuer: String? = nil,
2767
2767
  jsonKey: String? = nil,
@@ -4480,7 +4480,7 @@ func makeChangelogFromJenkins(fallbackChangelog: String = "",
4480
4480
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
4481
4481
  - s3Region: Name of the S3 region
4482
4482
  - s3AccessKey: S3 access key
4483
- - s3SecretAccessKey: S3 secret secret access key
4483
+ - s3SecretAccessKey: S3 secret access key
4484
4484
  - s3Bucket: Name of the S3 bucket
4485
4485
  - keychainName: Keychain the items should be imported to
4486
4486
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
@@ -6338,7 +6338,7 @@ func setPodKey(useBundleExec: Bool = true,
6338
6338
  This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
6339
6339
  */
6340
6340
  func setupCi(force: Bool = false,
6341
- provider: Bool = false) {
6341
+ provider: String? = nil) {
6342
6342
  let command = RubyCommand(commandID: "", methodName: "setup_ci", className: nil, args: [RubyCommand.Argument(name: "force", value: force),
6343
6343
  RubyCommand.Argument(name: "provider", value: provider)])
6344
6344
  _ = runner.executeCommand(command)
@@ -6674,7 +6674,7 @@ func slather(buildDirectory: String? = nil,
6674
6674
  show: Bool = false,
6675
6675
  sourceDirectory: String? = nil,
6676
6676
  outputDirectory: String? = nil,
6677
- ignore: Any? = nil,
6677
+ ignore: [String]? = nil,
6678
6678
  verbose: Bool? = nil,
6679
6679
  useBundleExec: Bool = false,
6680
6680
  binaryBasename: Bool = false,
@@ -7055,7 +7055,7 @@ func supply(packageName: String,
7055
7055
  releaseStatus: String = "completed",
7056
7056
  track: String = "production",
7057
7057
  rollout: String? = nil,
7058
- metadataPath: String = "./metadata",
7058
+ metadataPath: String? = nil,
7059
7059
  key: String? = nil,
7060
7060
  issuer: String? = nil,
7061
7061
  jsonKey: String? = nil,
@@ -7197,7 +7197,7 @@ func swiftlint(mode: Any = "lint",
7197
7197
  - googleCloudProjectId: ID of the Google Cloud project to use for authentication
7198
7198
  - s3Region: Name of the S3 region
7199
7199
  - s3AccessKey: S3 access key
7200
- - s3SecretAccessKey: S3 secret secret access key
7200
+ - s3SecretAccessKey: S3 secret access key
7201
7201
  - s3Bucket: Name of the S3 bucket
7202
7202
  - keychainName: Keychain the items should be imported to
7203
7203
  - keychainPassword: This might be required the first time you access certificates on a new mac. For the login/default keychain this is your account password
@@ -8143,7 +8143,7 @@ func uploadToPlayStore(packageName: String,
8143
8143
  releaseStatus: String = "completed",
8144
8144
  track: String = "production",
8145
8145
  rollout: String? = nil,
8146
- metadataPath: String = "./metadata",
8146
+ metadataPath: String? = nil,
8147
8147
  key: String? = nil,
8148
8148
  issuer: String? = nil,
8149
8149
  jsonKey: String? = nil,
@@ -8642,7 +8642,7 @@ func xcov(workspace: String? = nil,
8642
8642
  coverallsServiceJobId: String? = nil,
8643
8643
  coverallsRepoToken: String? = nil,
8644
8644
  xcconfig: String? = nil,
8645
- ideFoundationPath: String = "/Applications/Xcode-11.2.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8645
+ ideFoundationPath: String = "/Applications/Xcode-11.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
8646
8646
  legacySupport: Bool = false) {
8647
8647
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
8648
8648
  RubyCommand.Argument(name: "project", value: project),
@@ -8787,4 +8787,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
8787
8787
 
8788
8788
  // Please don't remove the lines below
8789
8789
  // They are used to detect outdated files
8790
- // FastlaneRunnerAPIVersion [0.9.72]
8790
+ // FastlaneRunnerAPIVersion [0.9.73]
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -69,7 +69,7 @@ protocol MatchfileProtocol: class {
69
69
  /// S3 access key
70
70
  var s3AccessKey: String? { get }
71
71
 
72
- /// S3 secret secret access key
72
+ /// S3 secret access key
73
73
  var s3SecretAccessKey: String? { get }
74
74
 
75
75
  /// Name of the S3 bucket
@@ -146,4 +146,4 @@ extension MatchfileProtocol {
146
146
 
147
147
  // Please don't remove the lines below
148
148
  // They are used to detect outdated files
149
- // FastlaneRunnerAPIVersion [0.9.14]
149
+ // FastlaneRunnerAPIVersion [0.9.15]
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.144.0
21
+ // Generated with fastlane 2.145.0
@@ -170,7 +170,7 @@ module Match
170
170
  optional: true),
171
171
  FastlaneCore::ConfigItem.new(key: :s3_secret_access_key,
172
172
  env_name: "MATCH_S3_SECRET_ACCESS_KEY",
173
- description: "S3 secret secret access key",
173
+ description: "S3 secret access key",
174
174
  optional: true),
175
175
  FastlaneCore::ConfigItem.new(key: :s3_bucket,
176
176
  env_name: "MATCH_S3_BUCKET",
@@ -46,7 +46,7 @@ module Scan
46
46
  options << "-enableAddressSanitizer #{config[:address_sanitizer] ? 'YES' : 'NO'}" unless config[:address_sanitizer].nil?
47
47
  options << "-enableThreadSanitizer #{config[:thread_sanitizer] ? 'YES' : 'NO'}" unless config[:thread_sanitizer].nil?
48
48
  if FastlaneCore::Helper.xcode_at_least?(11)
49
- options << "-testPlan #{config[:testplan]}" if config[:testplan]
49
+ options << "-testPlan '#{config[:testplan]}'" if config[:testplan]
50
50
  end
51
51
  options << "-xctestrun '#{config[:xctestrun]}'" if config[:xctestrun]
52
52
  options << config[:xcargs] if config[:xcargs]
@@ -100,6 +100,19 @@ module Spaceship
100
100
  end
101
101
  private :platform_slug
102
102
 
103
+ def list_pending_agreements(language: "en")
104
+ r = request(:post) do |req|
105
+ req.url("account/listPendingAgreements")
106
+ req.body = {
107
+ teamId: team_id,
108
+ languageIsoCode: language
109
+ }.to_json
110
+ req.headers['Content-Type'] = 'application/json'
111
+ end
112
+
113
+ return parse_response(r)
114
+ end
115
+
103
116
  #####################################################
104
117
  # @!group Apps
105
118
  #####################################################
@@ -131,18 +131,33 @@ module Spaceship
131
131
  puts("Environment variable `SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER` is set, automatically requesting 2FA token via SMS to that number")
132
132
  puts("SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER = #{env_2fa_sms_default_phone_number}")
133
133
  puts("")
134
+
134
135
  phone_number = env_2fa_sms_default_phone_number
135
136
  phone_id = phone_id_from_number(response.body["trustedPhoneNumbers"], phone_number)
137
+ # don't request sms if no trusted devices and env default is the only trusted number,
138
+ # code was automatically sent
139
+ should_request_code = !sms_automatically_sent(response)
140
+ code_type = 'phone'
141
+ body = request_two_factor_code_from_phone(phone_id, phone_number, code_length, should_request_code)
142
+ elsif sms_automatically_sent(response) # sms fallback, code was automatically sent
143
+ fallback_number = response.body["trustedPhoneNumbers"].first
144
+ phone_number = fallback_number["numberWithDialCode"]
145
+ phone_id = fallback_number["id"]
146
+
147
+ code_type = 'phone'
148
+ body = request_two_factor_code_from_phone(phone_id, phone_number, code_length, false)
149
+ elsif sms_fallback(response) # sms fallback but code wasn't sent bec > 1 phone number
136
150
  code_type = 'phone'
137
- body = request_two_factor_code_from_phone(phone_id, phone_number, code_length)
151
+ body = request_two_factor_code_from_phone_choose(response.body["trustedPhoneNumbers"], code_length)
138
152
  else
139
153
  puts("(Input `sms` to escape this prompt and select a trusted phone number to send the code as a text message)")
140
154
  puts("")
141
155
  puts("(You can also set the environment variable `SPACESHIP_2FA_SMS_DEFAULT_PHONE_NUMBER` to automate this)")
142
- puts("(Read more at: https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship-2fa-sms-default-phone-number)")
156
+ puts("(Read more at: https://github.com/fastlane/fastlane/blob/master/spaceship/docs/Authentication.md#auto-select-sms-via-spaceship_2fa_sms_default_phone_number)")
143
157
  puts("")
144
- code_type = 'trusteddevice'
158
+
145
159
  code = ask_for_2fa_code("Please enter the #{code_length} digit code:")
160
+ code_type = 'trusteddevice'
146
161
  body = { "securityCode" => { "code" => code.to_s } }.to_json
147
162
 
148
163
  # User exited by entering `sms` and wants to choose phone number for SMS
@@ -191,11 +206,30 @@ module Spaceship
191
206
  return true
192
207
  end
193
208
 
209
+ # For reference in case auth behavior changes:
210
+ # The "noTrustedDevices" field is only present
211
+ # in the response for `GET /appleauth/auth`
212
+
213
+ # Account is not signed into any devices that can display a verification code
214
+ def sms_fallback(response)
215
+ response.body["noTrustedDevices"]
216
+ end
217
+
218
+ # see `sms_fallback` + account has only one trusted number for receiving an sms
219
+ def sms_automatically_sent(response)
220
+ (response.body["trustedPhoneNumbers"] || []).count == 1 && sms_fallback(response)
221
+ end
222
+
194
223
  # extracted into its own method for testing
195
224
  def ask_for_2fa_code(text)
196
225
  ask(text)
197
226
  end
198
227
 
228
+ # extracted into its own method for testing
229
+ def choose_phone_number(opts)
230
+ choose(*opts)
231
+ end
232
+
199
233
  def phone_id_from_number(phone_numbers, phone_number)
200
234
  characters_to_remove_from_phone_numbers = ' \-()"'
201
235
 
@@ -247,27 +281,29 @@ If it is, please open an issue at https://github.com/fastlane/fastlane/issues/ne
247
281
  available = phone_numbers.collect do |current|
248
282
  current['numberWithDialCode']
249
283
  end
250
- chosen = choose(*available)
284
+ chosen = choose_phone_number(available)
251
285
  phone_id = phone_id_from_masked_number(phone_numbers, chosen)
252
286
 
253
287
  request_two_factor_code_from_phone(phone_id, chosen, code_length)
254
288
  end
255
289
 
256
290
  # this is used in two places: after choosing a phone number and when a phone number is set via ENV var
257
- def request_two_factor_code_from_phone(phone_id, phone_number, code_length)
258
- # Request code
259
- r = request(:put) do |req|
260
- req.url("https://idmsa.apple.com/appleauth/auth/verify/phone")
261
- req.headers['Content-Type'] = 'application/json'
262
- req.body = { "phoneNumber" => { "id" => phone_id }, "mode" => "sms" }.to_json
263
- update_request_headers(req)
264
- end
291
+ def request_two_factor_code_from_phone(phone_id, phone_number, code_length, should_request_code = true)
292
+ if should_request_code
293
+ # Request code
294
+ r = request(:put) do |req|
295
+ req.url("https://idmsa.apple.com/appleauth/auth/verify/phone")
296
+ req.headers['Content-Type'] = 'application/json'
297
+ req.body = { "phoneNumber" => { "id" => phone_id }, "mode" => "sms" }.to_json
298
+ update_request_headers(req)
299
+ end
265
300
 
266
- # we use `Spaceship::TunesClient.new.handle_itc_response`
267
- # since this might be from the Dev Portal, but for 2 step
268
- Spaceship::TunesClient.new.handle_itc_response(r.body)
301
+ # we use `Spaceship::TunesClient.new.handle_itc_response`
302
+ # since this might be from the Dev Portal, but for 2 step
303
+ Spaceship::TunesClient.new.handle_itc_response(r.body)
269
304
 
270
- puts("Successfully requested text message to #{phone_number}")
305
+ puts("Successfully requested text message to #{phone_number}")
306
+ end
271
307
 
272
308
  code = ask_for_2fa_code("Please enter the #{code_length} digit code you received at #{phone_number}:")
273
309
 
@@ -244,7 +244,7 @@ module Supply
244
244
  UI.message("Found '#{version}' in '#{filtered_track.track}' track.")
245
245
  end
246
246
 
247
- filtered_release = filtered_track.releases.first { |r| r.name == version }
247
+ filtered_release = filtered_track.releases.first { |r| !r.name.nil? && r.name == version }
248
248
 
249
249
  # Since we can release on Alpha/Beta without release notes.
250
250
  if filtered_release.release_notes.nil?
@@ -258,13 +258,13 @@ module Supply
258
258
  end
259
259
 
260
260
  def latest_version(track)
261
- latest_version = tracks.select { |t| t.track == Supply::Tracks::DEFAULT }.map(&:releases).flatten.max_by(&:name)
261
+ latest_version = tracks.select { |t| t.track == Supply::Tracks::DEFAULT }.map(&:releases).flatten.reject { |r| r.name.nil? }.max_by(&:name)
262
262
 
263
263
  # Check if user specified '--track' option if version information from 'production' track is nil
264
264
  if latest_version.nil? && track == Supply::Tracks::DEFAULT
265
265
  UI.user_error!(%(Unable to find latest version information from "#{Supply::Tracks::DEFAULT}" track. Please specify track information by using the '--track' option.))
266
266
  else
267
- latest_version = tracks.select { |t| t.track == track }.map(&:releases).flatten.max_by(&:name)
267
+ latest_version = tracks.select { |t| t.track == track }.map(&:releases).flatten.reject { |r| r.name.nil? }.max_by(&:name)
268
268
  end
269
269
 
270
270
  return latest_version
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.144.0
4
+ version: 2.145.0
5
5
  platform: ruby
6
6
  authors:
7
- - Danielle Tomlinson
8
- - Max Ott
9
7
  - Daniel Jankowski
10
- - Helmut Januschka
8
+ - Danielle Tomlinson
9
+ - Luka Mirosevic
11
10
  - Josh Holtz
12
- - Kohki Miki
13
11
  - Iulian Onofrei
14
- - Felix Krause
15
- - Matthew Ellis
16
- - Stefan Natchev
12
+ - Fumiya Nakamura
13
+ - Aaron Brager
17
14
  - Olivier Halligon
18
- - Luka Mirosevic
19
- - Jan Piotrowski
20
- - Joshua Liebowitz
15
+ - Felix Krause
21
16
  - Maksym Grebenets
22
- - Fumiya Nakamura
23
- - Jimmy Dee
24
- - Jorge Revuelta H
25
17
  - Jérôme Lacoste
18
+ - Joshua Liebowitz
19
+ - Jorge Revuelta H
20
+ - Helmut Januschka
21
+ - Jimmy Dee
22
+ - Stefan Natchev
26
23
  - Andrew McBurney
27
- - Aaron Brager
28
24
  - Manu Wallner
25
+ - Max Ott
26
+ - Kohki Miki
27
+ - Jan Piotrowski
28
+ - Matthew Ellis
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-03-24 00:00:00.000000000 Z
32
+ date: 2020-04-05 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -1016,9 +1016,7 @@ files:
1016
1016
  - fastlane/lib/fastlane.rb
1017
1017
  - fastlane/lib/fastlane/action.rb
1018
1018
  - fastlane/lib/fastlane/action_collector.rb
1019
- - fastlane/lib/fastlane/actions/.hockey.rb.swp
1020
- - fastlane/lib/fastlane/actions/.slack.rb.swp
1021
- - fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp
1019
+ - fastlane/lib/fastlane/actions/.push_to_git_remote.rb.swp
1022
1020
  - fastlane/lib/fastlane/actions/README.md
1023
1021
  - fastlane/lib/fastlane/actions/actions_helper.rb
1024
1022
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1352,7 +1350,6 @@ files:
1352
1350
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1353
1351
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1354
1352
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
1355
- - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
1356
1353
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1357
1354
  - fastlane/swift/FastlaneSwiftRunner/README.txt
1358
1355
  - fastlane/swift/Gymfile.swift
@@ -1439,6 +1436,7 @@ files:
1439
1436
  - frameit/README.md
1440
1437
  - frameit/lib/assets/empty.png
1441
1438
  - frameit/lib/frameit.rb
1439
+ - frameit/lib/frameit/.screenshot.rb.swp
1442
1440
  - frameit/lib/frameit/commands_generator.rb
1443
1441
  - frameit/lib/frameit/config_parser.rb
1444
1442
  - frameit/lib/frameit/dependency_checker.rb
@@ -1509,7 +1507,6 @@ files:
1509
1507
  - pem/lib/pem/options.rb
1510
1508
  - pilot/README.md
1511
1509
  - pilot/lib/pilot.rb
1512
- - pilot/lib/pilot/.manager.rb.swp
1513
1510
  - pilot/lib/pilot/build_manager.rb
1514
1511
  - pilot/lib/pilot/commands_generator.rb
1515
1512
  - pilot/lib/pilot/features.rb
@@ -1590,7 +1587,6 @@ files:
1590
1587
  - sigh/README.md
1591
1588
  - sigh/lib/assets/resign.sh
1592
1589
  - sigh/lib/sigh.rb
1593
- - sigh/lib/sigh/.runner.rb.swp
1594
1590
  - sigh/lib/sigh/commands_generator.rb
1595
1591
  - sigh/lib/sigh/download_all.rb
1596
1592
  - sigh/lib/sigh/local_manage.rb
@@ -1643,11 +1639,8 @@ files:
1643
1639
  - spaceship/lib/spaceship/client.rb
1644
1640
  - spaceship/lib/spaceship/commands_generator.rb
1645
1641
  - spaceship/lib/spaceship/connect_api.rb
1646
- - spaceship/lib/spaceship/connect_api/.DS_Store
1647
1642
  - spaceship/lib/spaceship/connect_api/client.rb
1648
1643
  - spaceship/lib/spaceship/connect_api/model.rb
1649
- - spaceship/lib/spaceship/connect_api/models/.bundle_id.rb.swp
1650
- - spaceship/lib/spaceship/connect_api/models/.bundle_id_capability.rb.swp
1651
1644
  - spaceship/lib/spaceship/connect_api/models/app.rb
1652
1645
  - spaceship/lib/spaceship/connect_api/models/beta_app_localization.rb
1653
1646
  - spaceship/lib/spaceship/connect_api/models/beta_app_review_detail.rb
@@ -1688,6 +1681,7 @@ files:
1688
1681
  - spaceship/lib/spaceship/launcher.rb
1689
1682
  - spaceship/lib/spaceship/module.rb
1690
1683
  - spaceship/lib/spaceship/playground.rb
1684
+ - spaceship/lib/spaceship/portal/.portal_client.rb.swp
1691
1685
  - spaceship/lib/spaceship/portal/app.rb
1692
1686
  - spaceship/lib/spaceship/portal/app_group.rb
1693
1687
  - spaceship/lib/spaceship/portal/app_service.rb
@@ -1827,7 +1821,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1827
1821
  - !ruby/object:Gem::Version
1828
1822
  version: '0'
1829
1823
  requirements: []
1830
- rubygems_version: 3.0.3
1824
+ rubygems_version: 3.0.6
1831
1825
  signing_key:
1832
1826
  specification_version: 4
1833
1827
  summary: The easiest way to automate beta deployments and releases for your iOS and
Binary file