fastlane-plugin-sentry 2.6.3 → 2.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be9d42704c8e2b63b7734eba52b08e833235f6f82f4b27521381a746c3668918
4
- data.tar.gz: b3822eb33123163a6f8ebdb06adda65f6a66e80d0ca5a1e5e3cc1aefdee43ef7
3
+ metadata.gz: 8d42266cb8cf15e9fa6db59b2f89ec8b8e5d4382d9d26ee612dcfb509d6ac5cd
4
+ data.tar.gz: c0a6db26c67454692f675b24eda76eb2bdd65784ae910dcff0c6fadf4362fcdf
5
5
  SHA512:
6
- metadata.gz: 0f3a002ed94f17c02a20a95b4e1b632dd2414dbcde5c49ac142e2aa3493a839bc431e6d6f32ee6b3537b79ad950bf7c29ea5e7d2847816a2459ebb352519cb54
7
- data.tar.gz: 28e22e7daf0df545617ad6db748819811c7b8eb27fd22385d10d17f269dc6baca580c13dc2c899f5abdc420678989e73b92d705e5d6e8545732c6005b05e8e7c
6
+ metadata.gz: 340bbb9e19f4cc7171001942038e9ae6f28ffd7fc69ebb27d2688c5e9782d37441017eeb8d1abb16252fc10493a894068c91722b56d3795a163888e4f4c32c67
7
+ data.tar.gz: 8033c8ee4854f95176ebe62d88b5fc18147ab16d6ba28edf725a3f3acca068b0d5004a72605500263fb5fc158d339048269cf5995626f8fb89b1f26499a41fe3
data/README.md CHANGED
@@ -92,7 +92,7 @@ Upload build files to Sentry for improved symbolication and source context. Supp
92
92
  - **iOS**: `.xcarchive` (build archive) or `.ipa` (app bundle)
93
93
  - **Android**: `.apk` or `.aab` (App Bundle)
94
94
 
95
- Explicitly passed path parameters take precedence over SharedValues. For IPA uploads, use `dsym_path` to attach dSYM files for symbolication (IPAs typically don't embed symbols).
95
+ Explicitly passed path parameters take precedence over SharedValues. dSYMs provided through `dsym_path` are uploaded for symbolication and are also included in IPA build analysis.
96
96
 
97
97
  ```ruby
98
98
  sentry_upload_build(
@@ -101,7 +101,7 @@ sentry_upload_build(
101
101
  project_slug: '...',
102
102
  # One of: xcarchive_path, ipa_path, apk_path, or aab_path (mutually exclusive)
103
103
  xcarchive_path: './build/MyApp.xcarchive', # or ipa_path, apk_path, aab_path
104
- dsym_path: './build/MyApp.app.dSYM.zip', # Optional. For IPA/xcarchive - path or array of dSYM paths. Defaults to DSYM_OUTPUT_PATH from lane context when not specified
104
+ dsym_path: './build/MyApp.app.dSYM.zip', # Optional. Path or array of dSYM inputs for symbolication; with IPA uploads, also used for build analysis. Defaults to DSYM_OUTPUT_PATH from lane context when not specified
105
105
  # Optional git context parameters (can also be set via environment variables)
106
106
  head_sha: 'abc123...', # The SHA of the head of the current branch (or SENTRY_HEAD_SHA)
107
107
  base_sha: 'def456...', # The SHA of the base branch (or SENTRY_BASE_SHA)
@@ -26,6 +26,16 @@ module Fastlane
26
26
  File.absolute_path(build_path)
27
27
  ]
28
28
 
29
+ dsym_paths = resolve_dsym_paths(params, build_type)
30
+ supports_dsym_build_upload = OS.mac? && OS.host_cpu == 'arm64'
31
+ if build_type == :ipa && supports_dsym_build_upload
32
+ dsym_paths.each do |path|
33
+ next unless File.exist?(path)
34
+
35
+ command.push("--dsym").push(path)
36
+ end
37
+ end
38
+
29
39
  Helper::SentryConfig.build_vcs_command(command, params)
30
40
 
31
41
  command << "--build-configuration" << params[:build_configuration] if params[:build_configuration]
@@ -48,8 +58,7 @@ module Fastlane
48
58
  Helper::SentryHelper.call_sentry_cli(params, command)
49
59
  UI.success("Successfully uploaded build file: #{build_path}")
50
60
 
51
- # Upload dSYMs for iOS builds when dsym_path is provided or DSYM_OUTPUT_PATH is set
52
- upload_dsym_if_requested(params, build_type)
61
+ upload_dsyms(params, dsym_paths)
53
62
  end
54
63
 
55
64
  #####################################################
@@ -63,8 +72,9 @@ module Fastlane
63
72
  def self.details
64
73
  "This action allows you to upload build files to Sentry. Supported formats include iOS build archives (.xcarchive), " \
65
74
  "iOS app bundles (.ipa), Android APK files (.apk), and Android App Bundles (.aab). IPA files typically don't " \
66
- "embed dSYMsuse the dsym_path parameter to upload symbols for proper symbolication, or call sentry_debug_files_upload " \
67
- "separately. The action supports optional git-related parameters for enhanced context including commit SHAs, " \
75
+ "embed dSYMs; use dsym_path to provide them for build analysis and event symbolication, or call " \
76
+ "sentry_debug_files_upload to upload them only for symbolication. The action supports optional git-related " \
77
+ "parameters for enhanced context including commit SHAs, " \
68
78
  "branch names, repository information, and pull request details. Install groups can be specified to control update " \
69
79
  "visibility between builds."
70
80
  end
@@ -102,7 +112,7 @@ module Fastlane
102
112
  UI.user_error!("Path '#{value}' is not an AAB") unless File.extname(value).casecmp('.aab').zero?
103
113
  end),
104
114
  FastlaneCore::ConfigItem.new(key: :ipa_path,
105
- description: "Path to your iOS app bundle (.ipa). Defaults to IPA_OUTPUT_PATH from lane context. For symbolication, use dsym_path or call sentry_debug_files_upload separately. Mutually exclusive with xcarchive_path, apk_path, and aab_path",
115
+ description: "Path to your iOS app bundle (.ipa). Defaults to IPA_OUTPUT_PATH from lane context. Use dsym_path to include dSYMs in build analysis and event symbolication. Mutually exclusive with xcarchive_path, apk_path, and aab_path",
106
116
  optional: true,
107
117
  conflicting_options: [:xcarchive_path, :apk_path, :aab_path],
108
118
  verify_block: proc do |value|
@@ -112,7 +122,7 @@ module Fastlane
112
122
  UI.user_error!("Path '#{value}' is not an IPA") unless File.extname(value).casecmp('.ipa').zero?
113
123
  end),
114
124
  FastlaneCore::ConfigItem.new(key: :dsym_path,
115
- description: "Path to dSYM file(s) for symbolication. Use when uploading IPA (IPAs typically don't embed dSYMs). Can be a path or array of paths. Defaults to DSYM_OUTPUT_PATH from lane context for iOS builds when not specified",
125
+ description: "Path or array of paths to a dSYM bundle, a directory containing dSYM bundles, or a ZIP archive containing either. For IPA uploads, inputs are included in build analysis and uploaded for event symbolication. Defaults to DSYM_OUTPUT_PATH from lane context for iOS builds when omitted",
116
126
  optional: true,
117
127
  type: Array,
118
128
  skip_type_validation: true)
@@ -180,28 +190,31 @@ module Fastlane
180
190
  end
181
191
  end
182
192
 
183
- def self.upload_dsym_if_requested(params, build_type)
193
+ def self.resolve_dsym_paths(params, build_type)
184
194
  dsym_paths = Array(params[:dsym_path]).reject { |p| p.nil? || p.to_s.empty? }
185
195
  # For iOS builds, use DSYM_OUTPUT_PATH from lane context when dsym_path not specified
186
196
  if dsym_paths.empty? && [:ipa, :xcarchive].include?(build_type)
187
197
  dsym_from_context = Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]
188
198
  dsym_paths = [dsym_from_context] if dsym_from_context && !dsym_from_context.to_s.empty?
189
199
  end
200
+ dsym_paths
201
+ end
202
+
203
+ def self.upload_dsyms(params, dsym_paths)
190
204
  return if dsym_paths.empty?
191
205
 
192
206
  uploaded_count = 0
193
207
  dsym_paths.each do |path|
194
- next unless File.exist?(path)
208
+ unless File.exist?(path)
209
+ UI.important("Skipping missing dSYM path: #{path}")
210
+ next
211
+ end
195
212
 
196
213
  command = ["debug-files", "upload", File.absolute_path(path), "--type", "dsym"]
197
214
  Helper::SentryHelper.call_sentry_cli(params, command)
198
215
  uploaded_count += 1
199
216
  end
200
- if uploaded_count > 0
201
- UI.success("Successfully uploaded dSYM files")
202
- elsif dsym_paths.any?
203
- UI.verbose("No dSYM files were uploaded: none of the specified paths exist (#{dsym_paths.join(', ')})")
204
- end
217
+ UI.success("Successfully uploaded dSYM files") if uploaded_count > 0
205
218
  end
206
219
  end
207
220
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Sentry
3
- VERSION = "2.6.3"
3
+ VERSION = "2.7.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-sentry
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.3
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-02 00:00:00.000000000 Z
11
+ date: 2026-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: os