50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -o pipefail
|
|
|
|
tmp_stderr="$(mktemp "${TMPDIR:-/tmp}/mactools-xcodebuild-stderr.XXXXXX")"
|
|
trap 'rm -f "$tmp_stderr"' EXIT
|
|
|
|
xcodebuild "$@" 2> "$tmp_stderr"
|
|
status=$?
|
|
|
|
python3 - "$tmp_stderr" <<'PY'
|
|
import re
|
|
import sys
|
|
|
|
path = sys.argv[1]
|
|
try:
|
|
text = open(path, encoding="utf-8", errors="replace").read()
|
|
except OSError:
|
|
sys.exit(0)
|
|
|
|
patterns = [
|
|
re.compile(
|
|
r"(?m)^[^\n]*DVTErrorPresenter: Unable to load simulator devices\.\n"
|
|
r"Domain: DVTCoreSimulatorAdditionsErrorDomain\n"
|
|
r"Code: 3\n"
|
|
r"Failure Reason: The version of the CoreSimulator framework installed on this Mac is out-of-date[^\n]*\n"
|
|
r"(?:Recovery Suggestion: [^\n]*\n)?"
|
|
r"--\n"
|
|
r"CoreSimulator is out of date\. Current version [^\n]*\n"
|
|
r"Domain: DVTCoreSimulatorAdditionsErrorDomain\n"
|
|
r"Code: 3\n"
|
|
r"--\n\n?"
|
|
),
|
|
re.compile(
|
|
r"(?m)^.*iOSSimulator: \[SimServiceContext sharedServiceContextForDeveloperDir:error:\] "
|
|
r"returned nil \(Error Domain=DVTCoreSimulatorAdditionsErrorDomain Code=3 "
|
|
r"\"CoreSimulator is out of date\..*?Simulator device support disabled\.\n?"
|
|
),
|
|
]
|
|
|
|
filtered = text
|
|
for pattern in patterns:
|
|
filtered = pattern.sub("", filtered)
|
|
|
|
if filtered != text:
|
|
open(path, "w", encoding="utf-8").write(filtered)
|
|
PY
|
|
|
|
cat "$tmp_stderr" >&2
|
|
exit "$status"
|