objective-c – Apple允许我在自己的应用程序中重用它们的图标吗?

前端之家收集整理的这篇文章主要介绍了objective-c – Apple允许我在自己的应用程序中重用它们的图标吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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

猜你在找的C&C++相关文章