fastlane 2.128.1 → 2.133.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 (124) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +72 -72
  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/actions_helper.rb +4 -0
  10. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +11 -3
  11. data/fastlane/lib/fastlane/actions/appetize_viewing_url_generator.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/carthage.rb +4 -3
  14. data/fastlane/lib/fastlane/actions/commit_github_file.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/copy_artifacts.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/danger.rb +7 -0
  17. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +23 -4
  18. data/fastlane/lib/fastlane/actions/download_dsyms.rb +35 -9
  19. data/fastlane/lib/fastlane/actions/ensure_env_vars.rb +58 -0
  20. data/fastlane/lib/fastlane/actions/get_version_number.rb +21 -2
  21. data/fastlane/lib/fastlane/actions/github_api.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/gradle.rb +37 -8
  23. data/fastlane/lib/fastlane/actions/import_from_git.rb +1 -1
  24. data/fastlane/lib/fastlane/actions/onesignal.rb +59 -29
  25. data/fastlane/lib/fastlane/actions/pod_push.rb +29 -10
  26. data/fastlane/lib/fastlane/actions/puts.rb +1 -1
  27. data/fastlane/lib/fastlane/actions/register_devices.rb +38 -22
  28. data/fastlane/lib/fastlane/actions/resign.rb +2 -2
  29. data/fastlane/lib/fastlane/actions/slather.rb +1 -0
  30. data/fastlane/lib/fastlane/actions/sonar.rb +18 -0
  31. data/fastlane/lib/fastlane/actions/update_fastlane.rb +1 -1
  32. data/fastlane/lib/fastlane/commands_generator.rb +17 -1
  33. data/fastlane/lib/fastlane/fast_file.rb +7 -2
  34. data/fastlane/lib/fastlane/helper/adb_helper.rb +5 -0
  35. data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +12 -6
  36. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -0
  37. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -0
  38. data/fastlane/lib/fastlane/setup/setup_android.rb +1 -1
  39. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +126 -34
  40. data/fastlane/lib/fastlane/swift_fastlane_function.rb +82 -9
  41. data/fastlane/lib/fastlane/swift_runner_upgrader.rb +4 -0
  42. data/fastlane/lib/fastlane/version.rb +1 -1
  43. data/fastlane/swift/Actions.swift +15 -0
  44. data/fastlane/swift/Deliverfile.swift +1 -1
  45. data/fastlane/swift/DeliverfileProtocol.swift +121 -1
  46. data/fastlane/swift/Fastlane.swift +4164 -291
  47. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +9 -0
  48. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  49. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  50. data/fastlane/swift/Gymfile.swift +1 -1
  51. data/fastlane/swift/GymfileProtocol.swift +93 -11
  52. data/fastlane/swift/Matchfile.swift +1 -1
  53. data/fastlane/swift/MatchfileProtocol.swift +65 -1
  54. data/fastlane/swift/Plugins.swift +15 -0
  55. data/fastlane/swift/Precheckfile.swift +1 -1
  56. data/fastlane/swift/PrecheckfileProtocol.swift +15 -2
  57. data/fastlane/swift/Scanfile.swift +1 -1
  58. data/fastlane/swift/ScanfileProtocol.swift +111 -3
  59. data/fastlane/swift/Screengrabfile.swift +1 -1
  60. data/fastlane/swift/ScreengrabfileProtocol.swift +39 -2
  61. data/fastlane/swift/Snapshotfile.swift +1 -1
  62. data/fastlane/swift/SnapshotfileProtocol.swift +71 -1
  63. data/fastlane/swift/upgrade_manifest.json +1 -1
  64. data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +1 -1
  65. data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
  66. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +1 -1
  67. data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
  68. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -3
  69. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +3 -2
  70. data/frameit/lib/frameit/editor.rb +1 -1
  71. data/frameit/lib/frameit/screenshot.rb +4 -0
  72. data/gym/lib/gym/.runner.rb.swp +0 -0
  73. data/gym/lib/gym/generators/build_command_generator.rb +5 -1
  74. data/gym/lib/gym/options.rb +17 -17
  75. data/gym/lib/gym/runner.rb +33 -5
  76. data/match/lib/match/generator.rb +1 -0
  77. data/match/lib/match/importer.rb +1 -1
  78. data/match/lib/match/module.rb +2 -0
  79. data/match/lib/match/nuke.rb +6 -6
  80. data/match/lib/match/options.rb +17 -0
  81. data/match/lib/match/runner.rb +12 -8
  82. data/match/lib/match/storage/git_storage.rb +8 -2
  83. data/match/lib/match/storage/google_cloud_storage.rb +85 -33
  84. data/match/lib/match/storage/interface.rb +1 -1
  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/models/app.rb +6 -6
  100. data/spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb +1 -0
  101. data/spaceship/lib/spaceship/connect_api/models/build.rb +3 -3
  102. data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +1 -1
  103. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +1 -1
  104. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -1
  105. data/spaceship/lib/spaceship/connect_api/models/device.rb +1 -1
  106. data/spaceship/lib/spaceship/connect_api/models/profile.rb +1 -1
  107. data/spaceship/lib/spaceship/du/du_client.rb +4 -0
  108. data/spaceship/lib/spaceship/portal/.certificate.rb.swp +0 -0
  109. data/spaceship/lib/spaceship/portal/certificate.rb +15 -1
  110. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +1 -1
  111. data/spaceship/lib/spaceship/spaceauth_runner.rb +1 -1
  112. data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
  113. data/spaceship/lib/spaceship/tunes/app_version.rb +4 -0
  114. data/spaceship/lib/spaceship/tunes/application.rb +4 -0
  115. data/spaceship/lib/spaceship/tunes/availability.rb +40 -8
  116. data/spaceship/lib/spaceship/tunes/b2b_organization.rb +50 -0
  117. data/spaceship/lib/spaceship/tunes/build_details.rb +160 -18
  118. data/spaceship/lib/spaceship/tunes/display_family.rb +3 -3
  119. data/spaceship/lib/spaceship/tunes/iap.rb +2 -0
  120. data/spaceship/lib/spaceship/tunes/iap_detail.rb +17 -0
  121. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +10 -2
  122. data/spaceship/lib/spaceship/tunes/tunes_client.rb +63 -2
  123. data/supply/lib/supply/client.rb +1 -1
  124. metadata +54 -47
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fa6539a87eefa14196d94df8abc20a93b9c9d8f9
4
- data.tar.gz: 490b1d8276b06a3fc9b65556c20a99366e4495ef
2
+ SHA256:
3
+ metadata.gz: f60586154ca46a8972940838fd1c842c4ea3d15710660ae67f6a1daa6e549725
4
+ data.tar.gz: 796c700b97db4495e2f108eec428ccb03dd6b2112fa8df8dcca3650165a00484
5
5
  SHA512:
6
- metadata.gz: ce07c677c47a887e03463ba9ba7bb591c4f832182a80275246093f83a20bb89e57523612b086476bf8c9306835c5606a4bba2dff696a0235488463f8e2dedc79
7
- data.tar.gz: 1ac41e3f7002614c632ff3f094dec41fb33bdaa95b16d2729cbf3e2c3add3be99dc3b29487969a47344600bc135bbcb263d805444681153ffb46bc961389970c
6
+ metadata.gz: 73fb7ed813d160104e2481a6923797d673dc12109f60ad1c24b743a2dd0477460e70e614da2701c386ae5d0912a1964f4dee49a4db8c32a8a0a9ddba0a45cb29
7
+ data.tar.gz: e909f2a16fea9377e4fbf21466e38d64b5428b539db2751a1c28a83d3e6ae45aa27bce88960756c2d9056830c66660ccc3445317eeaa55156c58e699afd31e4d
data/README.md CHANGED
@@ -34,61 +34,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='jorge-revuelta-h'>
38
- <a href='https://github.com/minuscorp'>
39
- <img src='https://github.com/minuscorp.png?size=140'>
40
- </a>
41
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
42
- </td>
43
- <td id='iulian-onofrei'>
44
- <a href='https://github.com/revolter'>
45
- <img src='https://github.com/revolter.png?size=140'>
46
- </a>
47
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
48
- </td>
49
37
  <td id='olivier-halligon'>
50
38
  <a href='https://github.com/AliSoftware'>
51
39
  <img src='https://github.com/AliSoftware.png?size=140'>
52
40
  </a>
53
41
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
54
42
  </td>
55
- <td id='felix-krause'>
56
- <a href='https://github.com/KrauseFx'>
57
- <img src='https://github.com/KrauseFx.png?size=140'>
58
- </a>
59
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
60
- </td>
61
- <td id='stefan-natchev'>
62
- <a href='https://github.com/snatchev'>
63
- <img src='https://github.com/snatchev.png?size=140'>
64
- </a>
65
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
66
- </td>
67
- </tr>
68
- <tr>
69
- <td id='joshua-liebowitz'>
70
- <a href='https://github.com/taquitos'>
71
- <img src='https://github.com/taquitos.png?size=140'>
72
- </a>
73
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
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>
81
- <td id='danielle-tomlinson'>
82
- <a href='https://github.com/endocrimes'>
83
- <img src='https://github.com/endocrimes.png?size=140'>
43
+ <td id='helmut-januschka'>
44
+ <a href='https://github.com/hjanuschka'>
45
+ <img src='https://github.com/hjanuschka.png?size=140'>
84
46
  </a>
85
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
86
48
  </td>
87
- <td id='aaron-brager'>
88
- <a href='https://github.com/getaaron'>
89
- <img src='https://github.com/getaaron.png?size=140'>
49
+ <td id='jérôme-lacoste'>
50
+ <a href='https://github.com/lacostej'>
51
+ <img src='https://github.com/lacostej.png?size=140'>
90
52
  </a>
91
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
92
54
  </td>
93
55
  <td id='josh-holtz'>
94
56
  <a href='https://github.com/joshdholtz'>
@@ -96,31 +58,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
96
58
  </a>
97
59
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
98
60
  </td>
99
- </tr>
100
- <tr>
101
- <td id='jan-piotrowski'>
102
- <a href='https://github.com/janpio'>
103
- <img src='https://github.com/janpio.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'>
104
64
  </a>
105
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
106
66
  </td>
67
+ </tr>
68
+ <tr>
107
69
  <td id='maksym-grebenets'>
108
70
  <a href='https://github.com/mgrebenets'>
109
71
  <img src='https://github.com/mgrebenets.png?size=140'>
110
72
  </a>
111
73
  <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
112
74
  </td>
113
- <td id='fumiya-nakamura'>
114
- <a href='https://github.com/nafu'>
115
- <img src='https://github.com/nafu.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'>
116
78
  </a>
117
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
79
+ <h4 align='center'>Jimmy Dee</h4>
118
80
  </td>
119
- <td id='helmut-januschka'>
120
- <a href='https://github.com/hjanuschka'>
121
- <img src='https://github.com/hjanuschka.png?size=140'>
81
+ <td id='danielle-tomlinson'>
82
+ <a href='https://github.com/endocrimes'>
83
+ <img src='https://github.com/endocrimes.png?size=140'>
122
84
  </a>
123
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
124
86
  </td>
125
87
  <td id='andrew-mcburney'>
126
88
  <a href='https://github.com/armcburney'>
@@ -128,13 +90,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
128
90
  </a>
129
91
  <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
130
92
  </td>
93
+ <td id='luka-mirosevic'>
94
+ <a href='https://github.com/lmirosevic'>
95
+ <img src='https://github.com/lmirosevic.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
98
+ </td>
131
99
  </tr>
132
100
  <tr>
133
- <td id='jimmy-dee'>
134
- <a href='https://github.com/jdee'>
135
- <img src='https://github.com/jdee.png?size=140'>
101
+ <td id='joshua-liebowitz'>
102
+ <a href='https://github.com/taquitos'>
103
+ <img src='https://github.com/taquitos.png?size=140'>
136
104
  </a>
137
- <h4 align='center'>Jimmy Dee</h4>
105
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
106
+ </td>
107
+ <td id='stefan-natchev'>
108
+ <a href='https://github.com/snatchev'>
109
+ <img src='https://github.com/snatchev.png?size=140'>
110
+ </a>
111
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
138
112
  </td>
139
113
  <td id='kohki-miki'>
140
114
  <a href='https://github.com/giginet'>
@@ -148,17 +122,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
148
122
  </a>
149
123
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
150
124
  </td>
151
- <td id='jérôme-lacoste'>
152
- <a href='https://github.com/lacostej'>
153
- <img src='https://github.com/lacostej.png?size=140'>
125
+ <td id='fumiya-nakamura'>
126
+ <a href='https://github.com/nafu'>
127
+ <img src='https://github.com/nafu.png?size=140'>
154
128
  </a>
155
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
156
130
  </td>
157
- <td id='matthew-ellis'>
158
- <a href='https://github.com/matthewellis'>
159
- <img src='https://github.com/matthewellis.png?size=140'>
131
+ </tr>
132
+ <tr>
133
+ <td id='jan-piotrowski'>
134
+ <a href='https://github.com/janpio'>
135
+ <img src='https://github.com/janpio.png?size=140'>
160
136
  </a>
161
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
138
+ </td>
139
+ <td id='felix-krause'>
140
+ <a href='https://github.com/KrauseFx'>
141
+ <img src='https://github.com/KrauseFx.png?size=140'>
142
+ </a>
143
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
144
+ </td>
145
+ <td id='jorge-revuelta-h'>
146
+ <a href='https://github.com/minuscorp'>
147
+ <img src='https://github.com/minuscorp.png?size=140'>
148
+ </a>
149
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
150
+ </td>
151
+ <td id='aaron-brager'>
152
+ <a href='https://github.com/getaaron'>
153
+ <img src='https://github.com/getaaron.png?size=140'>
154
+ </a>
155
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
156
+ </td>
157
+ <td id='iulian-onofrei'>
158
+ <a href='https://github.com/revolter'>
159
+ <img src='https://github.com/revolter.png?size=140'>
160
+ </a>
161
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  </table>
@@ -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]",