在 Mac App Store 中使用未记录的类,例如 NSPreferences

Posted

技术标签:

【中文标题】在 Mac App Store 中使用未记录的类,例如 NSPreferences【英文标题】:Using undocumented classes such as NSPreferences in Mac App Store 【发布时间】:2011-03-19 12:19:47 【问题描述】:

有一个名为NSPreferences 的未记录类似乎被 Safari 和 Mail 使用,并简化了多页首选项页面的创建。

有没有人在提交给 Mac App Store 的应用程序中使用 NSPreferences 或类似的未记录但有用且有趣的功能?

【问题讨论】:

如果你想在 Mac App Store 应用程序中使用这个类,你应该提交一个增强请求,要求它成为一个公共 API。 bugreport.apple.com @Peter Hosey:谢谢,我会这样做的 :-) 发布增强请求:openradar.appspot.com/radar?id=1137408 - rdar://9161716 【参考方案1】:

不要浪费你的时间。来自Mac App Store Review Guidelines:

2.5 使用非公开 API 的应用将被拒绝

【讨论】:

谢谢!然而,我想知道是否有人有过让代码真正通过而不被拒绝的经验。 这样看。想象一下,您已经向使用私有 API 的应用商店提交了一些东西,但奇怪的是它仍然被批准了。你打算在 ***.com 上谈论它吗?即使您的用户名没有表明您的身份,即使您从未提及您的产品,即使 Apple 可能不会注意到,它也不会显得谨慎。 即使你侥幸逃脱了一次,也没有必要期待再次侥幸逃脱。指望审阅者忽略你的违规行为,既不是好的开发实践,也不是好的商业模式。 谢谢!为大家点赞。太糟糕了。 NSPreferences 看起来真的很有用。我想知道为什么它没有记录在案和公开可用。 为公共框架创建一个类比为内部使用创建一个类要多得多。你总是可以告诉你的同事:“你可以用这个,但不要做 x、y 或 z。”这与公共课程无关。此外,有时项目迫切需要像 NSPreferences 这样的类,但框架架构师有不同的长期计划。对一个组织来说,修改任何使用 NSPreferences 的应用程序并不是什么大不了的事,但一旦它公开,他们就会被锁定一段时间来支持它。【参考方案2】:

看起来 Transmit 和 Coda 都可能通过其首选项对话框的外观来使用它。两者都可以在 App Store 上找到。

或者,您应该检查 OmniGroup 框架库。

https://github.com/omnigroup/OmniGroup/tree/master/Frameworks/OmniAppKit/Preferences.subproj

它实现了一个非常相似的首选项对话框。

【讨论】:

我很久以前就自己实现了它;) 使用 tabview、工具栏和 NSView 动画并不难。问题主要涉及NSPreferences 本身的实际使用。不过,这是对新人的支持 - 欢迎来到 SO!

以上是关于在 Mac App Store 中使用未记录的类,例如 NSPreferences的主要内容,如果未能解决你的问题,请参考以下文章

无法向 Mac App Store 提交应用程序:“未创建任务。”

上传到 App Store 时出现 Xcode 错误:“未找到合适的应用程序记录”

Mac App Store 的多语言应用程序 - 在哪里设置 Mac App Store 中显示的语言?

Mac App store出现未知错误怎么办

iOS App Store 促销代码显示“必须使用 Mac 兑换”

Mac App Store - 链接到 App Review 页面