如何在Swift中以编程方式获取应用程序ID?

8
在macOS应用程序中,我正在使用以下代码在“应用程序支持”文件夹中创建一个目录。
let directoryURL = appSupportURL.appendingPathComponent("com.myCompany.myApp").appendingPathComponent("Documents")

如何在Swift中以编程方式获取字符串com.myCompany.myApp

我看到了这个问题,但我不确定如何在我的macOS Swift应用程序中使用它:以编程方式访问应用标识前缀


1
如果您对应用程序进行沙盒处理,这将不是问题。您的“应用程序支持”文件夹仅属于您自己。 - matt
2个回答

15
if let bundleIdentifier = Bundle.main.bundleIdentifier {
    appSupportURL.appendingPathComponent("\(bundleIdentifier)").appendingPathComponent("Documents")
}

小提示:属性 bundleIdentifier 是可选的,因此您需要安全地解包该值,然后您将不会被要求使用任何感叹号 :)


1
很容易获取应用程序的ID:

let bundleIdentifier =  Bundle.main.bundleIdentifier
  appSupportURL.appendingPathComponent("\(bundleIdentifier)").appendingPathComponent("Documents")

一个捆绑标识符是分配给包的Info.plist文件中的CFBundleIdentifier键的字符串。通常,此字符串使用反向DNS表示法进行格式化,以避免与其他公司的开发人员发生名称空间冲突。例如,来自苹果的Finder插件可能会使用字符串com.apple.Finder.MyGetInfoPlugin作为其捆绑标识符。客户端需要引用捆绑的参考而不是在代码中传递捆绑对象指针时,可以简单地使用捆绑标识符检索它。
有关更多详细信息和其他操作的详细信息,请查看。

https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接