Skip to content

Commit 776a253

Browse files
bitst0rmbitst0rm
authored andcommitted
Use xcrun instead xcode-select to find otool.
Apple yet again changed their toolchain path, cause the OTX crash when it tried to call the otool from a non-existed path.
1 parent 8d840e5 commit 776a253

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

source/Categories/SysUtils.m

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,31 +39,30 @@ - (NSString*)pathForTool: (NSString*)toolName
3939
NSString* relToolBase = [NSString pathWithComponents:
4040
[NSArray arrayWithObjects: @"/", @"usr", @"bin", nil]];
4141
NSString* relToolPath = [relToolBase stringByAppendingPathComponent: toolName];
42-
NSString* selectToolPath = [relToolBase stringByAppendingPathComponent: @"xcode-select"];
43-
NSTask* selectTask = [[[NSTask alloc] init] autorelease];
44-
NSPipe* selectPipe = [NSPipe pipe];
45-
NSArray* args = [NSArray arrayWithObject: @"--print-path"];
42+
NSString* xcrunToolPath = [relToolBase stringByAppendingPathComponent: @"xcrun"];
43+
NSTask* xcrunTask = [[[NSTask alloc] init] autorelease];
44+
NSPipe* xcrunPipe = [NSPipe pipe];
45+
NSArray* args = [NSArray arrayWithObjects: @"--find", toolName, nil];
4646

47-
[selectTask setLaunchPath: selectToolPath];
48-
[selectTask setArguments: args];
49-
[selectTask setStandardInput: [NSPipe pipe]];
50-
[selectTask setStandardOutput: selectPipe];
51-
[selectTask launch];
52-
[selectTask waitUntilExit];
47+
[xcrunTask setLaunchPath: xcrunToolPath];
48+
[xcrunTask setArguments: args];
49+
[xcrunTask setStandardInput: [NSPipe pipe]];
50+
[xcrunTask setStandardOutput: xcrunPipe];
51+
[xcrunTask launch];
52+
[xcrunTask waitUntilExit];
5353

54-
int selectStatus = [selectTask terminationStatus];
54+
int xcrunStatus = [xcrunTask terminationStatus];
5555

56-
if (selectStatus == -1)
56+
if (xcrunStatus == -1)
5757
return relToolPath;
5858

59-
NSData* selectData = [[selectPipe fileHandleForReading] availableData];
60-
NSString* absToolPath = [[[NSString alloc] initWithBytes: [selectData bytes]
61-
length: [selectData length]
59+
NSData* xcrunData = [[xcrunPipe fileHandleForReading] availableData];
60+
NSString* absToolPath = [[[NSString alloc] initWithBytes: [xcrunData bytes]
61+
length: [xcrunData length]
6262
encoding: NSUTF8StringEncoding] autorelease];
6363

64-
return [[absToolPath stringByTrimmingCharactersInSet:
65-
[NSCharacterSet whitespaceAndNewlineCharacterSet]]
66-
stringByAppendingPathComponent: relToolPath];
64+
return [absToolPath stringByTrimmingCharactersInSet:
65+
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
6766
}
6867

6968
@end

0 commit comments

Comments
 (0)