私有API:不能用?还是不能不用?



什么是私有API

 

iPhone中的API除了公开的APIPublished API外(或者Documented API),还有两类:私有APIPrivate API和未公开APIUnPublished API(或者Undocumented API)

私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有使用说明、代码介绍等记录的API

按苹果的说法,未公开的API是还不够成熟,可能还会变动的API,等完全成型了后会变成公开的API,但是目前不对其提供承诺,就是系统版本升级后可能会失效。而私有API是苹果明确不能使用的API。虽然两者有所区别,但是在具体使用方法上是类似的。

 

私有API也曾逃过审核

 

因为调用私有API而在审核中遭到拒绝的现象并不少见,甚至是在#ifdef DEBUG下,也有被检测出来的。当然,也有很多应用都调用了私有API但依然获得了通过,或者是在被警告的同时得到通过。由于苹果的审核机制,并未透露更多的信息给开发者,我们也不能确认苹果到底是如何进行判断。

但可以确认的是,苹果并不是完全禁止私有API。在Apple官方的开发者论坛中公布允许开发者使用UIGetScreenImage() 这个私有API函数,还表示并在今后公布的SDK中,可能会公布跟这个函数等效的公开API函数

Tumblr 和 Instapaper 的程序员 Marco Arment 还曾经“揭露”,苹果在 iBooks 中使用了大量私有 API,致使第三方应用无法实现亮度控制和调用字典等类似的功能。

甚至是Google Voice这样的应用,一样调用了私有API,并且获得了通过上架。Google承认在开发iPhoneGoogle Mobile应用的时违反AppleiPhone软件开放包的规则使用了未发布的API来使用iPhone的接近感应器方便用户进行语音搜索

图:Google Voice

私有API的不足

使用未发布的API有可能造成Apple升级软件应用程序代码可能会损坏但是很多开发者愿意冒这个险来开发自认为更强力的应用,同时,也有很多开发者认为自己的应用不需要多次升级。以Google语音搜索感应识别为例,在原始的SDK使用规范中使用这些技术的应用程序将无法通过Apple Store的审核而事实上如果严格遵守SDK规则的话开发者是无法开发出Google Voice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值