Die URL-Methode resourceValues(forKeys:) lässt sich dazu verwenden, um herauszufinden, ob es sich bei der angegebenen URL um ein Alias (d. h., keinen Symlink) handelt. Der nachfolgende Code erweitert die URL-Klasse um die Methode isAlias, die einen optionalen Booleschen Wert zurückliefert.

extension URL {
    func isAlias() -> Bool? {
        let values = try? url.resourceValues(forKeys: [.isSymbolicLinkKey, .isAliasFileKey])
        let alias = values?.isAliasFile
        let symbolic = values?.isSymbolicLink

        guard alias != nil, symbolic != nil else { return nil }
        if alias! && !symbolic! {
            return true
        }
        return false
    }
}

Erläuterung: Bei einem Alias liefert resourceValues(forKeys:) den Wert true für den Key .isAliasFileKey und den Wert false für den Key .isSymbolicLinkKey. Wenn die URL nicht existiert, liefert isAlias() den Wert nil zurück.