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,27 +201,29 @@ BuildApp() {
RunCommand cp -r -- "${app_framework}" "${derived_dir}"
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
# `App.framework` it throws an error, which aborts the app store upload.
# To avoid this, we place the dSYM files in a folder ending with ".noindex",
# which hides it from Spotlight, https://github.com/flutter/flutter/issues/22560.
RunCommand mkdir -p -- "${build_dir}/dSYMs.noindex"
RunCommand xcrun dsymutil -o "${build_dir}/dSYMs.noindex/App.framework.dSYM" "${app_framework}/App"
if [[ $? -ne 0 ]]; then
EchoError "Failed to generate debug symbols (dSYM) file for ${app_framework}/App."
exit -1
fi
StreamOutput "done"
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
# `App.framework` it throws an error, which aborts the app store upload.
# To avoid this, we place the dSYM files in a folder ending with ".noindex",
# which hides it from Spotlight, https://github.com/flutter/flutter/issues/22560.
RunCommand mkdir -p -- "${build_dir}/dSYMs.noindex"
RunCommand xcrun dsymutil -o "${build_dir}/dSYMs.noindex/App.framework.dSYM" "${app_framework}/App"
if [[ $? -ne 0 ]]; then
EchoError "Failed to generate debug symbols (dSYM) file for ${app_framework}/App."
exit -1
fi
StreamOutput "done"
StreamOutput " ├─Stripping debug symbols..."
RunCommand xcrun strip -x -S "${derived_dir}/App.framework/App"
if [[ $? -ne 0 ]]; then
EchoError "Failed to strip ${derived_dir}/App.framework/App."
exit -1
StreamOutput " ├─Stripping debug symbols..."
RunCommand xcrun strip -x -S "${derived_dir}/App.framework/App"
if [[ $? -ne 0 ]]; then
EchoError "Failed to strip ${derived_dir}/App.framework/App."
exit -1
fi
StreamOutput "done"
fi
StreamOutput "done"
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