diff options
| -rw-r--r-- | modules/mono/utils/osx_utils.cpp | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/modules/mono/utils/osx_utils.cpp b/modules/mono/utils/osx_utils.cpp index 8e3e51e688..e68466b1cf 100644 --- a/modules/mono/utils/osx_utils.cpp +++ b/modules/mono/utils/osx_utils.cpp @@ -38,24 +38,21 @@  #include <CoreServices/CoreServices.h>  bool osx_is_app_bundle_installed(const String &p_bundle_id) { -	CFURLRef app_url = nullptr;  	CFStringRef bundle_id = CFStringCreateWithCString(nullptr, p_bundle_id.utf8(), kCFStringEncodingUTF8); -	OSStatus result = LSFindApplicationForInfo(kLSUnknownCreator, bundle_id, nullptr, nullptr, &app_url); +	CFArrayRef result = LSCopyApplicationURLsForBundleIdentifier(bundle_id, nullptr);  	CFRelease(bundle_id); -	if (app_url) -		CFRelease(app_url); - -	switch (result) { -		case noErr: +	if (result) { +		if (CFArrayGetCount(result) > 0) { +			CFRelease(result);  			return true; -		case kLSApplicationNotFoundErr: -			break; -		default: -			break; +		} else { +			CFRelease(result); +			return false; +		} +	} else { +		return false;  	} - -	return false;  }  #endif  |