In my OS X application, I allow the user to open a Finder window. I would like to use the Finder's icon on my "open Finder" button. My application will be going to the App Store, but I would rather preempt any violation of Apple's policy on using their icons.
So, would such reuse be allowed by Apple? And, could anybody provide a corresponding reference to Apple's documentation? (I thought I had read it was not allowed, but I cannot find it now.)
UPDATE: To handle cases were the application of interest is not running, I used superfell's answer of a previous question, 12166532, as follows:
// 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;
}
But, I am very grateful to Rob's answers below for putting me on the right track.
It's probably fine, in the sense that Apple's unlikely to go after you for such use. It's also probably fine, in the sense that applications provide icons specifically for other programs (like the Finder) to display for the purposes of manipulating the apps. Whether you get sued is really up to Apple's legal department, and whether you would win is up to your country's copyright law (and fair use exceptions to that law). You can ask Apple for explicit permission; details are on their web site.
Anyway, if you fail the App Store review, change the icon. No big deal.
You probably don't want to hard-code the icon. Instead, get the icon at runtime like this:
NSImage *imageForAppWithBundleIdentifier(NSString *bundleIdentifier) {
NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
NSString *appPath = [workspace absolutePathForAppBundleWithIdentifier:bundleIdentifier];
return [workspace iconForFile:appPath];
}
Finder's bundle identifier is com.apple.finder
. Terminal's bundle identifier is 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
http://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.html
Apple Logo and Apple-owned Graphic Symbols: You may not use the Apple Logo or any other Apple-owned graphic symbol, logo, or icon on or in connection with web sites, products, packaging, manuals, promotional/advertising materials, or for any other purpose except pursuant to an express written trademark license from Apple, such as a reseller agreement.
This basically applies for any company. If you don't have explicit license to use graphics, don't use them.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With