Objective c 苹果允许我在自己的应用程序中重用他们的图标吗?

Objective c 苹果允许我在自己的应用程序中重用他们的图标吗?,objective-c,macos,Objective C,Macos,在我的OS X应用程序中,我允许用户打开查找窗口。我想使用“打开查找器”按钮上的查找器图标。我的应用程序将进入应用商店,但我宁愿先发制人,避免违反苹果公司使用图标的政策 那么,苹果会允许这种重复使用吗?还有,谁能提供苹果公司文档的相应参考资料?(我以为我读过这本书是不允许的,但我现在找不到。) 更新: 为了处理兴趣应用程序未运行的情况,我使用了superfell对前一个问题的回答,如下所示: // Return an application's icon using its bundle ide

在我的OS X应用程序中,我允许用户打开查找窗口。我想使用“打开查找器”按钮上的查找器图标。我的应用程序将进入应用商店,但我宁愿先发制人,避免违反苹果公司使用图标的政策

那么,苹果会允许这种重复使用吗?还有,谁能提供苹果公司文档的相应参考资料?(我以为我读过这本书是不允许的,但我现在找不到。)

更新: 为了处理兴趣应用程序未运行的情况,我使用了superfell对前一个问题的回答,如下所示:

// 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在下面的回答,因为他让我走上了正确的道路。

这可能没有多大帮助,但考虑到他们有文档,我认为如果你可以使用你想要营销的产品,那么在你的应用程序中放置它应该没有问题。我看看能不能找到一份更明确的文件


也从一个网站上发现了这一点。

这可能很好,因为苹果公司不太可能因为这样的用途而追求你。从某种意义上说,应用程序为其他程序(如Finder)提供专门的图标来显示,以便操作应用程序,这可能也没什么问题。你是否被起诉实际上取决于苹果的法律部门,你是否会胜诉取决于你国家的版权法(以及该法的合理使用例外)。你可以请求苹果公司的明确许可;详情请参阅

无论如何,如果应用商店审核失败,请更改图标。没什么大不了的

您可能不想硬编码图标。相反,在运行时按如下方式获取图标:

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

我不知道Finder图标。我们在工具栏菜单上使用了类似于上面图标的东西。他们拒绝了软件更新,说了以下几句话

5.1



该应用程序在主应用程序窗口中使用Home图标的方式与苹果的商标指南不一致

根据我们的记录,那是2011年9月底。

苹果徽标和苹果所有的图形符号:除苹果明示书面商标许可外,您不得在网站、产品、包装、手册、促销/广告材料上或与之相关的任何其他用途上使用苹果徽标或任何其他苹果所有的图形符号、徽标或图标,例如经销商协议


这基本上适用于任何公司。如果您没有使用图形的明确许可证,请不要使用它们。

我猜被拒绝是因为您在不熟悉的任务中使用了熟悉的图标。如果该图标链接到用户的主目录,它可能会很好。嗨,罗布,好主意。问题在于,该技术无法查询可能尚未运行的另一个应用程序(如终端)。在我的示例中,我被Finder所困扰。那么,关于从捆绑包标识符获取未运行应用程序的图标,有什么建议吗?我已经编辑了我的答案。代码中有一个小错误:
return[workspace iconForFile:bundleIdentifier]
显然应该是
返回[workspace iconformfile:appPath]@Andrey谢谢你指出这一点。我已经修好了。我没有向苹果公司授予我的应用程序图标的明确许可。然而,他们正在自己的应用程序(Finder)中展示它。我应该起诉他们吗?我的问题为什么会偏离主题?它是否与FAQ中定义的“编程专业特有的实用、可回答的问题”有关?可能是一个更好的提问论坛,因为这不能用编程的答案来回答,而只能由知道苹果会允许什么的专家来回答。约翰,谢谢你提供了一个答案。尽管如此,apple.stackexchange对我来说似乎更关注最终用户,我的问题与编码相关。无论如何,请继续,再次感谢。好吧,正如你在更新中所说的(这是指我在第一条评论中指出的“可能的重复”),答案在其他地方确实有重复的答案,这是投票结束SO问题的另一个有效理由。