Что произойдет, если api, используемое вашим приложением, устарело после того, как ваше приложение будет выпущено?

Если вы отпустите приложение, которое использует api, которое позже устарело (после выпуска вашего приложения), что происходит?

Что делать, если вы никогда не обновляете свое приложение после его выпуска в магазине? Будет ли он работать со всеми будущими версиями iOS?

Будет ли приложение работать, когда api уйдет в более поздних версиях ОС? Или App Store просто не позволяет вашему приложению загружаться в будущие версии ОС?

Ответ 1

Вы спросили:

Если вы выпустили приложение, которое использует api, которое позже устарело (после выпуска вашего приложения), что происходит?

Согласно Apple, "метод, признанный устаревшим, был заменен и может стать неподдерживаемым в будущем".

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

Если вы используете методы, которые уже отмечены как устаревшие на момент выпуска вашего приложения (или, по крайней мере, без выполнения соответствующих проверок времени выполнения для доступа к методу преемника), вы подвергаетесь большему риску несовместимости с будущими версиями iOS, Но если вы придерживаетесь API, который не устарел при выпуске приложения, вряд ли вы столкнетесь с проблемами с изменениями API в течение разумного промежутка времени.

Что делать, если вы никогда не обновляете свое приложение после его выпуска в магазине? Будет ли он работать со всеми будущими версиями iOS?

Если вы хорошо спроектированы (например, вы не полагаетесь на методы, которые были устаревшими в то время, когда вы разработали приложение), вероятно, вы, вероятно, будете в безопасности для нескольких версий iOS, но у вас нет никакой гарантии. Бремя лежит на разработчике, чтобы убедиться, что приложение совместимо с новыми версиями iOS по мере их развертывания.

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

Будет ли приложение работать, когда api уйдет в более поздних версиях ОС? Или App Store просто не позволяет вашему приложению загружаться в будущие версии ОС?

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

Единственное автоматическое удаление, о котором я знаю, - это то, что разработчик позволяет их заплатить лицензию разработчика. В этом случае приложение немедленно удаляется из магазина.


В стороне, вы сосредоточены исключительно на различиях API. Другим источником проблем являются те приложения, которые полагаются на некоторые недокументированные идиосинкразии iOS для успешной работы приложения. Если вы придерживаетесь стандартных, задокументированных вызовов API, вы должны быть в порядке. Но если у вас есть какая-то особенность, которую вы только получили, чтобы работать, используя некоторую рабочую операцию kludgy, обнаруженную экспериментально, но не найденную в официальной документации, тогда это предупреждающий знак о том, что ваше приложение может быть не очень "надежным в будущем" и вполне может сломаться на будущие выпуски iOS.

Ответ 2

немедленно ничего. устаревшая api не будет удалена из ОС.. через несколько лет приложение может просто врезаться в текущую ОС, если вы все еще используете эту функцию. НО AFAIK не было такого случая в короткой жизни IOS.

Другая история - это когда вы обновляете базовый SDK приложения и перекомпилируете его. возможно, вы вынуждены заменить этот устаревший вызов.

Ответ 3

Очень сложно сказать, что некоторые методы/свойства, которые были устаревшими, все еще работают. Например, tableViewCell.textColor был обесценен в iOS 3 или 4, но он работает. Apple пытается поддерживать обратную совместимость со старыми iOS и позволяет старым приложениям работать.

Ответ 4

В то время как я никогда не испытывал эту проблему со своими собственными приложениями, я видел приложения в магазине, которые не обновлялись в течение 2+ лет. Многие из этих приложений просто врезаются при запуске, поскольку они пытаются получить доступ к API, которые больше не работают и имеют встроенную обработку ошибок с ошибкой.

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

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