13

虽然我知道为了让 iPhone 应用程序在 App Store 上被接受,一个要求是只能使用文档库。

如果是这种情况,某些应用程序(例如“夜景相机”和“Camera Plus”)如何使用似乎不是 UIImagePickerController 中包含的相机控件?

我听说过某些情况,开发人员被授予对某些标头的“特殊”访问权限,这些标头允许使用如果受限于仅使用文档库而无法实现的功能。但是,鉴于 App Store 的应用程序选择过程是多么不透明,我宁愿坚持推荐的内容,也不愿冒险。

任何人都愿意对此有所了解吗?

4

4 回答 4

8

你看过这个讨论吗?

http://blog.airsource.co.uk/index.php/2008/11/11/views-of-uiimagepickercontroller/

这个自定义选择器的示例代码?

http://www.codza.com/custom-uiimagepickercontroller-camera-view

希望能帮助到你。

于 2009-03-25T21:25:39.720 回答
6

您可能想查看苹果私有框架头文件的类转储。运行这个 perl 脚本:

http://arstechnica.com/apple/news/2008/11/dumping-the-iphone-2-2-frameworks.ars

并导航到 PrivateFrameworks 下的 PhotoLibrary 目录。这里的一些类看起来很有希望直接访问相机。

使用未记录的 API 可能会损害您通过应用商店的机会,但这都是非常主观的 - 如果您的产品很好,苹果可能会让它溜走。我建议与 Apple 的开发人员传道者交朋友。

于 2009-02-18T18:32:55.277 回答
1

UIImagePickerController 是管理视图层次结构的 UIViewController 子类。您可以随意使用视图层次结构,就像这些应用程序一样,但考虑到 Apple 没有记录它并且可以在任何操作系统更新时更改它,这是有风险的。

我没有听说任何人被授予对库的特殊访问权限,但我读过未记录的类和方法与私有框架之间存在细微差别。未记录的类是一个灰色地带,但绝对不允许私有框架。

于 2009-02-18T18:37:35.813 回答
0

简单的解释是商店中的应用程序不应该使用不受支持的 API,但这并没有得到一致的检查。您提到的应用程序要么使用不受支持的函数/类/方法,要么正在使用视图层次结构——即使它可以使用标准 API 完成,它本身也没有记录。

你可以做他们做的事,并抓住机会。请注意风险。您的应用程序可能 (a) 被商店拒绝,(b) 被接受但稍后启动(这发生在不支持的 API 使用中),(c) 被接受但未启动但在 Apple 下次有新的 iPhone 软件更新时中断(因为不受支持的 API 或视图层次结构可能会在没有警告的情况下更改)。或者你可能会很幸运,而这一切都没有发生。

于 2009-02-18T19:10:48.730 回答