在我的OS X应用程序中,我允许用户打开Finder窗口.我想在我的“打开Finder”按钮上使用Finder的图标.我的应用程序将进入App Store,但我宁愿预先防止任何违反Apple使用其图标的政策.
那么,Apple会允许重复使用吗?并且,任何人都可以提供相应的Apple文档参考吗? (我以为我读过它是不允许的,但我现在找不到它.)
更新:
为了处理案件,感兴趣的应用程序没有运行,我使用了superfell对上一个问题12166532的回答,如下所示:
// Return an application's icon using its bundle identifier - (NSImage *) applicationIconWithBundleIdentifier: (NSString *) bundleIdentifier { NSImage *image = [NSImage imageNamed:NSImageNameComputer]; // fallback icon NSString *path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:bundleIdentifier]; if (path) { image = [[NSWorkspace sharedWorkspace] iconForFile:path]; } return image; }
但是,我非常感谢Rob的回答让我走上正轨.
解决方法
它可能很好,因为Apple不太可能追求你的使用.它也可能很好,在某种意义上,应用程序提供专门用于其他程序(如Finder)的图标,以便操作应用程序.您是否被起诉取决于Apple的法律部门,您是否会获胜取决于您所在国家/地区的版权法(以及该法律的合理使用例外情况).您可以向Apple要求明确许可;详情请见
their web site.
无论如何,如果您未通过App Store审核,请更改图标.没什么大不了.
您可能不想对图标进行硬编码.相反,在运行时获取图标如下:
NSImage *imageForAppWithBundleIdentifier(NSString *bundleIdentifier) { NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; NSString *appPath = [workspace absolutePathForAppBundleWithIdentifier:bundleIdentifier]; return [workspace iconForFile:appPath]; }
Finder的包标识符是com.apple.finder.终端的包标识符是com.apple.Terminal.
$osascript -e 'tell app "Finder" to get id' com.apple.finder $osascript -e 'tell app "Terminal" to get id' com.apple.Terminal