fastlane 2.144.0 → 2.145.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 +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