fastlane 2.172.0 → 2.177.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -82
  3. data/cert/lib/cert/options.rb +2 -2
  4. data/deliver/lib/deliver/app_screenshot.rb +6 -2
  5. data/deliver/lib/deliver/options.rb +2 -2
  6. data/deliver/lib/deliver/runner.rb +2 -2
  7. data/deliver/lib/deliver/upload_metadata.rb +3 -3
  8. data/deliver/lib/deliver/upload_screenshots.rb +12 -11
  9. data/fastlane/lib/fastlane/actions/adb.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +2 -2
  11. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -1
  12. data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
  13. data/fastlane/lib/fastlane/actions/appetize.rb +13 -1
  14. data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +10 -2
  15. data/fastlane/lib/fastlane/actions/carthage.rb +22 -0
  16. data/fastlane/lib/fastlane/actions/cocoapods.rb +15 -1
  17. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
  18. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  19. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +8 -2
  20. data/fastlane/lib/fastlane/actions/download_dsyms.rb +5 -15
  21. data/fastlane/lib/fastlane/actions/git_commit.rb +1 -1
  22. data/fastlane/lib/fastlane/actions/jazzy.rb +10 -1
  23. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
  24. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -2
  25. data/fastlane/lib/fastlane/actions/register_device.rb +2 -2
  26. data/fastlane/lib/fastlane/actions/register_devices.rb +2 -2
  27. data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
  28. data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +1 -1
  30. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -5
  31. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +5 -1
  32. data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
  33. data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
  34. data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
  35. data/fastlane/lib/fastlane/version.rb +1 -1
  36. data/fastlane/swift/Actions.swift +1 -1
  37. data/fastlane/swift/Appfile.swift +1 -1
  38. data/fastlane/swift/ArgumentProcessor.swift +1 -1
  39. data/fastlane/swift/ControlCommand.swift +1 -1
  40. data/fastlane/swift/Deliverfile.swift +1 -1
  41. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  42. data/fastlane/swift/Fastlane.swift +54 -19
  43. data/fastlane/swift/Gymfile.swift +1 -1
  44. data/fastlane/swift/GymfileProtocol.swift +1 -1
  45. data/fastlane/swift/LaneFileProtocol.swift +1 -1
  46. data/fastlane/swift/MainProcess.swift +1 -1
  47. data/fastlane/swift/Matchfile.swift +1 -1
  48. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  49. data/fastlane/swift/Plugins.swift +1 -1
  50. data/fastlane/swift/Precheckfile.swift +1 -1
  51. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  52. data/fastlane/swift/RubyCommand.swift +1 -1
  53. data/fastlane/swift/RubyCommandable.swift +1 -1
  54. data/fastlane/swift/Runner.swift +2 -2
  55. data/fastlane/swift/RunnerArgument.swift +1 -1
  56. data/fastlane/swift/Scanfile.swift +1 -1
  57. data/fastlane/swift/ScanfileProtocol.swift +9 -1
  58. data/fastlane/swift/Screengrabfile.swift +1 -1
  59. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  60. data/fastlane/swift/Snapshotfile.swift +1 -1
  61. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  62. data/fastlane/swift/SocketClient.swift +1 -1
  63. data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
  64. data/fastlane/swift/SocketResponse.swift +1 -1
  65. data/fastlane/swift/formatting/Brewfile.lock.json +20 -14
  66. data/fastlane/swift/main.swift +1 -1
  67. data/fastlane_core/lib/fastlane_core.rb +1 -0
  68. data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
  69. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +1 -1
  70. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +23 -0
  71. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +9 -5
  72. data/fastlane_core/lib/fastlane_core/helper.rb +26 -5
  73. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
  74. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +4 -2
  75. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
  76. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
  77. data/fastlane_core/lib/fastlane_core/project.rb +23 -9
  78. data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +2 -2
  79. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
  80. data/gym/lib/gym/.runner.rb.swp +0 -0
  81. data/gym/lib/gym/error_handler.rb +8 -0
  82. data/{fastlane/lib/fastlane/actions/.update_fastlane.rb.swp → gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp} +0 -0
  83. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
  84. data/match/lib/match/nuke.rb +5 -0
  85. data/match/lib/match/options.rb +2 -2
  86. data/pilot/lib/pilot/build_manager.rb +16 -4
  87. data/pilot/lib/pilot/options.rb +3 -3
  88. data/precheck/lib/precheck/options.rb +2 -2
  89. data/precheck/lib/precheck/runner.rb +1 -1
  90. data/scan/lib/scan/detect_values.rb +4 -1
  91. data/scan/lib/scan/options.rb +10 -0
  92. data/scan/lib/scan/runner.rb +27 -0
  93. data/screengrab/lib/screengrab/android_environment.rb +2 -2
  94. data/screengrab/lib/screengrab/runner.rb +1 -2
  95. data/sigh/lib/sigh/options.rb +2 -2
  96. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  97. data/spaceship/README.md +2 -2
  98. data/spaceship/lib/spaceship/client.rb +32 -18
  99. data/spaceship/lib/spaceship/connect_api/api_client.rb +40 -7
  100. data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -1
  101. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +5 -0
  102. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  103. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +6 -0
  104. data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
  105. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  106. data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +24 -0
  107. data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +26 -4
  108. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +13 -0
  109. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +53 -0
  110. data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
  111. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -0
  112. data/spaceship/lib/spaceship/playground.rb +2 -2
  113. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
  114. data/spaceship/lib/spaceship/two_step_or_factor_client.rb +42 -29
  115. data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
  116. metadata +35 -19
@@ -10,7 +10,7 @@ module Fastlane
10
10
  binary_url = get_binary_link(binary, api_key, store_id, params[:group_ids])
11
11
  return if binary_url.nil?
12
12
  screenshots_url = get_screenshots_links(api_key, store_id, params[:screenshots], params[:locale], params[:device])
13
- upload_on_appaloosa(api_key, store_id, binary_url, screenshots_url, params[:group_ids], params[:description])
13
+ upload_on_appaloosa(api_key, store_id, binary_url, screenshots_url, params[:group_ids], params[:description], params[:changelog])
14
14
  end
15
15
 
16
16
  def self.get_binary_link(binary, api_key, store_id, group_ids)
@@ -101,7 +101,7 @@ module Fastlane
101
101
  end.compact
102
102
  end
103
103
 
104
- def self.upload_on_appaloosa(api_key, store_id, binary_path, screenshots, group_ids, description)
104
+ def self.upload_on_appaloosa(api_key, store_id, binary_path, screenshots, group_ids, description, changelog)
105
105
  screenshots = all_screenshots_links(screenshots)
106
106
  uri = URI("#{APPALOOSA_SERVER}/#{store_id}/mobile_application_updates/upload")
107
107
  http = Net::HTTP.new(uri.host, uri.port)
@@ -111,6 +111,7 @@ module Fastlane
111
111
  api_key: api_key,
112
112
  mobile_application_update: {
113
113
  description: description,
114
+ changelog: changelog,
114
115
  binary_path: binary_path,
115
116
  screenshot1: screenshots[0],
116
117
  screenshot2: screenshots[1],
@@ -218,6 +219,10 @@ module Fastlane
218
219
  FastlaneCore::ConfigItem.new(key: :description,
219
220
  env_name: 'FL_APPALOOSA_DESCRIPTION',
220
221
  description: 'Your app description',
222
+ optional: true),
223
+ FastlaneCore::ConfigItem.new(key: :changelog,
224
+ env_name: 'FL_APPALOOSA_CHANGELOG',
225
+ description: 'Your app changelog',
221
226
  optional: true)
222
227
  ]
223
228
  end
@@ -31,6 +31,10 @@ module Fastlane
31
31
 
32
32
  params[:note] = options[:note] if options[:note].to_s.length > 0
33
33
 
34
+ if options[:timeout]
35
+ params[:timeout] = options[:timeout]
36
+ end
37
+
34
38
  uri = URI.parse(appetize_url(options))
35
39
  req = create_request(uri, params)
36
40
  req.basic_auth(options[:api_token], nil)
@@ -147,7 +151,15 @@ module Fastlane
147
151
  env_name: "APPETIZE_NOTE",
148
152
  description: "Notes you wish to add to the uploaded app",
149
153
  is_string: true,
150
- optional: true)
154
+ optional: true),
155
+ FastlaneCore::ConfigItem.new(key: :timeout,
156
+ env_name: "APPETIZE_TIMEOUT",
157
+ description: "The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120",
158
+ type: Integer,
159
+ optional: true,
160
+ verify_block: proc do |value|
161
+ UI.user_error!("The value provided doesn't match any of the supported options.") unless [30, 60, 90, 120, 180, 300, 600, 1800, 3600, 7200].include?(value)
162
+ end)
151
163
  ]
152
164
  end
153
165
 
@@ -21,7 +21,8 @@ module Fastlane
21
21
  other_action.appetize(path: zipped_bundle,
22
22
  api_token: params[:api_token],
23
23
  public_key: params[:public_key],
24
- note: params[:note])
24
+ note: params[:note],
25
+ timeout: params[:timeout])
25
26
 
26
27
  public_key = Actions.lane_context[SharedValues::APPETIZE_PUBLIC_KEY]
27
28
  UI.success("Generated Public Key: #{Actions.lane_context[SharedValues::APPETIZE_PUBLIC_KEY]}")
@@ -76,7 +77,14 @@ module Fastlane
76
77
  FastlaneCore::ConfigItem.new(key: :note,
77
78
  description: "Notes you wish to add to the uploaded app",
78
79
  is_string: true,
79
- optional: true)
80
+ optional: true),
81
+ FastlaneCore::ConfigItem.new(key: :timeout,
82
+ description: "The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120",
83
+ type: Integer,
84
+ optional: true,
85
+ verify_block: proc do |value|
86
+ UI.user_error!("The value provided doesn't match any of the supported options.") unless [30, 60, 90, 120, 180, 300, 600, 1800, 3600, 7200].include?(value)
87
+ end)
80
88
  ]
81
89
  end
82
90
 
@@ -33,6 +33,8 @@ module Fastlane
33
33
  cmd << "--cache-builds" if params[:cache_builds]
34
34
  cmd << "--new-resolver" if params[:new_resolver]
35
35
  cmd << "--log-path #{params[:log_path]}" if params[:log_path]
36
+ cmd << "--use-xcframeworks" if params[:use_xcframeworks]
37
+ cmd << "--archive" if params[:archive]
36
38
 
37
39
  Actions.sh(cmd.join(' '))
38
40
  end
@@ -50,6 +52,14 @@ module Fastlane
50
52
  if params[:log_path] && !%w(build bootstrap update).include?(command_name)
51
53
  UI.user_error!("Log path option is available only for 'build', 'bootstrap', and 'update' command.")
52
54
  end
55
+
56
+ if params[:use_xcframeworks] && !%w(build bootstrap update).include?(command_name)
57
+ UI.user_error!("Use XCFrameworks option is available only for 'build', 'bootstrap', and 'update' command.")
58
+ end
59
+
60
+ if command_name != "build" && params[:archive]
61
+ UI.user_error!("Archive option is available only for 'build' command.")
62
+ end
53
63
  end
54
64
 
55
65
  def self.description
@@ -183,6 +193,18 @@ module Fastlane
183
193
  env_name: "FL_CARTHAGE_LOG_PATH",
184
194
  description: "Path to the xcode build output",
185
195
  optional: true),
196
+ FastlaneCore::ConfigItem.new(key: :use_xcframeworks,
197
+ env_name: "FL_CARTHAGE_USE_XCFRAMEWORKS",
198
+ description: "Create xcframework bundles instead of one framework per platform (requires Xcode 12+)",
199
+ type: Boolean,
200
+ is_string: false,
201
+ default_value: false),
202
+ FastlaneCore::ConfigItem.new(key: :archive,
203
+ env_name: "FL_CARTHAGE_ARCHIVE",
204
+ description: "Archive built frameworks from the current project",
205
+ is_string: false,
206
+ type: Boolean,
207
+ default_value: false),
186
208
  FastlaneCore::ConfigItem.new(key: :executable,
187
209
  env_name: "FL_CARTHAGE_EXECUTABLE",
188
210
  description: "Path to the `carthage` executable on your machine",
@@ -1,6 +1,7 @@
1
1
  module Fastlane
2
2
  module Actions
3
3
  class CocoapodsAction < Action
4
+ # rubocop:disable Metrics/PerceivedComplexity
4
5
  def self.run(params)
5
6
  Actions.verify_gem!('cocoapods')
6
7
  cmd = []
@@ -19,7 +20,8 @@ module Fastlane
19
20
 
20
21
  cmd << '--no-clean' unless params[:clean]
21
22
  cmd << '--no-integrate' unless params[:integrate]
22
- cmd << '--clean-install' if params[:clean_install] && pod_version(params).to_f >= 1.7
23
+ cmd << '--clean-install' if params[:clean_install] && pod_version_at_least("1.7", params)
24
+ cmd << '--allow-root' if params[:allow_root] && pod_version_at_least("1.10", params)
23
25
  cmd << '--repo-update' if params[:repo_update]
24
26
  cmd << '--silent' if params[:silent]
25
27
  cmd << '--verbose' if params[:verbose]
@@ -46,6 +48,11 @@ module Fastlane
46
48
  use_bundle_exec?(params) ? `bundle exec pod --version` : `pod --version`
47
49
  end
48
50
 
51
+ def self.pod_version_at_least(at_least_version, params)
52
+ version = pod_version(params)
53
+ return Gem::Version.new(version) >= Gem::Version.new(at_least_version)
54
+ end
55
+
49
56
  def self.call_error_callback(params, result)
50
57
  if params[:error_callback]
51
58
  Dir.chdir(FastlaneCore::FastlaneFolder.path) do
@@ -120,6 +127,13 @@ module Fastlane
120
127
  is_string: false,
121
128
  default_value: false,
122
129
  type: Boolean),
130
+ FastlaneCore::ConfigItem.new(key: :allow_root,
131
+ env_name: "FL_COCOAPODS_ALLOW_ROOT",
132
+ description: 'Allows CocoaPods to run as root',
133
+ optional: true,
134
+ is_string: false,
135
+ default_value: false,
136
+ type: Boolean),
123
137
 
124
138
  # Deprecated
125
139
  FastlaneCore::ConfigItem.new(key: :clean,
@@ -21,7 +21,7 @@ _screengrab_ generates localized screenshots of your Android app for different d
21
21
  Install the gem
22
22
 
23
23
  ```no-highlight
24
- sudo gem install fastlane
24
+ gem install fastlane
25
25
  ```
26
26
 
27
27
  ##### Gradle dependency
@@ -345,5 +345,5 @@ brew install imagemagick
345
345
 
346
346
  ## Uninstall
347
347
 
348
- - `sudo gem uninstall fastlane`
348
+ - `gem uninstall fastlane`
349
349
  - `rm -rf ~/.frameit`
@@ -99,16 +99,22 @@ If your machine is currently using SSH to authenticate with GitHub, you'll want
99
99
  Using parameter:
100
100
 
101
101
  ```
102
- match(git_basic_authorization: '<YOUR KEY>')
102
+ match(git_basic_authorization: '<YOUR BASE64 KEY>')
103
103
  ```
104
104
 
105
105
  Using environment variable:
106
106
 
107
107
  ```
108
- ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '<YOUR KEY>'
108
+ ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '<YOUR BASE64 KEY>'
109
109
  match
110
110
  ```
111
111
 
112
+ To generate your base64 key [according to RFC 7617](https://tools.ietf.org/html/rfc7617), run this:
113
+
114
+ ```
115
+ echo -n your_github_username:your_personal_access_token | base64
116
+ ```
117
+
112
118
  You can find more information about GitHub basic authentication and personal token generation here: [https://developer.github.com/v3/auth/#basic-authentication](https://developer.github.com/v3/auth/#basic-authentication)
113
119
 
114
120
  ##### Git Storage on GitHub - Deploy keys
@@ -39,13 +39,8 @@ module Fastlane
39
39
  # Set version if it is latest
40
40
  if version == 'latest'
41
41
  # Try to grab the edit version first, else fallback to live version
42
- UI.message("Looking for latest version...")
43
- latest_version = app.get_edit_app_store_version(platform: platform) || app.get_live_app_store_version(platform: platform)
44
-
45
- UI.user_error!("Could not find latest version for your app, please try setting a specific version") if latest_version.nil?
46
-
47
- latest_build = get_latest_build!(app_id: app.id, version: latest_version.version_string, platform: platform)
48
-
42
+ UI.message("Looking for latest build...")
43
+ latest_build = get_latest_build!(app_id: app.id, platform: platform)
49
44
  version = latest_build.app_version
50
45
  build_number = latest_build.version
51
46
  elsif version == 'live'
@@ -59,11 +54,6 @@ module Fastlane
59
54
  build_number = live_version.build.version
60
55
  end
61
56
 
62
- # Remove leading zeros from version string (eg. 1.02 -> 1.2)
63
- if version
64
- version = version.split(".").map(&:to_i).join(".")
65
- end
66
-
67
57
  # Make sure output_directory has a slash on the end
68
58
  if output_directory && !output_directory.end_with?('/')
69
59
  output_directory += '/'
@@ -161,14 +151,14 @@ module Fastlane
161
151
  end
162
152
  # rubocop:enable Metrics/PerceivedComplexity
163
153
 
164
- def self.get_latest_build!(app_id: nil, version: nil, platform: nil)
154
+ def self.get_latest_build!(app_id: nil, platform: nil)
165
155
  filter = { app: app_id }
166
- filter["preReleaseVersion.version"] = version
167
156
  filter["preReleaseVersion.platform"] = platform
168
157
  latest_build = Spaceship::ConnectAPI.get_builds(filter: filter, sort: "-uploadedDate", includes: "preReleaseVersion").first
169
158
 
170
159
  if latest_build.nil?
171
- UI.user_error!("Could not find latest build for version #{version}")
160
+ UI.user_error!("Could not find any build for platform #{platform}") if platform
161
+ UI.user_error!("Could not find any build")
172
162
  end
173
163
 
174
164
  return latest_build
@@ -37,7 +37,7 @@ module Fastlane
37
37
  def self.available_options
38
38
  [
39
39
  FastlaneCore::ConfigItem.new(key: :path,
40
- description: "The file you want to commit",
40
+ description: "The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed",
41
41
  is_string: false),
42
42
  FastlaneCore::ConfigItem.new(key: :message,
43
43
  description: "The commit message that should be used"),
@@ -5,6 +5,7 @@ module Fastlane
5
5
  Actions.verify_gem!('jazzy')
6
6
  command = "jazzy"
7
7
  command << " --config #{params[:config]}" if params[:config]
8
+ command << " --module-version #{params[:module_version]}" if params[:module_version]
8
9
  Actions.sh(command)
9
10
  end
10
11
 
@@ -24,6 +25,13 @@ module Fastlane
24
25
  description: 'Path to jazzy config file',
25
26
  is_string: true,
26
27
  optional: true
28
+ ),
29
+ FastlaneCore::ConfigItem.new(
30
+ key: :module_version,
31
+ env_name: 'FL_JAZZY_MODULE_VERSION',
32
+ description: 'Version string to use as part of the the default docs title and inside the docset',
33
+ is_string: true,
34
+ optional: true
27
35
  )
28
36
  ]
29
37
  end
@@ -44,7 +52,8 @@ module Fastlane
44
52
 
45
53
  def self.example_code
46
54
  [
47
- 'jazzy'
55
+ 'jazzy',
56
+ 'jazzy(config: ".jazzy.yaml", module_version: "2.1.37")'
48
57
  ]
49
58
  end
50
59
 
@@ -38,7 +38,7 @@ module Fastlane
38
38
 
39
39
  [
40
40
  FastlaneCore::ConfigItem.new(key: :api_key_path,
41
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY_PATH",
41
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
42
42
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
43
43
  optional: true,
44
44
  conflicting_options: [:api_key],
@@ -46,7 +46,7 @@ module Fastlane
46
46
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
47
47
  end),
48
48
  FastlaneCore::ConfigItem.new(key: :api_key,
49
- env_name: "APPSTORE_BUILD_NUMBER_API_KEY",
49
+ env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
50
50
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
51
51
  type: Hash,
52
52
  optional: true,
@@ -33,10 +33,9 @@ module Fastlane
33
33
  command << '--set-upstream' if params[:set_upstream]
34
34
 
35
35
  # optionally add the --push_options components
36
- params[:push_options].each { |push_option| command << "--push-option=#{push_option}" }
36
+ params[:push_options].each { |push_option| command << "--push-option=#{push_option}" } if params[:push_options]
37
37
 
38
38
  # execute our command
39
- Actions.sh('pwd')
40
39
  return command.join(' ') if Helper.test?
41
40
 
42
41
  Actions.sh(command.join(' '))
@@ -69,7 +69,7 @@ module Fastlane
69
69
  env_name: "FL_REGISTER_DEVICE_UDID",
70
70
  description: "Provide the UDID of the device to register as"),
71
71
  FastlaneCore::ConfigItem.new(key: :api_key_path,
72
- env_name: "FL_REGISTER_DEVICE_API_KEY_PATH",
72
+ env_names: ["FL_REGISTER_DEVICE_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
73
73
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
74
74
  optional: true,
75
75
  conflicting_options: [:api_key],
@@ -77,7 +77,7 @@ module Fastlane
77
77
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
78
78
  end),
79
79
  FastlaneCore::ConfigItem.new(key: :api_key,
80
- env_name: "FL_REGISTER_DEVICE_API_KEY",
80
+ env_names: ["FL_REGISTER_DEVICE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
81
81
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
82
82
  type: Hash,
83
83
  optional: true,
@@ -118,7 +118,7 @@ module Fastlane
118
118
  UI.user_error!("Could not find file '#{value}'") unless File.exist?(value)
119
119
  end),
120
120
  FastlaneCore::ConfigItem.new(key: :api_key_path,
121
- env_name: "FL_REGISTER_DEVICES_API_KEY_PATH",
121
+ env_names: ["FL_REGISTER_DEVICES_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
122
122
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
123
123
  optional: true,
124
124
  conflicting_options: [:api_key],
@@ -126,7 +126,7 @@ module Fastlane
126
126
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
127
127
  end),
128
128
  FastlaneCore::ConfigItem.new(key: :api_key,
129
- env_name: "FL_REGISTER_DEVICES_API_KEY",
129
+ env_names: ["FL_REGISTER_DEVICES_API_KEY", "APP_STORE_CONNECT_API_KEY"],
130
130
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
131
131
  type: Hash,
132
132
  optional: true,
@@ -111,7 +111,7 @@ module Fastlane
111
111
 
112
112
  [
113
113
  FastlaneCore::ConfigItem.new(key: :api_key_path,
114
- env_name: "FL_SET_CHANGELOG_API_KEY_PATH",
114
+ env_names: ["FL_SET_CHANGELOG_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
115
115
  description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
116
116
  optional: true,
117
117
  conflicting_options: [:api_key],
@@ -119,7 +119,7 @@ module Fastlane
119
119
  UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
120
120
  end),
121
121
  FastlaneCore::ConfigItem.new(key: :api_key,
122
- env_name: "FL_SET_CHANGELOG_API_KEY",
122
+ env_names: ["FL_SET_CHANGELOG_API_KEY", "APP_STORE_CONNECT_API_KEY"],
123
123
  description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
124
124
  type: Hash,
125
125
  optional: true,
@@ -145,7 +145,7 @@ module Fastlane
145
145
  optional: true,
146
146
  verify_block: proc do |value|
147
147
  available = ['xcode', 'json', 'csv', 'checkstyle', 'codeclimate', 'junit', 'html', 'emoji', 'sonarqube', 'markdown', 'github-actions-logging']
148
- UI.warning("Known 'reporter' values are '#{available.join("', '")}'. If you're receiving errors from swiftlint related to the reporter, make sure the reporter identifier you're using is correct and it's supported by your version of swiftlint.") unless available.include?(value)
148
+ UI.important("Known 'reporter' values are '#{available.join("', '")}'. If you're receiving errors from swiftlint related to the reporter, make sure the reporter identifier you're using is correct and it's supported by your version of swiftlint.") unless available.include?(value)
149
149
  end),
150
150
  FastlaneCore::ConfigItem.new(key: :quiet,
151
151
  env_name: "FL_SWIFTLINT_QUIET",
@@ -140,7 +140,7 @@ module Fastlane
140
140
  env_name: "FL_PROJECT_SIGNING_BUILD_CONFIGURATIONS",
141
141
  optional: true,
142
142
  type: Array,
143
- description: "Specify build_configurations you want to toggle the signing mech. (default to all targets)",
143
+ description: "Specify build_configurations you want to toggle the signing mech. (default to all configurations)",
144
144
  is_string: false),
145
145
  FastlaneCore::ConfigItem.new(key: :code_sign_identity,
146
146
  env_name: "FL_CODE_SIGN_IDENTITY",
@@ -1,5 +1,3 @@
1
- require 'thread'
2
-
3
1
  module Fastlane
4
2
  module Actions
5
3
  class UploadSymbolsToCrashlyticsAction < Action
@@ -35,10 +33,11 @@ module Fastlane
35
33
  UI.message("Using #{max_worker_threads} threads for Crashlytics dSYM upload 🏎")
36
34
  end
37
35
 
38
- dsym_paths.each do |current_path|
39
- handle_dsym(params, current_path, max_worker_threads)
36
+ worker = FastlaneCore::QueueWorker.new(max_worker_threads) do |dsym_path|
37
+ handle_dsym(params, dsym_path, max_worker_threads)
40
38
  end
41
-
39
+ worker.batch_enqueue(dsym_paths)
40
+ worker.start
42
41
  UI.success("Successfully uploaded dSYM files to Crashlytics 💯")
43
42
  end
44
43
 
@@ -22,7 +22,11 @@ module Fastlane
22
22
  return values if Helper.test?
23
23
 
24
24
  if distribute_only
25
- Pilot::BuildManager.new.distribute(values) # we already have the finished config
25
+ build_manager = Pilot::BuildManager.new
26
+ build_manager.start(values, should_login: true)
27
+
28
+ build_manager.wait_for_build_processing_to_be_complete(false) unless values[:skip_waiting_for_build_processing]
29
+ build_manager.distribute(values) # we already have the finished config
26
30
  else
27
31
  Pilot::BuildManager.new.upload(values) # we already have the finished config
28
32
  end