in tools/xctoolrunner/xctoolrunner.py [0:0]
def ibtool_filtering(tool_exit_status, raw_stdout, raw_stderr):
"""Filter messages from ibtool.
Args:
tool_exit_status: The exit status of "xcrun ibtool".
raw_stdout: This is the unmodified stdout captured from "xcrun ibtool".
raw_stderr: This is the unmodified stderr captured from "xcrun ibtool".
Returns:
A tuple of the filtered stdout and strerr.
"""
spurious_patterns = [
re.compile(x)
for x in [r"WARNING: Unhandled destination metrics: \(null\)"]
]
def is_spurious_message(line):
for pattern in spurious_patterns:
match = pattern.search(line)
if match is not None:
return True
return False
stdout = []
for line in raw_stdout.splitlines():
if not is_spurious_message(line):
stdout.append(line + "\n")
# Some of the time, in a successful run, ibtool reports on stderr some
# internal assertions and ask "Please file a bug report with Apple", but
# it isn't clear that there is really a problem. Since everything else
# (warnings about assets, etc.) is reported on stdout, just drop stderr
# on successful runs.
if tool_exit_status == 0:
raw_stderr = None
return ("".join(stdout), raw_stderr)