Пользовательские элементы управления камерой iPhone (без использования UIImagePickerController)

StackOverflow https://stackoverflow.com/questions/561868

  •  05-09-2019
  •  | 
  •  

Вопрос

Я понимаю, что для того, чтобы приложение для iPhone было принято в App Store, необходимо использовать только документированные библиотеки.

Если это так, то как некоторые приложения, такие как «Night Camera» и «Camera Plus», используют элемент управления камерой, который кажется чем-то отличным от того, который содержится в UIImagePickerController?

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

Кто-нибудь хочет пролить больше света на это?

Это было полезно?

Решение

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

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

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

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

Другие советы

Вы видели это обсуждение?

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

и этот пример кода для пользовательского средства выбора?

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

Надеюсь, поможет.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top