gpt4 book ai didi

cocoa - 如何从 Cocoa 中的应用程序名称获取 bundle 标识符?

转载 作者:行者123 更新时间:2023-12-03 16:08:11 25 4
gpt4 key购买 nike

假设您有一个应用程序的名称 Mail.app,如何以编程方式从应用程序名称获取 com.apple.mail

最佳答案

以下方法将返回指定应用程序的应用程序包标识符:

- (NSString *) bundleIdentifierForApplicationName:(NSString *)appName
{
NSWorkspace * workspace = [NSWorkspace sharedWorkspace];
NSString * appPath = [workspace fullPathForApplication:appName];
if (appPath) {
NSBundle * appBundle = [NSBundle bundleWithPath:appPath];
return [appBundle bundleIdentifier];
}
return nil;
}

对于 Mail,您可以像这样调用该方法:

NSString * appID = [self bundleIdentifierForApplicationName:@"Mail"];

appID 现在包含 com.apple.mail

swift 5.1

import AppKit

func bundleIdentifier(forAppName appName: String) -> String? {

let workspace = NSWorkspace.shared
let appPath = workspace.fullPath(forApplication: appName)
if let appPath = appPath {
let appBundle = Bundle(path: appPath)
return appBundle?.bundleIdentifier
}
return nil
}

// For Mail you can call the method like so:

let appID = bundleIdentifier(forAppName: "Mail")
<小时/>

弃用

fullPathForApplication:/fullPath(forApplication:) 方法已在 macOS 10.15 中弃用 - 目前尚不清楚 future 的答案是什么。

关于cocoa - 如何从 Cocoa 中的应用程序名称获取 bundle 标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com