在iOS上复制丢失的标头

时间:2013-05-29 22:58:10

标签: ios c iphone-privateapi

OSX具有iOS SDK中没有的功能,偶尔我会找到类似这样的答案:no route.h on the iPhone SDK,说“只是从模拟器(或OSX)SDK复制头文件它会正常工作。“

这似乎在我的多个层面上都是可疑的,包括App Store的批准,但后来我读了this from an Apple employee之类的内容,如果你在iOS上使用sys / route.h声明,那就说商店应用程序,请与我联系......“,这听起来像是默许(或者是一种捕捉不当行为的诡计:)。

任何人都知道官方线路到底在哪里,以及在生产代码中是否可以安全地执行此类操作?我对低级BSD函数以及可移植性等方面特别感兴趣,而不是未记录的Objective-C方法。

2 个答案:

答案 0 :(得分:3)

我不认为Apple论坛上的评论是默认的。听起来他们只是想确定是否应该添加一些额外的 BSD API以供在iOS应用中使用。

通常,如果某个功能没有可用的 iOS 标头,则它被视为私有API(例如,https://developer.apple.com/library/ios/下的内容)。关于私有API的官方政策是它们不能用于通过App Store分发的应用程序。

现在,您当然可以将它们用于个人/业余爱好应用或内部部署的应用(企业分发)。

如果您正在讨论的API是针对 OS X 公开记录的API,并且您可以通过复制标题让它们适用于iOS,那么它们可能是Darwin的一部分来源基地。它们很可能会继续在iOS的未来版本中运行,尽管这并不能保证。当然,没有任何保证(真的),因为公共API也被弃用

然后,问题是并非所有审核检查都是自动(我不为Apple工作,但可以从我看过的内容中推断出这一点)。使用私有API使用的应用程序并不罕见,但如果它们变得流行,Apple会在几周内经常从商店中提取这些应用程序。审核过程并不完美。

所以,我的答案是,如果您要提交到应用程序商店,请不要指望在标题中复制。

P.S。如果您能告诉我们具体您指的是哪个BSD功能,我们可能会给您更好的答案。

P.P.S。你链接到Route.h的答案来自Grant Paul,他写了很多非App Store软件。

Additional useful information on Private APIs and the App Store

答案 1 :(得分:1)

Apple从不知道你使用的头文件 - 当然危险是复制文件的定义接近但不完全是iOS使用的。如果这个文件很重要,或者选择一些文件,请在Apple的内部论坛上发帖提问,你一定会得到这样一个问题的答案。如果做不到这一点,就会烧掉DTS事件(你每年得到两次,我几乎从不使用我的。)