fastlane 2.128.0 → 2.132.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +64 -64
  3. data/cert/lib/cert/module.rb +2 -0
  4. data/cert/lib/cert/options.rb +6 -0
  5. data/cert/lib/cert/runner.rb +17 -11
  6. data/deliver/lib/deliver/submit_for_review.rb +1 -1
  7. data/fastlane/lib/fastlane.rb +4 -1
  8. data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
  9. data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
  10. data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
  11. data/fastlane/lib/fastlane/actions/actions_helper.rb +4 -0
  12. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +11 -3
  13. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/carthage.rb +4 -3
  16. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/danger.rb +7 -0
  19. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +23 -4
  20. data/fastlane/lib/fastlane/actions/download_dsyms.rb +35 -9
  21. data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +58 -0
  22. data/fastlane/lib/fastlane/actions/get_version_number.rb +21 -2
  23. data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/gradle.rb +37 -8
  25. data/fastlane/lib/fastlane/actions/import_from_git.rb +1 -1
  26. data/fastlane/lib/fastlane/actions/onesignal.rb +59 -29
  27. data/fastlane/lib/fastlane/actions/pod_push.rb +29 -10
  28. data/fastlane/lib/fastlane/actions/puts.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/register_devices.rb +38 -22
  30. data/fastlane/lib/fastlane/actions/resign.rb +2 -2
  31. data/fastlane/lib/fastlane/actions/slather.rb +1 -0
  32. data/fastlane/lib/fastlane/actions/sonar.rb +18 -0
  33. data/fastlane/lib/fastlane/actions/update_fastlane.rb +1 -1
  34. data/fastlane/lib/fastlane/commands_generator.rb +17 -1
  35. data/fastlane/lib/fastlane/fast_file.rb +7 -2
  36. data/fastlane/lib/fastlane/helper/adb_helper.rb +5 -0
  37. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +12 -6
  38. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -0
  39. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -0
  40. data/fastlane/lib/fastlane/setup/setup_android.rb +1 -1
  41. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +116 -32
  42. data/fastlane/lib/fastlane/swift_fastlane_function.rb +11 -7
  43. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +4 -0
  44. data/fastlane/lib/fastlane/version.rb +1 -1
  45. data/fastlane/swift/Actions.swift +15 -0
  46. data/fastlane/swift/Deliverfile.swift +1 -1
  47. data/fastlane/swift/Fastlane.swift +341 -294
  48. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +9 -0
  49. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  50. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  51. data/fastlane/swift/Gymfile.swift +1 -1
  52. data/fastlane/swift/GymfileProtocol.swift +13 -11
  53. data/fastlane/swift/Matchfile.swift +1 -1
  54. data/fastlane/swift/MatchfileProtocol.swift +7 -1
  55. data/fastlane/swift/Plugins.swift +15 -0
  56. data/fastlane/swift/Precheckfile.swift +1 -1
  57. data/fastlane/swift/Scanfile.swift +1 -1
  58. data/fastlane/swift/ScanfileProtocol.swift +3 -3
  59. data/fastlane/swift/Screengrabfile.swift +1 -1
  60. data/fastlane/swift/Snapshotfile.swift +1 -1
  61. data/fastlane/swift/SnapshotfileProtocol.swift +3 -1
  62. data/fastlane/swift/upgrade_manifest.json +1 -1
  63. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +1 -1
  64. data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
  65. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -1
  66. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  67. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -3
  68. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +3 -2
  69. data/frameit/lib/frameit/editor.rb +1 -1
  70. data/frameit/lib/frameit/screenshot.rb +4 -0
  71. data/gym/lib/gym/.runner.rb.swp +0 -0
  72. data/gym/lib/gym/generators/build_command_generator.rb +5 -1
  73. data/gym/lib/gym/options.rb +17 -17
  74. data/gym/lib/gym/runner.rb +33 -5
  75. data/match/lib/match/generator.rb +1 -0
  76. data/match/lib/match/importer.rb +1 -1
  77. data/match/lib/match/module.rb +2 -0
  78. data/match/lib/match/nuke.rb +6 -6
  79. data/match/lib/match/options.rb +17 -0
  80. data/match/lib/match/runner.rb +13 -9
  81. data/match/lib/match/storage/git_storage.rb +8 -2
  82. data/match/lib/match/storage/google_cloud_storage.rb +82 -33
  83. data/match/lib/match/storage/interface.rb +1 -1
  84. data/pilot/lib/pilot/.manager.rb.swp +0 -0
  85. data/produce/lib/produce/service.rb +7 -1
  86. data/scan/lib/scan/options.rb +1 -1
  87. data/scan/lib/scan/runner.rb +1 -1
  88. data/sigh/lib/sigh/download_all.rb +48 -8
  89. data/sigh/lib/sigh/runner.rb +13 -5
  90. data/snapshot/lib/assets/SnapshotHelper.swift +3 -3
  91. data/snapshot/lib/snapshot/commands_generator.rb +2 -2
  92. data/snapshot/lib/snapshot/options.rb +5 -0
  93. data/snapshot/lib/snapshot/reports_generator.rb +3 -0
  94. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  95. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  96. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +16 -1
  97. data/snapshot/lib/snapshot/update.rb +4 -2
  98. data/spaceship/lib/spaceship/client.rb +1 -1
  99. data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
  100. data/spaceship/lib/spaceship/connect_api/models/app.rb +6 -6
  101. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +1 -0
  102. data/spaceship/lib/spaceship/connect_api/models/build.rb +3 -3
  103. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +1 -1
  104. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +1 -1
  105. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -1
  106. data/spaceship/lib/spaceship/connect_api/models/device.rb +1 -1
  107. data/spaceship/lib/spaceship/connect_api/models/profile.rb +1 -1
  108. data/spaceship/lib/spaceship/du/du_client.rb +4 -0
  109. data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
  110. data/spaceship/lib/spaceship/portal/certificate.rb +15 -1
  111. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +1 -1
  112. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  113. data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
  114. data/spaceship/lib/spaceship/tunes/app_version.rb +4 -0
  115. data/spaceship/lib/spaceship/tunes/application.rb +4 -0
  116. data/spaceship/lib/spaceship/tunes/availability.rb +40 -8
  117. data/spaceship/lib/spaceship/tunes/b2b_organization.rb +50 -0
  118. data/spaceship/lib/spaceship/tunes/build_details.rb +160 -18
  119. data/spaceship/lib/spaceship/tunes/display_family.rb +3 -3
  120. data/spaceship/lib/spaceship/tunes/iap.rb +2 -0
  121. data/spaceship/lib/spaceship/tunes/iap_detail.rb +17 -0
  122. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +10 -2
  123. data/spaceship/lib/spaceship/tunes/tunes_client.rb +63 -2
  124. data/supply/lib/supply/client.rb +1 -1
  125. metadata +59 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: cfbcd2e9eb321099998ee88a73eb4d57b48835bbfda6f1e463f5116099ca43e6
4
- data.tar.gz: f0013718dfe75e9282d2917642754498ad73486244ba32d804500f88889dcf25
2
+ SHA1:
3
+ metadata.gz: 695d000a1213e2308cfe825c9bcc8208af5e9733
4
+ data.tar.gz: d69ecd0ca465f574ca3d0a5fd059fa8cf8b5140b
5
5
  SHA512:
6
- metadata.gz: b2cbd0d9169e59413d82340364983e036d1a90ffc73cf8062f67b1278265f4464554d9a35ee9285c3df1bfa20f21b3dec1d9617f1c04744d41c48ef8e39f5fcd
7
- data.tar.gz: 0362bbb52b555bc5036c4be2261f1e3549d8eba8b827f3956e6c7af1a01d522dcee20fbb5a27c7cf3970b4a2f381ef4caba136e59cfba4bfde1d9a697beaf318
6
+ metadata.gz: a56c8c367b041464f2d6c14d946f1da6778d26aee8986060e3b2aefaa8c46deb9b97ad152c63eb7265c4c996374c2521caab7f9b32571a2f2f5b58a48f7251ea
7
+ data.tar.gz: 81236a7e159bae18edf8d624c4c7758263d6c09c613fdd3f7bc2e30d3c5ec5e707a496341caf2731eebd77fec4287971085886f72081eeb954b3010288fb33b0
data/README.md CHANGED
@@ -34,55 +34,29 @@ 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='iulian-onofrei'>
38
- <a href='https://github.com/revolter'>
39
- <img src='https://github.com/revolter.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
42
- </td>
43
- <td id='andrew-mcburney'>
44
- <a href='https://github.com/armcburney'>
45
- <img src='https://github.com/armcburney.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
48
- </td>
49
- <td id='fumiya-nakamura'>
50
- <a href='https://github.com/nafu'>
51
- <img src='https://github.com/nafu.png?size=140'>
52
- </a>
53
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
54
- </td>
55
37
  <td id='helmut-januschka'>
56
38
  <a href='https://github.com/hjanuschka'>
57
39
  <img src='https://github.com/hjanuschka.png?size=140'>
58
40
  </a>
59
41
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
60
42
  </td>
61
- <td id='felix-krause'>
62
- <a href='https://github.com/KrauseFx'>
63
- <img src='https://github.com/KrauseFx.png?size=140'>
43
+ <td id='manu-wallner'>
44
+ <a href='https://github.com/milch'>
45
+ <img src='https://github.com/milch.png?size=140'>
64
46
  </a>
65
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
66
48
  </td>
67
- </tr>
68
- <tr>
69
49
  <td id='aaron-brager'>
70
50
  <a href='https://github.com/getaaron'>
71
51
  <img src='https://github.com/getaaron.png?size=140'>
72
52
  </a>
73
53
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
74
54
  </td>
75
- <td id='stefan-natchev'>
76
- <a href='https://github.com/snatchev'>
77
- <img src='https://github.com/snatchev.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
80
- </td>
81
- <td id='maksym-grebenets'>
82
- <a href='https://github.com/mgrebenets'>
83
- <img src='https://github.com/mgrebenets.png?size=140'>
55
+ <td id='matthew-ellis'>
56
+ <a href='https://github.com/matthewellis'>
57
+ <img src='https://github.com/matthewellis.png?size=140'>
84
58
  </a>
85
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
86
60
  </td>
87
61
  <td id='olivier-halligon'>
88
62
  <a href='https://github.com/AliSoftware'>
@@ -90,12 +64,6 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
90
64
  </a>
91
65
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
92
66
  </td>
93
- <td id='jimmy-dee'>
94
- <a href='https://github.com/jdee'>
95
- <img src='https://github.com/jdee.png?size=140'>
96
- </a>
97
- <h4 align='center'>Jimmy Dee</h4>
98
- </td>
99
67
  </tr>
100
68
  <tr>
101
69
  <td id='kohki-miki'>
@@ -104,49 +72,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
104
72
  </a>
105
73
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
106
74
  </td>
75
+ <td id='luka-mirosevic'>
76
+ <a href='https://github.com/lmirosevic'>
77
+ <img src='https://github.com/lmirosevic.png?size=140'>
78
+ </a>
79
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
80
+ </td>
107
81
  <td id='josh-holtz'>
108
82
  <a href='https://github.com/joshdholtz'>
109
83
  <img src='https://github.com/joshdholtz.png?size=140'>
110
84
  </a>
111
85
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
112
86
  </td>
113
- <td id='matthew-ellis'>
114
- <a href='https://github.com/matthewellis'>
115
- <img src='https://github.com/matthewellis.png?size=140'>
116
- </a>
117
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
118
- </td>
119
- <td id='manu-wallner'>
120
- <a href='https://github.com/milch'>
121
- <img src='https://github.com/milch.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
124
- </td>
125
87
  <td id='joshua-liebowitz'>
126
88
  <a href='https://github.com/taquitos'>
127
89
  <img src='https://github.com/taquitos.png?size=140'>
128
90
  </a>
129
91
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
130
92
  </td>
131
- </tr>
132
- <tr>
133
- <td id='luka-mirosevic'>
134
- <a href='https://github.com/lmirosevic'>
135
- <img src='https://github.com/lmirosevic.png?size=140'>
136
- </a>
137
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
138
- </td>
139
93
  <td id='jan-piotrowski'>
140
94
  <a href='https://github.com/janpio'>
141
95
  <img src='https://github.com/janpio.png?size=140'>
142
96
  </a>
143
97
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
144
98
  </td>
145
- <td id='danielle-tomlinson'>
146
- <a href='https://github.com/endocrimes'>
147
- <img src='https://github.com/endocrimes.png?size=140'>
99
+ </tr>
100
+ <tr>
101
+ <td id='fumiya-nakamura'>
102
+ <a href='https://github.com/nafu'>
103
+ <img src='https://github.com/nafu.png?size=140'>
148
104
  </a>
149
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
150
106
  </td>
151
107
  <td id='jorge-revuelta-h'>
152
108
  <a href='https://github.com/minuscorp'>
@@ -154,12 +110,56 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
154
110
  </a>
155
111
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
156
112
  </td>
113
+ <td id='jimmy-dee'>
114
+ <a href='https://github.com/jdee'>
115
+ <img src='https://github.com/jdee.png?size=140'>
116
+ </a>
117
+ <h4 align='center'>Jimmy Dee</h4>
118
+ </td>
119
+ <td id='stefan-natchev'>
120
+ <a href='https://github.com/snatchev'>
121
+ <img src='https://github.com/snatchev.png?size=140'>
122
+ </a>
123
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
124
+ </td>
125
+ <td id='danielle-tomlinson'>
126
+ <a href='https://github.com/endocrimes'>
127
+ <img src='https://github.com/endocrimes.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
130
+ </td>
131
+ </tr>
132
+ <tr>
133
+ <td id='felix-krause'>
134
+ <a href='https://github.com/KrauseFx'>
135
+ <img src='https://github.com/KrauseFx.png?size=140'>
136
+ </a>
137
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
138
+ </td>
139
+ <td id='iulian-onofrei'>
140
+ <a href='https://github.com/revolter'>
141
+ <img src='https://github.com/revolter.png?size=140'>
142
+ </a>
143
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
144
+ </td>
157
145
  <td id='jérôme-lacoste'>
158
146
  <a href='https://github.com/lacostej'>
159
147
  <img src='https://github.com/lacostej.png?size=140'>
160
148
  </a>
161
149
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
162
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>
156
+ </td>
157
+ <td id='andrew-mcburney'>
158
+ <a href='https://github.com/armcburney'>
159
+ <img src='https://github.com/armcburney.png?size=140'>
160
+ </a>
161
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
162
+ </td>
163
163
  </tr>
164
164
  </table>
165
165
 
@@ -1,4 +1,5 @@
1
1
  require 'fastlane_core/helper'
2
+ require 'fastlane/boolean'
2
3
 
3
4
  module Cert
4
5
  # Use this to just setup the configuration attribute and set it later somewhere else
@@ -8,6 +9,7 @@ module Cert
8
9
 
9
10
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
10
11
  UI = FastlaneCore::UI
12
+ Boolean = Fastlane::Boolean
11
13
  ROOT = Pathname.new(File.expand_path('../../..', __FILE__))
12
14
 
13
15
  ENV['FASTLANE_TEAM_ID'] ||= ENV["CERT_TEAM_ID"]
@@ -20,6 +20,12 @@ module Cert
20
20
  description: "Create a certificate even if an existing certificate exists",
21
21
  is_string: false,
22
22
  default_value: false),
23
+ FastlaneCore::ConfigItem.new(key: :generate_apple_certs,
24
+ env_name: "CERT_GENERATE_APPLE_CERTS",
25
+ description: "Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution)",
26
+ type: Boolean,
27
+ default_value: FastlaneCore::Helper.mac? && FastlaneCore::Helper.xcode_at_least?('11'),
28
+ default_value_dynamic: true),
23
29
  FastlaneCore::ConfigItem.new(key: :username,
24
30
  short_option: "-u",
25
31
  env_name: "CERT_USERNAME",
@@ -134,19 +134,25 @@ module Cert
134
134
 
135
135
  # The kind of certificate we're interested in
136
136
  def certificate_type
137
- case Cert.config[:platform].to_s
138
- when 'ios', 'tvos'
139
- cert_type = Spaceship.certificate.production
140
- cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house?
141
- cert_type = Spaceship.certificate.development if Cert.config[:development]
142
-
143
- when 'macos'
144
- cert_type = Spaceship.certificate.mac_app_distribution
145
- cert_type = Spaceship.certificate.mac_development if Cert.config[:development]
146
-
137
+ # Check if apple certs (Xcode 11 and later) should be used
138
+ if Cert.config[:generate_apple_certs]
139
+ cert_type = Spaceship.certificate.apple_distribution
140
+ cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house? # Enterprise doesn't use Apple Distribution
141
+ cert_type = Spaceship.certificate.apple_development if Cert.config[:development]
142
+ else
143
+ case Cert.config[:platform].to_s
144
+ when 'ios', 'tvos'
145
+ cert_type = Spaceship.certificate.production
146
+ cert_type = Spaceship.certificate.in_house if Spaceship.client.in_house?
147
+ cert_type = Spaceship.certificate.development if Cert.config[:development]
148
+
149
+ when 'macos'
150
+ cert_type = Spaceship.certificate.mac_app_distribution
151
+ cert_type = Spaceship.certificate.mac_development if Cert.config[:development]
152
+ end
147
153
  end
148
154
 
149
- cert_type
155
+ return cert_type
150
156
  end
151
157
 
152
158
  def create_certificate
@@ -59,7 +59,7 @@ module Deliver
59
59
  build = nil
60
60
 
61
61
  loop do
62
- # Sometimes candidate_builds don't appear immediately after submittion
62
+ # Sometimes candidate_builds don't appear immediately after submission
63
63
  # Wait for candidate_builds to appear on App Store Connect
64
64
  # Issue https://github.com/fastlane/fastlane/issues/10411
65
65
  candidate_builds = app.latest_version.candidate_builds
@@ -26,6 +26,7 @@ require 'fastlane/documentation/docs_generator'
26
26
  require 'fastlane/other_action'
27
27
  require 'fastlane/plugins/plugins'
28
28
  require 'fastlane/fastlane_require'
29
+ require "fastlane/swift_fastlane_api_generator.rb"
29
30
 
30
31
  module Fastlane
31
32
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore
@@ -39,10 +40,12 @@ module Fastlane
39
40
 
40
41
  if FastlaneCore::FastlaneFolder.path
41
42
  actions_path = File.join(FastlaneCore::FastlaneFolder.path, 'actions')
42
- Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
43
+ @external_actions = Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
43
44
  end
44
45
  end
45
46
 
47
+ attr_reader :external_actions
48
+
46
49
  def plugin_manager
47
50
  @plugin_manager ||= Fastlane::PluginManager.new
48
51
  end
@@ -105,6 +105,7 @@ module Fastlane
105
105
  def self.load_external_actions(path)
106
106
  UI.user_error!("You need to pass a valid path") unless File.exist?(path)
107
107
 
108
+ class_refs = []
108
109
  Dir[File.expand_path('*.rb', path)].each do |file|
109
110
  begin
110
111
  require file
@@ -123,6 +124,7 @@ module Fastlane
123
124
  class_name = file_name.fastlane_class + 'Action'
124
125
  begin
125
126
  class_ref = Fastlane::Actions.const_get(class_name)
127
+ class_refs << class_ref
126
128
 
127
129
  if class_ref.respond_to?(:run)
128
130
  UI.success("Successfully loaded custom action '#{file}'.") if FastlaneCore::Globals.verbose?
@@ -139,6 +141,8 @@ module Fastlane
139
141
  end
140
142
  end
141
143
  Actions.reset_aliases
144
+
145
+ return class_refs
142
146
  end
143
147
 
144
148
  def self.formerly_bundled_actions
@@ -36,6 +36,7 @@ module Fastlane
36
36
  return build_nr
37
37
  else
38
38
  version_number = params[:version]
39
+ platform = params[:platform]
39
40
 
40
41
  # Create filter for get_builds with optional version number
41
42
  filter = { app: app.apple_id }
@@ -46,18 +47,25 @@ module Fastlane
46
47
  version_number_message = "any version"
47
48
  end
48
49
 
50
+ if platform
51
+ filter["preReleaseVersion.platform"] = Spaceship::ConnectAPI::Platform.map(platform)
52
+ platform_message = "#{platform} platform"
53
+ else
54
+ platform_message = "any platform"
55
+ end
56
+
49
57
  UI.message("Fetching the latest build number for #{version_number_message}")
50
58
 
51
59
  # Get latest build for optional version number and return build number if found
52
- build = Spaceship::ConnectAPI.get_builds(filter: filter, sort: "-version", includes: "preReleaseVersion", limit: 1).first
60
+ build = Spaceship::ConnectAPI.get_builds(filter: filter, sort: "-uploadedDate", includes: "preReleaseVersion", limit: 1).first
53
61
  if build
54
62
  build_nr = build.version
55
- UI.message("Latest upload for version #{build.app_version} is build: #{build_nr}")
63
+ UI.message("Latest upload for version #{build.app_version} on #{platform_message} is build: #{build_nr}")
56
64
  return build_nr
57
65
  end
58
66
 
59
67
  # Let user know that build couldn't be found
60
- UI.important("Could not find a build for #{version_number_message} on App Store Connect")
68
+ UI.important("Could not find a build for #{version_number_message} on #{platform_message} on App Store Connect")
61
69
 
62
70
  if params[:initial_build_number].nil?
63
71
  UI.user_error!("Could not find a build on App Store Connect - and 'initial_build_number' option is not set")
@@ -115,7 +115,7 @@ module Fastlane
115
115
  optional: true),
116
116
  FastlaneCore::ConfigItem.new(key: :params,
117
117
  env_name: "APPETIZE_VIEWING_URL_GENERATOR_PARAMS",
118
- description: "Specifiy params value to be passed to Appetize",
118
+ description: "Specify params value to be passed to Appetize",
119
119
  is_string: true,
120
120
  optional: true),
121
121
  FastlaneCore::ConfigItem.new(key: :proxy,
@@ -50,7 +50,7 @@ module Fastlane
50
50
  if params[:code_sign_identity]
51
51
  build_configuration_list.set_setting("CODE_SIGN_IDENTITY", params[:code_sign_identity])
52
52
 
53
- # We also need to update the value if it was overriden for a specific SDK
53
+ # We also need to update the value if it was overridden for a specific SDK
54
54
  build_configuration_list.build_configurations.each do |build_configuration|
55
55
  codesign_build_settings_keys = build_configuration.build_settings.keys.select { |key| key.to_s.match(/CODE_SIGN_IDENTITY.*/) }
56
56
  codesign_build_settings_keys.each do |setting|
@@ -11,8 +11,10 @@ module Fastlane
11
11
 
12
12
  if command_name == "archive" && params[:frameworks].count > 0
13
13
  cmd.concat(params[:frameworks])
14
- elsif ["update", "build", "bootstrap"].include?(command_name) && params[:dependencies].count > 0
15
- cmd.concat(params[:dependencies])
14
+ # "update", "build" and "bootstrap" are the only commands that support "--derived-data" parameter
15
+ elsif ["update", "build", "bootstrap"].include?(command_name)
16
+ cmd.concat(params[:dependencies]) if params[:dependencies].count > 0
17
+ cmd << "--derived-data #{params[:derived_data].shellescape}" if params[:derived_data]
16
18
  end
17
19
 
18
20
  cmd << "--output #{params[:output]}" if params[:output]
@@ -24,7 +26,6 @@ module Fastlane
24
26
  cmd << "--verbose" if params[:verbose] == true
25
27
  cmd << "--platform #{params[:platform]}" if params[:platform]
26
28
  cmd << "--configuration #{params[:configuration]}" if params[:configuration]
27
- cmd << "--derived-data #{params[:derived_data].shellescape}" if params[:derived_data]
28
29
  cmd << "--toolchain #{params[:toolchain]}" if params[:toolchain]
29
30
  cmd << "--project-directory #{params[:project_directory]}" if params[:project_directory]
30
31
  cmd << "--cache-builds" if params[:cache_builds]
@@ -50,7 +50,7 @@ module Fastlane
50
50
  end
51
51
  }
52
52
  }) do |result|
53
- UI.success("Successfully commited file to GitHub")
53
+ UI.success("Successfully committed file to GitHub")
54
54
  json = result[:json]
55
55
  html_url = json['commit']['html_url']
56
56
  download_url = json['content']['download_url']
@@ -16,7 +16,7 @@ module Fastlane
16
16
  # If any of the paths include "*", we assume that we are referring to the Unix entries
17
17
  # e.g /tmp/fastlane/* refers to all the files in /tmp/fastlane
18
18
  # We use Dir.glob to expand all those paths, this would create an array of arrays though, so flatten
19
- artifacts = artifacts_to_search.map { |f| f.include?("*") ? Dir.glob(f) : f }.flatten
19
+ artifacts = artifacts_to_search.flat_map { |f| f.include?("*") ? Dir.glob(f) : f }
20
20
 
21
21
  UI.verbose("Copying artifacts #{artifacts.join(', ')} to #{target_path}")
22
22
  UI.verbose(params[:keep_original] ? "Keeping original files" : "Not keeping original files")
@@ -18,6 +18,7 @@ module Fastlane
18
18
  cmd << "--dangerfile=#{dangerfile}" if dangerfile
19
19
  cmd << "--fail-on-errors=true" if params[:fail_on_errors]
20
20
  cmd << "--new-comment" if params[:new_comment]
21
+ cmd << "--remove-previous-comments" if params[:remove_previous_comments]
21
22
  cmd << "--base=#{base}" if base
22
23
  cmd << "--head=#{head}" if head
23
24
  cmd << "pr #{pr}" if pr
@@ -78,6 +79,12 @@ module Fastlane
78
79
  is_string: false,
79
80
  optional: true,
80
81
  default_value: false),
82
+ FastlaneCore::ConfigItem.new(key: :remove_previous_comments,
83
+ env_name: "FL_DANGER_REMOVE_PREVIOUS_COMMENT",
84
+ description: "Makes Danger remove all previous comment and create a new one in the end of the list",
85
+ is_string: false,
86
+ optional: true,
87
+ default_value: false),
81
88
  FastlaneCore::ConfigItem.new(key: :base,
82
89
  env_name: "FL_DANGER_BASE",
83
90
  description: "A branch/tag/commit to use as the base of the diff. [master|dev|stable]",