@@ -25,7 +25,6 @@ internal class DebugSymbolUpload
25
25
private readonly string _gradleScriptPath ;
26
26
private readonly bool _isExporting ;
27
27
private readonly bool _isMinifyEnabled ;
28
- private readonly bool _ignoreCliErrors ;
29
28
30
29
private readonly SentryCliOptions ? _cliOptions ;
31
30
private readonly List < string > _symbolUploadPaths ;
@@ -35,7 +34,7 @@ internal class DebugSymbolUpload
35
34
private const string SymbolUploadTaskEndComment = "// Autogenerated Sentry symbol upload task [end]" ;
36
35
private const string SentryCliMarker = "SENTRY_CLI" ;
37
36
private const string UploadArgsMarker = "UPLOAD_ARGS" ;
38
- private const string MappingPathMarker = "MAPPING_PATH " ;
37
+ private const string ProguardArgsMarker = "PROGUARD_ARGS " ;
39
38
40
39
private string SymbolUploadTaskFormat
41
40
{
@@ -46,41 +45,26 @@ private string SymbolUploadTaskFormat
46
45
stringBuilder . AppendLine ( "afterEvaluate {" ) ;
47
46
stringBuilder . AppendLine ( "task sentryUploadSymbols {" ) ;
48
47
stringBuilder . AppendLine ( " doLast {" ) ;
49
- if ( _isExporting )
50
- {
51
- stringBuilder . AppendLine ( " println 'Uploading symbols to Sentry.'" ) ;
52
- }
53
- else
54
- {
55
- var logsDir = $ "{ ConvertSlashes ( _unityProjectPath ) } /Logs";
56
- Directory . CreateDirectory ( logsDir ) ;
57
- stringBuilder . AppendLine ( " println 'Uploading symbols to Sentry. You can find the full log in ./Logs/sentry-symbols-upload.log (the file content may not be strictly sequential because it\\ 's a merge of two streams).'" ) ;
58
- stringBuilder . AppendLine ( $ " def logFilePath = '{ logsDir } /{ SymbolUploadLogName } '") ;
59
- stringBuilder . AppendLine ( " def sentryLogFile = new FileOutputStream(logFilePath)" ) ;
60
- if ( _ignoreCliErrors )
61
- {
62
- stringBuilder . AppendLine ( " try {" ) ;
63
- }
64
- }
48
+ stringBuilder . AppendLine ( " println 'Uploading symbols to Sentry.'" ) ;
49
+
50
+ var logsDir = $ "{ ConvertSlashes ( _unityProjectPath ) } /Logs";
51
+ Directory . CreateDirectory ( logsDir ) ;
52
+ stringBuilder . AppendLine ( $ " def logFilePath = '{ logsDir } /{ SymbolUploadLogName } '") ;
53
+ stringBuilder . AppendLine ( " def sentryLogFile = new FileOutputStream(logFilePath)" ) ;
54
+ stringBuilder . AppendLine ( " def outputStream = new org.apache.tools.ant.util.TeeOutputStream(System.out, sentryLogFile)" ) ;
55
+ stringBuilder . AppendLine ( " def errorStream = new org.apache.tools.ant.util.TeeOutputStream(System.err, sentryLogFile)" ) ;
65
56
66
57
stringBuilder . AppendLine ( " exec {" ) ;
67
58
stringBuilder . AppendLine ( " environment 'SENTRY_PROPERTIES', './sentry.properties'" ) ;
68
59
stringBuilder . AppendLine ( $ " executable '{ SentryCliMarker } '") ;
69
60
stringBuilder . AppendLine ( $ " args = ['debug-files', 'upload'{ UploadArgsMarker } ]") ;
70
61
if ( ! _isExporting )
71
62
{
72
- stringBuilder . AppendLine ( " standardOutput sentryLogFile " ) ;
73
- stringBuilder . AppendLine ( " errorOutput sentryLogFile " ) ;
63
+ stringBuilder . AppendLine ( " standardOutput outputStream " ) ;
64
+ stringBuilder . AppendLine ( " errorOutput errorStream " ) ;
74
65
}
75
-
76
66
stringBuilder . AppendLine ( " }" ) ;
77
- if ( ! _isExporting && _ignoreCliErrors )
78
- {
79
- stringBuilder . AppendLine ( " } catch (exception) {" ) ;
80
- stringBuilder . AppendLine ( " def file = new File(logFilePath)" ) ;
81
- stringBuilder . AppendLine ( " file.append('===ERROR===' + exception)" ) ;
82
- stringBuilder . AppendLine ( " }" ) ;
83
- }
67
+
84
68
CheckMapping ( stringBuilder ) ;
85
69
stringBuilder . AppendLine ( " }" ) ;
86
70
stringBuilder . AppendLine ( "}" ) ;
@@ -110,7 +94,6 @@ public DebugSymbolUpload(IDiagnosticLogger logger,
110
94
_gradleScriptPath = Path . Combine ( _gradleProjectPath , "launcher/build.gradle" ) ;
111
95
_isExporting = isExporting ;
112
96
_isMinifyEnabled = minifyEnabled ;
113
- _ignoreCliErrors = cliOptions != null && cliOptions . IgnoreCliErrors ;
114
97
115
98
_cliOptions = cliOptions ;
116
99
_symbolUploadPaths = GetSymbolUploadPaths ( application ) ;
@@ -130,23 +113,29 @@ public void AppendUploadToGradleFile(string sentryCliPath)
130
113
}
131
114
132
115
var uploadDifArguments = ", '--il2cpp-mapping'" ;
133
- if ( _cliOptions != null && _cliOptions . UploadSources )
116
+ if ( _cliOptions ? . UploadSources == true )
134
117
{
135
118
uploadDifArguments += ", '--include-sources'" ;
136
119
}
137
120
121
+ if ( _cliOptions ? . IgnoreCliErrors == true )
122
+ {
123
+ uploadDifArguments += ", '--allow-failure'" ;
124
+ }
125
+
138
126
if ( _isExporting )
139
127
{
140
128
_logger . LogInfo ( "Project is exporting. Setting upload-dif to 'project.rootDir'" ) ;
141
129
142
130
uploadDifArguments += ", project.rootDir" ;
143
131
sentryCliPath = $ "./{ Path . GetFileName ( sentryCliPath ) } ";
144
132
}
145
- else
133
+ else if ( _symbolUploadPaths . Count > 0 )
146
134
{
135
+ _logger . LogInfo ( "Setting upload-dif paths" ) ;
136
+
147
137
foreach ( var symbolUploadPath in _symbolUploadPaths )
148
138
{
149
- _logger . LogInfo ( "Setting upload-dif paths" ) ;
150
139
if ( Directory . Exists ( symbolUploadPath ) )
151
140
{
152
141
_logger . LogDebug ( "Adding '{0}'" , symbolUploadPath ) ;
@@ -159,11 +148,19 @@ public void AppendUploadToGradleFile(string sentryCliPath)
159
148
}
160
149
}
161
150
151
+ var uploadProguardArguments = string . Empty ;
152
+ if ( _cliOptions ? . IgnoreCliErrors == true )
153
+ {
154
+ uploadProguardArguments += ", '--allow-failure'" ;
155
+ }
156
+
157
+ uploadProguardArguments += $ ", '{ _mappingFilePath } '";
158
+
162
159
var symbolUploadText = SymbolUploadTaskFormat ;
163
160
symbolUploadText = symbolUploadText . Trim ( ) ;
164
161
symbolUploadText = symbolUploadText . Replace ( SentryCliMarker , sentryCliPath ) ;
165
162
symbolUploadText = symbolUploadText . Replace ( UploadArgsMarker , uploadDifArguments ) ;
166
- symbolUploadText = symbolUploadText . Replace ( MappingPathMarker , _mappingFilePath ) ;
163
+ symbolUploadText = symbolUploadText . Replace ( ProguardArgsMarker , uploadProguardArguments ) ;
167
164
168
165
using var streamWriter = File . AppendText ( _gradleScriptPath ) ;
169
166
streamWriter . WriteLine ( SymbolUploadTaskStartComment ) ;
@@ -263,29 +260,20 @@ private void CheckMapping(StringBuilder stringBuilder)
263
260
Directory . CreateDirectory ( logsDir ) ;
264
261
stringBuilder . AppendLine ( $ " def mappingLogFilePath = '{ logsDir } /{ MappingUploadLogName } '") ;
265
262
stringBuilder . AppendLine ( $ " def mappingLogFile = new FileOutputStream(mappingLogFilePath)") ;
266
- if ( ! _isExporting && _ignoreCliErrors )
267
- {
268
- stringBuilder . AppendLine ( " try {" ) ;
269
- }
263
+ stringBuilder . AppendLine ( " def mappingOutputStream = new org.apache.tools.ant.util.TeeOutputStream(System.out, mappingLogFile)" ) ;
264
+ stringBuilder . AppendLine ( " def mappingErrorStream = new org.apache.tools.ant.util.TeeOutputStream(System.err, mappingLogFile)" ) ;
270
265
}
271
266
stringBuilder . AppendLine ( " exec {" ) ;
272
267
stringBuilder . AppendLine ( " environment 'SENTRY_PROPERTIES', './sentry.properties'" ) ;
273
268
stringBuilder . AppendLine ( $ " executable '{ SentryCliMarker } '") ;
274
- stringBuilder . AppendLine ( $ " args = ['upload-proguard', { MappingPathMarker } ]") ;
269
+ stringBuilder . AppendLine ( $ " args = ['upload-proguard'{ ProguardArgsMarker } ]") ;
270
+ // stringBuilder.AppendLine($" args = ['debug-files', 'upload'{UploadArgsMarker}]");
275
271
if ( ! _isExporting )
276
272
{
277
- stringBuilder . AppendLine ( " standardOutput mappingLogFile " ) ;
278
- stringBuilder . AppendLine ( " errorOutput mappingLogFile " ) ;
273
+ stringBuilder . AppendLine ( " standardOutput mappingOutputStream " ) ;
274
+ stringBuilder . AppendLine ( " errorOutput mappingErrorStream " ) ;
279
275
}
280
-
281
276
stringBuilder . AppendLine ( " }" ) ;
282
- if ( ! _isExporting && _ignoreCliErrors )
283
- {
284
- stringBuilder . AppendLine ( " } catch (exception) {" ) ;
285
- stringBuilder . AppendLine ( " def file = new File(mappingLogFilePath)" ) ;
286
- stringBuilder . AppendLine ( " file.append('===ERROR===' + exception)" ) ;
287
- stringBuilder . AppendLine ( " }" ) ;
288
- }
289
277
}
290
278
291
279
private string GetMappingFilePath ( IApplication ? application )
@@ -305,7 +293,6 @@ private string GetMappingFilePath(IApplication? application)
305
293
{
306
294
var gradleProjectPath = Path . Combine ( _unityProjectPath , gradleRelativePath ) ;
307
295
mappingPathFormat = Path . Combine ( gradleProjectPath , "launcher/build/outputs/mapping/{0}/mapping.txt" ) ;
308
- mappingPathFormat = $ "'{ mappingPathFormat } '";
309
296
}
310
297
311
298
var mappingPath = mappingPathFormat . Replace ( "{0}" , buildType ) ;
0 commit comments