Unverified Commit dfad0395 authored by xster's avatar xster Committed by GitHub

do not strip symbols when building profile (#37210)

parent d208ce2d
......@@ -59,6 +59,13 @@ Future<void> main() async {
);
}
if (await _hasDebugSymbols(ephemeralReleaseHostApp)) {
return TaskResult.failure(
"Ephemeral host app ${ephemeralReleaseHostApp.path}'s App.framework's "
"debug symbols weren't stripped in release mode"
);
}
section('Clean build');
await inDirectory(projectDir, () async {
......@@ -92,6 +99,12 @@ Future<void> main() async {
);
}
if (!await _hasDebugSymbols(ephemeralProfileHostApp)) {
return TaskResult.failure(
"Ephemeral host app ${ephemeralProfileHostApp.path}'s App.framework does not contain debug symbols"
);
}
section('Clean build');
await inDirectory(projectDir, () async {
......@@ -290,3 +303,26 @@ Future<bool> _isAppAotBuild(Directory app) async {
return symbolTable.contains('kDartIsolateSnapshotInstructions');
}
Future<bool> _hasDebugSymbols(Directory app) async {
final String binary = path.join(
app.path,
'Frameworks',
'App.framework',
'App'
);
final String symbolTable = await eval(
'dsymutil',
<String> [
'--dump-debug-map',
binary,
],
// The output is huge.
printStdout: false,
);
// Search for some random Flutter framework Dart function which should always
// be in App.framework.
return symbolTable.contains('BuildOwner_reassemble');
}
......@@ -201,6 +201,7 @@ BuildApp() {
RunCommand cp -r -- "${app_framework}" "${derived_dir}"
if [[ "${build_mode}" == "release" ]]; then
StreamOutput " ├─Generating dSYM file..."
# Xcode calls `symbols` during app store upload, which uses Spotlight to
# find dSYM files for embedded frameworks. When it finds the dSYM file for
......@@ -222,6 +223,7 @@ BuildApp() {
exit -1
fi
StreamOutput "done"
fi
else
RunCommand mkdir -p -- "${derived_dir}/App.framework"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment