加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:26:27 所属栏目:百科 来源:网络整理
导读:在我的OS X应用程序中,我允许用户打开Finder窗口.我想在我的“打开Finder”按钮上使用Finder的图标.我的应用程序将进入App Store,但我宁愿预先防止任何违反Apple使用其图标的政策. 那么,Apple会允许重复使用吗?并且,任何人都可以提供相应的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读