/ usr/include中的所有头文件都被认为是MAS上的公共API吗?

Enc*_*ada 5 cocoa objective-c mac-app-store

当涉及到Mac App Store提交时,/ usr/include中的所有标头是否都被保证被视为公共API的一部分?

例如考虑文件/usr/include/copyfile.h

此文件中的注释说:"此实现不完整,界面可能会在将来的版本中更改." 这会使标题非公开吗?如何确定标头是否被视为公共?

Dan*_*Ray 5

如果记录在案,它是公开的.您的系统上有很多引用私有API的.h文件.这不是你怎么知道它是否是商店安全的.它是存储安全的,它在框架文档中有记录.


小智 3

阅读本文档页面的底部部分。

摘抄:

Mac OS X 在 /usr/lib 目录及其子目录中包含许多动态库。动态共享库由其 .dylib 扩展名标识。库的头文件位于 /usr/include 中。

这里似乎暗示.dylibOS X 中包含的库可以在您的应用程序中使用,但您需要注意它们不保证在例如 Lion 上拥有特定版本的库,因此您应该尽可能包含最通用的版本。

正如@Dan 所说,另一个让你知道库可以使用的事情是它是否有联机帮助页。copyfile有一个手册页,所以使用起来很好(因为他们向您展示了如何使用它!)。为了让事情变得更加模糊,请查看getattrlist手册页,然后搜索“copyfile”。您可以读取的卷功能标志之一表示支持第二个copyfile() API。因此,在本例中,有 2 个 copyfile() API,并且您只能使用带有联机帮助页的一个 API,因为另一个在此被标记为私有且未记录。

任何未包含在框架文件夹中且与.dylib手册页不匹配的标题,我通常会避免使用。