mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
do not strip symbols when building profile (#37210)
This commit is contained in:
parent
d208ce2dff
commit
dfad03952f
@ -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');
|
section('Clean build');
|
||||||
|
|
||||||
await inDirectory(projectDir, () async {
|
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');
|
section('Clean build');
|
||||||
|
|
||||||
await inDirectory(projectDir, () async {
|
await inDirectory(projectDir, () async {
|
||||||
@ -290,3 +303,26 @@ Future<bool> _isAppAotBuild(Directory app) async {
|
|||||||
|
|
||||||
return symbolTable.contains('kDartIsolateSnapshotInstructions');
|
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}"
|
RunCommand cp -r -- "${app_framework}" "${derived_dir}"
|
||||||
|
|
||||||
StreamOutput " ├─Generating dSYM file..."
|
if [[ "${build_mode}" == "release" ]]; then
|
||||||
# Xcode calls `symbols` during app store upload, which uses Spotlight to
|
StreamOutput " ├─Generating dSYM file..."
|
||||||
# find dSYM files for embedded frameworks. When it finds the dSYM file for
|
# Xcode calls `symbols` during app store upload, which uses Spotlight to
|
||||||
# `App.framework` it throws an error, which aborts the app store upload.
|
# find dSYM files for embedded frameworks. When it finds the dSYM file for
|
||||||
# To avoid this, we place the dSYM files in a folder ending with ".noindex",
|
# `App.framework` it throws an error, which aborts the app store upload.
|
||||||
# which hides it from Spotlight, https://github.com/flutter/flutter/issues/22560.
|
# To avoid this, we place the dSYM files in a folder ending with ".noindex",
|
||||||
RunCommand mkdir -p -- "${build_dir}/dSYMs.noindex"
|
# which hides it from Spotlight, https://github.com/flutter/flutter/issues/22560.
|
||||||
RunCommand xcrun dsymutil -o "${build_dir}/dSYMs.noindex/App.framework.dSYM" "${app_framework}/App"
|
RunCommand mkdir -p -- "${build_dir}/dSYMs.noindex"
|
||||||
if [[ $? -ne 0 ]]; then
|
RunCommand xcrun dsymutil -o "${build_dir}/dSYMs.noindex/App.framework.dSYM" "${app_framework}/App"
|
||||||
EchoError "Failed to generate debug symbols (dSYM) file for ${app_framework}/App."
|
if [[ $? -ne 0 ]]; then
|
||||||
exit -1
|
EchoError "Failed to generate debug symbols (dSYM) file for ${app_framework}/App."
|
||||||
fi
|
exit -1
|
||||||
StreamOutput "done"
|
fi
|
||||||
|
StreamOutput "done"
|
||||||
|
|
||||||
StreamOutput " ├─Stripping debug symbols..."
|
StreamOutput " ├─Stripping debug symbols..."
|
||||||
RunCommand xcrun strip -x -S "${derived_dir}/App.framework/App"
|
RunCommand xcrun strip -x -S "${derived_dir}/App.framework/App"
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
EchoError "Failed to strip ${derived_dir}/App.framework/App."
|
EchoError "Failed to strip ${derived_dir}/App.framework/App."
|
||||||
exit -1
|
exit -1
|
||||||
|
fi
|
||||||
|
StreamOutput "done"
|
||||||
fi
|
fi
|
||||||
StreamOutput "done"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
RunCommand mkdir -p -- "${derived_dir}/App.framework"
|
RunCommand mkdir -p -- "${derived_dir}/App.framework"
|
||||||
|
Loading…
Reference in New Issue
Block a user