I received a crash report from Apple, and followed these instructions to symbolicate it: How to symbolicate crash report from Apple received in .txt format not .crash format
Unfortunately, I see errors when I execute step 7 ("./symbolicatecrash ..."), and don't find an SO question that addresses them:
xcodebuild: error: SDK "xxxos" cannot be located.
xcrun: error: unable to find utility "otool", not a developer tool or in PATH
## Warning: can't find tool named 'otool' in the xxxos SDK, falling back to searching the iOS SDK
xcodebuild: error: SDK "xxxos" cannot be located.
xcrun: error: unable to find utility "atos", not a developer tool or in PATH
## Warning: can't find tool named 'atos' in the xxxos SDK, falling back to searching the iOS SDK
xcodebuild: error: SDK "xxxos" cannot be located.
xcrun: error: unable to find utility "symbols", not a developer tool or in PATH
## Warning: can't find tool named 'symbols' in the xxxos SDK, falling back to searching the iOS SDK
xcodebuild: error: SDK "xxxos" cannot be located.
xcrun: error: unable to find utility "size", not a developer tool or in PATH
## Warning: can't find tool named 'size' in the xxxos SDK, falling back to searching the iOS SDK
No symbolic information found
Notes:
- I'm running Xcode 9.2
- I also tried copying otool, atos, symbols and size tools from /usr/bin into the same directory but still got the same errors
- I can run all of those tools directly from the command line successfully
- I suspect the problem is with the symbolicatecrash function "parse_SDKGuess" but I really can't go much further than that...
Any idea what's going on and how to fix it? Thanks!
Added the parse_SDKGuess function in the symbolicatecrash script for reference:
sub parse_SDKGuess {
    my ($log_ref) = @_;
    # It turns out that most SDKs are named "lowercased(HardwareModelWithoutNumbers) + os",
    # so attempt to form a valid SDK name from that. Any code that uses this must NOT rely
    # on this guess being accurate and should fallback to whatever logic makes sense for the situation
    my $model = parse_HardwareModel($log_ref);
    $model or return undef;
    $model =~ /(\D+)\d/;
    $1 or return undef;
    my $sdk = lc($1) . "os";
    if($sdk eq "ipodos" || $sdk eq "ipados") {
        $sdk = "iphoneos";
    }
    if ( $sdk =~ /mac/) {
        $sdk = "macosx";
    }
    return $sdk;
}
It seems that "lc($1)" evaluates to "xxx"...
 
    