-
Notifications
You must be signed in to change notification settings - Fork 514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unable to find utility *, not a developer tool or in PATH #3931
Comments
Is there a way to change "VS for Mac" Xcode settings without going through the UI? We have a customer running into this on the VSTS Hosted macOS VMs and we are looking for a way to switch the "VS for mac" default via a script. Thanks, |
@madhurig it's stored in $ cat ~/Library/Preferences/Xamarin/Settings.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppleSdkRoot</key>
<string>/Applications/Xcode93.app</string>
</dict>
</plist> |
I managed to work around it on our build system by reading out the path located in the Settings.plist, and setting the DEVELOPER_DIR environment variable to this path, appended with "/Contents/Developer". |
@rolfbjarne we might also want to create an IDE issue. The IDE could get the Xcode path from |
@VincentDondain yes, that's another solution that should work just as fine. |
Also it's what Xcode does. |
* Enable nullability and fix code accordingly. * Augment it to be able to take multiple files to strip at the same time. * Strip in parallel. * Execute using xcrun (ref: xamarin#3931) * Pass the full path to the executable file to strip, to make command lines easier to copy-paste. * Remove test that is now outdated. We have other tests that run strip anyways, so this shouldn't be a problem.
* Enable nullability and fix code accordingly. * Augment it to be able to take multiple files to run dsymutil on at the same time. * Execute using xcrun (ref: xamarin#3931) * Pass the full path to the executable file to dsymutil, to make command lines easier to copy-paste.
* Enable nullability and fix code accordingly. * Augment it to be able to take multiple files to strip at the same time. * Strip in parallel. * Execute using xcrun (ref: #3931) * Pass the full path to the executable file to strip, to make command lines easier to copy-paste. * Remove test that is now outdated. We have other tests that run strip anyways, so this shouldn't be a problem.
* Enable nullability and fix code accordingly. * Augment it to be able to take multiple files to run dsymutil on at the same time. * Execute using xcrun (ref: #3931) * Pass the full path to the executable file to dsymutil, to make command lines easier to copy-paste.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'metal' and 'metallib' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability. Fixes #21437.
…. (#21439) This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'metal' and 'metallib' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability. Fixes #21437.
…. (#21439) This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'metal' and 'metallib' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability. Fixes #21437.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'altool' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'zip' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'altool' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'productbuild' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'altool' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
…XamarinTask. This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. Additionally: * Use 'xcrun' to invoke 'altool' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
This has a few advantages: * We simplify and unify more of our code. * We have more control over the error reporting / logging behavior. * We can optimize images in parallel. Additionally: * Use 'xcrun' to invoke 'pngcrush' (partial fix for #3931). * Allow for overriding the path to the command-line tool in question. * Add support for cancellation. * Fix nullability.
Steps to Reproduce
xcode-select -p
) points to a different Xcode than Visual Studio for Mac.xcrun -k
Result:
The error can be reproduced directly on the command line as well:
The problem is the
XCODE_DEVELOPER_DIR_PATH
environment variable, which confuses Apple's tooling (when building an XI or XM project the variable is inherited from Visual Studio for Mac, which sets it).Workarounds
Make sure the system Xcode and the VSfM Xcode is the same.
Run
xcrun
once without the variable (per broken tool) so that the tool's path is cached:Potential fixes
XCODE_DEVELOPER_DIR_PATH
unconditionally.XCODE_DEVELOPER_DIR_PATH
. Presumably there's a reason it's set in the first place, so this might be non-trivial.I think making mtouch and mmp unset the variable is the simplest and fastest to implement.
The text was updated successfully, but these errors were encountered: