That's is correct only. find the canopenURL: definition.
Returns a Boolean value indicating whether or not the URL’s scheme can
be handled by some app installed on the device.
It means that whenever you query for canOpenURL:(), iOS will see if any of the installed apps are registered for the scheme that you are requesting, If it couldn't able to find anything, then it will return false..
As the returning URL does not have any scheme attached to it, canOpenURL will return false. If you want to open a URL in Safari, it should start with http:// or https://, these are schemes registered for Safari.
One more thing is that, for canOpenURL(:), to work properly you need to whitelist the schemes. you can find more about this here. https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl
If you have registered custom schemes, then the respective app will open when you hit open(url).
one more thing, never hard code like the below.
let url = URL(string:"file:///Users/kiwitech/Library/Developer/CoreSimulator/Devices/FFA6761D-D98B-4C41-ACEF-18249F297897/data/Containers/Data/Application/82EF4E60-F9E9-434B-B86B-0391052D1E6E/Documents/proposals_dataxlsx.xlsx");
use NSSearchPathForDirectoriesInDomains, to create or search for a file in the directories.
NSString *stringPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"New Folder"];