fastlane 2.150.3 → 2.151.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/deliver/lib/deliver/options.rb +7 -1
  4. data/deliver/lib/deliver/submit_for_review.rb +7 -7
  5. data/deliver/lib/deliver/upload_metadata.rb +2 -2
  6. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
  7. data/fastlane/lib/fastlane/actions/notarize.rb +13 -3
  8. data/fastlane/lib/fastlane/actions/pod_push.rb +10 -1
  9. data/fastlane/lib/fastlane/actions/resign.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/setup_ci.rb +5 -0
  11. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +10 -2
  14. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  15. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +28 -11
  16. data/fastlane/lib/fastlane/server/socket_server.rb +7 -1
  17. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  18. data/fastlane/lib/fastlane/version.rb +1 -1
  19. data/fastlane/swift/Actions.swift +1 -1
  20. data/fastlane/swift/ArgumentProcessor.swift +24 -24
  21. data/fastlane/swift/ControlCommand.swift +3 -3
  22. data/fastlane/swift/Deliverfile.swift +4 -8
  23. data/fastlane/swift/DeliverfileProtocol.swift +181 -182
  24. data/fastlane/swift/Fastlane.swift +2813 -2802
  25. data/fastlane/swift/Gymfile.swift +4 -8
  26. data/fastlane/swift/GymfileProtocol.swift +133 -134
  27. data/fastlane/swift/LaneFileProtocol.swift +17 -17
  28. data/fastlane/swift/Matchfile.swift +4 -8
  29. data/fastlane/swift/MatchfileProtocol.swift +115 -112
  30. data/fastlane/swift/Plugins.swift +1 -1
  31. data/fastlane/swift/Precheckfile.swift +4 -8
  32. data/fastlane/swift/PrecheckfileProtocol.swift +22 -23
  33. data/fastlane/swift/RubyCommand.swift +34 -37
  34. data/fastlane/swift/RubyCommandable.swift +3 -1
  35. data/fastlane/swift/Runner.swift +76 -69
  36. data/fastlane/swift/Scanfile.swift +4 -8
  37. data/fastlane/swift/ScanfileProtocol.swift +190 -191
  38. data/fastlane/swift/Screengrabfile.swift +4 -8
  39. data/fastlane/swift/ScreengrabfileProtocol.swift +67 -68
  40. data/fastlane/swift/Snapshotfile.swift +4 -8
  41. data/fastlane/swift/SnapshotfileProtocol.swift +127 -128
  42. data/fastlane/swift/SocketClient.swift +84 -90
  43. data/fastlane/swift/SocketResponse.swift +14 -14
  44. data/fastlane/swift/formatting/Brewfile +1 -0
  45. data/fastlane/swift/formatting/Brewfile.lock.json +39 -0
  46. data/fastlane/swift/formatting/Rakefile +18 -0
  47. data/fastlane/swift/main.swift +5 -6
  48. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +15 -7
  49. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
  50. data/match/lib/assets/READMETemplate.md +5 -2
  51. data/match/lib/match/options.rb +4 -0
  52. data/match/lib/match/runner.rb +1 -0
  53. data/match/lib/match/storage/git_storage.rb +1 -1
  54. data/match/lib/match/storage/s3_storage.rb +25 -7
  55. data/sigh/lib/assets/resign.sh +18 -0
  56. data/spaceship/lib/spaceship/client.rb +1 -2
  57. data/spaceship/lib/spaceship/connect_api/client.rb +0 -1
  58. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  59. metadata +31 -38
  60. data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
  61. data/spaceship/lib/spaceship/babosa_fix.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef23a0fed00e3ec93bc286b3f34b22302da611a889c315013c63d929f218ecd7
4
- data.tar.gz: e9155805e43cb051508414d3cf19db7b16c50fc5a1e280e944a5416a98dba32d
3
+ metadata.gz: b4bf7968a4becc2d05ed76545854fd77129c73f42de52ab952a774f84d522caf
4
+ data.tar.gz: bc298406b0f0bf5ba4e3fea0a8bc0d982a3a80696c19f73e7213fbcd1f7cb738
5
5
  SHA512:
6
- metadata.gz: 7b5fc44bdda30345ee8f9034e3fadaf03db8689a032a9982db7afa979e1d148becdad574dd202b81a682d98a1a712f15a88575e31c392102e6287d8b0639c04c
7
- data.tar.gz: 3019b6947b830e43e7214fcf0caf375e4f48d874bb168f52c146988dc86973e8cd7425bee83847808958c698c7eca3a9b8147ecc70092c444b10783e4a189f70
6
+ metadata.gz: 7ae665a639dbecf4971f42a298e3c555b338f9cb8438da022d7cdd9d944e2416f6dc0c3b20e3b98efdba4f3ab0b77486c40a0818d06648c88299fcf2029b796f
7
+ data.tar.gz: e0e6de2a5fca85f486d96f1e1f43439ddab1613af18f72e873eb80d0c644122df16897d87f31654f8acc7ebdc4bdc399df1feb7d3a04553c645485d44115ca11
data/README.md CHANGED
@@ -34,29 +34,11 @@ 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='matthew-ellis'>
38
- <a href='https://github.com/matthewellis'>
39
- <img src='https://github.com/matthewellis.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
42
- </td>
43
- <td id='jimmy-dee'>
44
- <a href='https://github.com/jdee'>
45
- <img src='https://github.com/jdee.png?size=140'>
46
- </a>
47
- <h4 align='center'>Jimmy Dee</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
- <td id='jorge-revuelta-h'>
56
- <a href='https://github.com/minuscorp'>
57
- <img src='https://github.com/minuscorp.png?size=140'>
37
+ <td id='joshua-liebowitz'>
38
+ <a href='https://github.com/taquitos'>
39
+ <img src='https://github.com/taquitos.png?size=140'>
58
40
  </a>
59
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
60
42
  </td>
61
43
  <td id='jérôme-lacoste'>
62
44
  <a href='https://github.com/lacostej'>
@@ -64,51 +46,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
64
46
  </a>
65
47
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
66
48
  </td>
67
- </tr>
68
- <tr>
69
- <td id='stefan-natchev'>
70
- <a href='https://github.com/snatchev'>
71
- <img src='https://github.com/snatchev.png?size=140'>
72
- </a>
73
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
74
- </td>
75
- <td id='daniel-jankowski'>
76
- <a href='https://github.com/mollyIV'>
77
- <img src='https://github.com/mollyIV.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
80
- </td>
81
- <td id='iulian-onofrei'>
82
- <a href='https://github.com/revolter'>
83
- <img src='https://github.com/revolter.png?size=140'>
49
+ <td id='aaron-brager'>
50
+ <a href='https://github.com/getaaron'>
51
+ <img src='https://github.com/getaaron.png?size=140'>
84
52
  </a>
85
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
86
54
  </td>
87
- <td id='felix-krause'>
88
- <a href='https://github.com/KrauseFx'>
89
- <img src='https://github.com/KrauseFx.png?size=140'>
55
+ <td id='josh-holtz'>
56
+ <a href='https://github.com/joshdholtz'>
57
+ <img src='https://github.com/joshdholtz.png?size=140'>
90
58
  </a>
91
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
92
60
  </td>
93
- <td id='maksym-grebenets'>
94
- <a href='https://github.com/mgrebenets'>
95
- <img src='https://github.com/mgrebenets.png?size=140'>
61
+ <td id='max-ott'>
62
+ <a href='https://github.com/max-ott'>
63
+ <img src='https://github.com/max-ott.png?size=140'>
96
64
  </a>
97
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
98
66
  </td>
99
67
  </tr>
100
68
  <tr>
101
- <td id='helmut-januschka'>
102
- <a href='https://github.com/hjanuschka'>
103
- <img src='https://github.com/hjanuschka.png?size=140'>
104
- </a>
105
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
106
- </td>
107
- <td id='joshua-liebowitz'>
108
- <a href='https://github.com/taquitos'>
109
- <img src='https://github.com/taquitos.png?size=140'>
69
+ <td id='jimmy-dee'>
70
+ <a href='https://github.com/jdee'>
71
+ <img src='https://github.com/jdee.png?size=140'>
110
72
  </a>
111
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
73
+ <h4 align='center'>Jimmy Dee</h4>
112
74
  </td>
113
75
  <td id='olivier-halligon'>
114
76
  <a href='https://github.com/AliSoftware'>
@@ -116,37 +78,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
116
78
  </a>
117
79
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
118
80
  </td>
119
- <td id='fumiya-nakamura'>
120
- <a href='https://github.com/nafu'>
121
- <img src='https://github.com/nafu.png?size=140'>
81
+ <td id='jan-piotrowski'>
82
+ <a href='https://github.com/janpio'>
83
+ <img src='https://github.com/janpio.png?size=140'>
122
84
  </a>
123
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
124
86
  </td>
125
- <td id='aaron-brager'>
126
- <a href='https://github.com/getaaron'>
127
- <img src='https://github.com/getaaron.png?size=140'>
87
+ <td id='kohki-miki'>
88
+ <a href='https://github.com/giginet'>
89
+ <img src='https://github.com/giginet.png?size=140'>
128
90
  </a>
129
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
130
92
  </td>
131
- </tr>
132
- <tr>
133
- <td id='josh-holtz'>
134
- <a href='https://github.com/joshdholtz'>
135
- <img src='https://github.com/joshdholtz.png?size=140'>
93
+ <td id='luka-mirosevic'>
94
+ <a href='https://github.com/lmirosevic'>
95
+ <img src='https://github.com/lmirosevic.png?size=140'>
136
96
  </a>
137
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
138
98
  </td>
99
+ </tr>
100
+ <tr>
139
101
  <td id='danielle-tomlinson'>
140
102
  <a href='https://github.com/endocrimes'>
141
103
  <img src='https://github.com/endocrimes.png?size=140'>
142
104
  </a>
143
105
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
144
106
  </td>
145
- <td id='max-ott'>
146
- <a href='https://github.com/max-ott'>
147
- <img src='https://github.com/max-ott.png?size=140'>
107
+ <td id='fumiya-nakamura'>
108
+ <a href='https://github.com/nafu'>
109
+ <img src='https://github.com/nafu.png?size=140'>
148
110
  </a>
149
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
112
+ </td>
113
+ <td id='felix-krause'>
114
+ <a href='https://github.com/KrauseFx'>
115
+ <img src='https://github.com/KrauseFx.png?size=140'>
116
+ </a>
117
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
118
+ </td>
119
+ <td id='helmut-januschka'>
120
+ <a href='https://github.com/hjanuschka'>
121
+ <img src='https://github.com/hjanuschka.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
150
124
  </td>
151
125
  <td id='andrew-mcburney'>
152
126
  <a href='https://github.com/armcburney'>
@@ -154,12 +128,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
154
128
  </a>
155
129
  <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
156
130
  </td>
157
- <td id='jan-piotrowski'>
158
- <a href='https://github.com/janpio'>
159
- <img src='https://github.com/janpio.png?size=140'>
160
- </a>
161
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
162
- </td>
163
131
  </tr>
164
132
  <tr>
165
133
  <td id='manu-wallner'>
@@ -168,11 +136,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
168
136
  </a>
169
137
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
170
138
  </td>
171
- <td id='kohki-miki'>
172
- <a href='https://github.com/giginet'>
173
- <img src='https://github.com/giginet.png?size=140'>
139
+ <td id='daniel-jankowski'>
140
+ <a href='https://github.com/mollyIV'>
141
+ <img src='https://github.com/mollyIV.png?size=140'>
174
142
  </a>
175
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
144
+ </td>
145
+ <td id='iulian-onofrei'>
146
+ <a href='https://github.com/revolter'>
147
+ <img src='https://github.com/revolter.png?size=140'>
148
+ </a>
149
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
150
+ </td>
151
+ <td id='matthew-ellis'>
152
+ <a href='https://github.com/matthewellis'>
153
+ <img src='https://github.com/matthewellis.png?size=140'>
154
+ </a>
155
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
156
+ </td>
157
+ <td id='jorge-revuelta-h'>
158
+ <a href='https://github.com/minuscorp'>
159
+ <img src='https://github.com/minuscorp.png?size=140'>
160
+ </a>
161
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
162
+ </td>
163
+ </tr>
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>
171
+ <td id='stefan-natchev'>
172
+ <a href='https://github.com/snatchev'>
173
+ <img src='https://github.com/snatchev.png?size=140'>
174
+ </a>
175
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -165,11 +165,17 @@ module Deliver
165
165
  FastlaneCore::ConfigItem.new(key: :auto_release_date,
166
166
  env_name: "DELIVER_AUTO_RELEASE_DATE",
167
167
  description: "Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)",
168
- is_string: false,
168
+ type: Integer,
169
169
  optional: true,
170
170
  conflicting_options: [:automatic_release],
171
171
  conflict_block: proc do |value|
172
172
  UI.user_error!("You can't use 'auto_release_date' and '#{value.key}' options together.")
173
+ end,
174
+ verify_block: proc do |value|
175
+ now_in_ms = Time.now.to_i * 1000
176
+ if value < now_in_ms
177
+ UI.user_error!("'#{value}' needs to be in the future and in milliseonds (current time is '#{now_in_ms}')")
178
+ end
173
179
  end),
174
180
  FastlaneCore::ConfigItem.new(key: :phased_release,
175
181
  env_name: "DELIVER_PHASED_RELEASE",
@@ -134,10 +134,10 @@ module Deliver
134
134
  # Create, update, or delete IDFA declaration
135
135
  if uses_idfa == false
136
136
  if idfa_declaration
137
- UI.verbose("Deleting IDFA delcaration")
137
+ UI.verbose("Deleting IDFA declaration")
138
138
  idfa_declaration.delete!
139
139
  updated_idfa = true
140
- UI.verbose("Deleted IDFA delcaration")
140
+ UI.verbose("Deleted IDFA declaration")
141
141
  end
142
142
  elsif uses_idfa == true
143
143
  attributes = {
@@ -148,19 +148,19 @@ module Deliver
148
148
  }
149
149
 
150
150
  if idfa_declaration
151
- UI.verbose("Updating IDFA delcaration")
151
+ UI.verbose("Updating IDFA declaration")
152
152
  idfa_declaration.update(attributes: attributes)
153
- UI.verbose("Updated IDFA delcaration")
153
+ UI.verbose("Updated IDFA declaration")
154
154
  else
155
- UI.verbose("Creating IDFA delcaration")
155
+ UI.verbose("Creating IDFA declaration")
156
156
  version.create_idfa_declaration(attributes: attributes)
157
- UI.verbose("Created IDFA delcaration")
157
+ UI.verbose("Created IDFA declaration")
158
158
  end
159
159
 
160
160
  updated_idfa = true
161
161
  end
162
162
 
163
- UI.success("Successfully updated IDFA delcarations on App Store Connect") if updated_idfa
163
+ UI.success("Successfully updated IDFA declarations on App Store Connect") if updated_idfa
164
164
  end
165
165
 
166
166
  def update_submission_information(options, app)
@@ -614,8 +614,8 @@ module Deliver
614
614
  end
615
615
  UI.deprecated("You can find more info at https://docs.fastlane.tools/actions/deliver/#reference") if has_mapped_values
616
616
 
617
- age_rating_delcaration = version.fetch_age_rating_declaration
618
- age_rating_delcaration.update(attributes: attributes)
617
+ age_rating_declaration = version.fetch_age_rating_declaration
618
+ age_rating_declaration.update(attributes: attributes)
619
619
  end
620
620
  end
621
621
  # rubocop:enable Metrics/ClassLength
@@ -229,3 +229,6 @@ If you are on multiple App Store Connect teams, iTunes Transporter may need a pr
229
229
  ## Use an Application Specific Password to upload
230
230
 
231
231
  _pilot_/`upload_to_testflight` can use an [Application Specific Password via the `FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD` envirionment variable](https://docs.fastlane.tools/best-practices/continuous-integration/#application-specific-passwords) to upload a binary if both the `skip_waiting_for_build_processing` and `apple_id` options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)
232
+
233
+ ## Role for App Store Connect User
234
+ _pilot_/`upload_to_testflight` updates build information and testers after the build has finished processing. App Store Connect requires the "App Manager" or "Admin" role for your Apple account to update this information. The "Developer" role will allow builds to be uploaded but _will not_ allow updating of build information and testers.
@@ -72,13 +72,23 @@ module Fastlane
72
72
 
73
73
  UI.message('Querying request status')
74
74
 
75
+ # As of July 2020, the request UUID might not be available for polling yet which returns an error code
76
+ # This is now handled with the error_callback (which prevents an error from being raised)
77
+ # Catching this error allows for polling to continue until the notarization is complete
78
+ error = false
75
79
  notarization_info_response = Actions.sh(
76
80
  "xcrun altool --notarization-info #{notarization_request_id} -u #{apple_id_account.user} -p @env:FL_NOTARIZE_PASSWORD --output-format xml",
77
- log: verbose
81
+ log: verbose,
82
+ error_callback: lambda { |msg|
83
+ error = true
84
+ UI.error("Error polling for notarization info: #{msg}")
85
+ }
78
86
  )
79
87
 
80
- notarization_info_plist = Plist.parse_xml(notarization_info_response)
81
- notarization_info = notarization_info_plist['notarization-info']
88
+ unless error
89
+ notarization_info_plist = Plist.parse_xml(notarization_info_response)
90
+ notarization_info = notarization_info_plist['notarization-info']
91
+ end
82
92
  end
83
93
 
84
94
  log_url = notarization_info['LogFileURL']
@@ -51,6 +51,10 @@ module Fastlane
51
51
  command << "--use-modular-headers"
52
52
  end
53
53
 
54
+ if params[:synchronous]
55
+ command << "--synchronous"
56
+ end
57
+
54
58
  result = Actions.sh(command.join(' '))
55
59
  UI.success("Successfully pushed Podspec ⬆️ ")
56
60
  return result
@@ -127,7 +131,12 @@ module Fastlane
127
131
  description: "Use modular headers option during validation",
128
132
  optional: true,
129
133
  type: Boolean,
130
- env_name: "FL_POD_PUSH_USE_MODULAR_HEADERS")
134
+ env_name: "FL_POD_PUSH_USE_MODULAR_HEADERS"),
135
+ FastlaneCore::ConfigItem.new(key: :synchronous,
136
+ description: "If validation depends on other recently pushed pods, synchronize",
137
+ optional: true,
138
+ type: Boolean,
139
+ env_name: "FL_POD_PUSH_SYNCHRONOUS")
131
140
  ]
132
141
  end
133
142
 
@@ -108,7 +108,7 @@ module Fastlane
108
108
  optional: true),
109
109
  FastlaneCore::ConfigItem.new(key: :use_app_entitlements,
110
110
  env_name: "FL_USE_APP_ENTITLEMENTS",
111
- description: "Extract app bundle codesigning entitlements and combine with entitlements from new provisionin profile",
111
+ description: "Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile",
112
112
  conflicting_options: [:entitlements],
113
113
  is_string: false,
114
114
  optional: true),
@@ -24,6 +24,11 @@ module Fastlane
24
24
  end
25
25
 
26
26
  def self.setup_keychain
27
+ unless Helper.mac?
28
+ UI.message("Skipping Keychain setup on non-macOS CI Agent")
29
+ return
30
+ end
31
+
27
32
  unless ENV["MATCH_KEYCHAIN_NAME"].nil?
28
33
  UI.message("Skipping Keychain setup as a keychain was already specified")
29
34
  return
@@ -41,7 +41,7 @@ module Fastlane
41
41
  end
42
42
 
43
43
  def self.is_supported?(platform)
44
- [:ios, :mac].include?(platform)
44
+ true
45
45
  end
46
46
 
47
47
  def self.example_code
@@ -40,7 +40,7 @@ module Fastlane
40
40
  end
41
41
 
42
42
  def self.is_supported?(platform)
43
- [:ios, :mac].include?(platform)
43
+ true
44
44
  end
45
45
 
46
46
  def self.example_code
@@ -56,6 +56,9 @@ module Fastlane
56
56
  UI.message("Uploading '#{path}'...")
57
57
  command = []
58
58
  command << File.expand_path(params[:binary_path]).shellescape
59
+ if params[:debug]
60
+ command << "-d"
61
+ end
59
62
  if params[:app_id]
60
63
  command << "-ai #{params[:app_id].shellescape}"
61
64
  elsif params[:gsp_path]
@@ -68,7 +71,7 @@ module Fastlane
68
71
  begin
69
72
  command_to_execute = command.join(" ")
70
73
  UI.verbose("upload_dsym using command: #{command_to_execute}")
71
- Actions.sh(command_to_execute, log: false)
74
+ Actions.sh(command_to_execute, log: params[:debug])
72
75
  rescue => ex
73
76
  UI.error(ex.to_s) # it fails, however we don't want to fail everything just for this
74
77
  end
@@ -189,7 +192,12 @@ module Fastlane
189
192
  verify_block: proc do |value|
190
193
  min_threads = 1
191
194
  UI.user_error!("Too few threads (#{value}) minimum number of threads: #{min_threads}") unless value >= min_threads
192
- end)
195
+ end),
196
+ FastlaneCore::ConfigItem.new(key: :debug,
197
+ env_name: "FL_UPLOAD_SYMBOLS_TO_CRASHLYTICS_DEBUG",
198
+ description: "Enable debug mode for upload-symbols",
199
+ type: Boolean,
200
+ default_value: false)
193
201
  ]
194
202
  end
195
203
 
@@ -18,7 +18,7 @@ module Fastlane
18
18
  output << "```"
19
19
  output << "[sudo] gem install fastlane -NV"
20
20
  output << "```"
21
- output << "or alternatively using `brew cask install fastlane`"
21
+ output << "or alternatively using `brew install fastlane`"
22
22
  output << ""
23
23
  output << "# Available Actions"
24
24