2009-02-18 2 views
13

Хотя я понимаю, что для того, чтобы приложение iPhone было принято в App Store, необходимо предусмотреть только документально оформленные библиотеки.Пользовательские элементы управления камерой iPhone (не используя UIImagePickerController)

Если это так, то как некоторые приложения, такие как «Ночная камера» и «Камера Плюс», используют управление камерой, которое похоже на нечто, отличное от того, которое содержится в UIImagePickerController?

Я слышал о некоторых случаях, когда разработчику был предоставлен «специальный» доступ к определенным заголовкам, которые допускают функции, которые в противном случае были бы невозможны, если бы были ограничены только использование документированных библиотек. Однако, учитывая, насколько непрозрачный процесс выбора приложений для App Store, я предпочел бы придерживаться того, что рекомендуется, а не рисковать.

Любой, кто хочет пролить свет на это?

ответ

6

Возможно, вам захочется проверить класс, в котором содержатся заголовки отдельных фреймов. Выполнить этот скрипт на языке Perl:

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

и перейдите в каталог PhotoLibrary под PrivateFrameworks. Некоторые из классов здесь выглядят довольно многообещающими для прямого доступа к камерам.

Использование недокументированного API может повредить вашим шансам пройти через магазин приложений, но все это очень субъективно. Если ваш товар хорош, яблоко, вероятно, позволит ему проскользнуть. Я бы рекомендовал подружиться с евангелистом-разработчиком Apple.

+0

Спасибо за ссылку для дампа каркаса.Я запустил скрипт для образовательных целей, но пока буду придерживаться документированных классов. –

+0

Конечно. Дайте мне знать, если вы придумаете решение, которое не нарушает условия Apple – 2009-02-18 19:27:25

1

UIImagePickerController - это подкласс UIViewController, который управляет иерархией представлений. Вы можете играть с иерархией представлений, поскольку эти приложения есть, но это рискованно, учитывая, что Apple не документирует его и может изменить его при любом обновлении ОС.

Я не слышал, чтобы кому-либо предоставлялся специальный доступ к библиотекам, но я прочитал, что существует незначительное различие между недокументированными классами и методами и частными структурами. Недокументированные классы - это серая область, но частные рамки определенно не допускаются.

+0

Определенно. Спасибо за информацию. –

0

Простым объяснением является то, что приложения в магазине не должны использовать неподдерживаемые API, но это не проверяется последовательно. Приложения, о которых вы упомянули, либо используют неподдерживаемые функции/классы/методы, либо играют с иерархией представлений, что само по себе недокументировано, даже если это можно сделать со стандартными API.

Вы можете делать то, что они делают, и рисковать своим шансом. Просто имейте в виду риски. Ваше приложение может быть (а) отклонено из магазина, (b) принято, но позже загружено (это произошло при использовании неподдерживаемого API), (c) быть принятым и не загруженным, но в следующий раз у Apple появится новое обновление программного обеспечения для iPhone (поскольку неподдерживаемые API или иерархии представлений могут меняться без предупреждения). Или вам повезет, и ничего подобного не произойдет.

Смежные вопросы