如果我有一个包标识符作为String
,我如何找出它识别的包的URL
?相反,如果我有一个捆绑的URL
,我如何找出该捆绑的标识符为String
?
我想只使用Foundation / Cocoa API来做到这一点。
您可以使用Bundle
的init(identifier:)
,然后使用bundleURL
从包标识符中获取URL,然后使用Bundle
的init(url:)
,然后使用bundleIdentifier
获取包的URL。
let myBundleUrl = Bundle(identifier: "com.me.app")?.bundleURL
let theirBundleId = Bundle(url: URL(fileURLWithPath: "/Applications/Mail.app"))?.bundleIdentifier
就像一张纸条,NSWorkspace
还有一个API,用于从给定的包ID获取URL:urlForApplication(withBundleIdentifier:)
。我不推荐这个,因为NSWorkspace
没有用于从URL
获取标识符的API。