Означает ли то, что «iOS 8 теперь поддерживает динамические рамки», это разрешено для отправки в App Store?
Похоже, что ранее разработчики, которые могли использовать dylibs для собственных приложений, но использовать их в чем-то, представленном в App Store, могли бы вас отвергнуть. Это все еще так или это изменение в iOS 8 сделало это нормально?
Например, если бы я написал приложение с использованием OpenCV, теперь было бы возможно построить и отгрузить dylib OpenCV (при условии, что я создал OpenCV как dylib) вместо статической компоновки?
Мне интересно, поскольку у нас есть существующая основанная на Qt инфраструктура, которая сама имеет несколько общих библиотек, которые мы в настоящее время собираем для Linux, OS X, Windows и Android. Для iOS кажется, что нам нужно изменить это, чтобы создать единое приложение со всеми нашими компонентами и статически связанными Qt. Если приложения iOS и App Store начинают поддерживать (встроенные) динамические библиотеки, тогда наши сборки iOS могут содержать все компоненты как динамические библиотеки, как и на всех других платформах.
Связанные с:
Кажется, что до сих пор существует ограничение, разрешающее только статически связанные приложения ios в App Store. Вы можете прочитать в Руководстве по обзору App Store:
2.7 Приложения, загружающие код любым способом или в любой форме, будут отклонены
2.8 Приложения, которые устанавливают или запускают другой исполняемый код, будут отклонены
Это не техническое ограничение, а юридическое. Он запрещен из-за соображений безопасности, поскольку динамическая библиотека может загружаться и выгружаться во время выполнения, вы можете загрузить дополнительный исполняемый код и загрузить его (например, плагин). Поэтому Apple строго контролирует динамическое связывание, что является проблемой безопасности для явно защищенных операционных систем, таких как ios.
Ведь вам нужна коммерческая лицензия для развертывания Qt в App Store. Вы можете купить лицензию Indie Mobile и пропустить испытания, создаваемые сторонними магазинами приложений. Это означает, что вы можете распространять свое приложение через любой сторонний магазин приложений, какой пожелаете.