Будут ли приложения на основе Swift работать на OS X 10.9 (Mavericks) / iOS 7 и ниже?
Например, у меня есть машина под управлением OS X 10.8 (Mountain Lion), и мне интересно, будет ли на ней работать приложение, которое я пишу в Swift.
Или что мне нужно, чтобы создать приложение Swift с помощью Mac OS?
Ответы:
Я только что проверил это для вас, приложения Swift компилируются в стандартные двоичные файлы и могут работать на OS X 10.9 и iOS 7.
Простое приложение Swift, используемое для тестирования:
источник
UIViewController
после двоеточия представляет тип переменной, а второе вхождение после=
знака вызывает конструктор (инициализирует переменную).Код Swift можно развернуть в OS X 10.9 и iOS 7.0. Как правило, происходит сбой при запуске на старых версиях ОС.
источник
Apple объявила, что приложения Swift будут обратно совместимы с iOS 7 и OS X Mavericks. Приложение WWDC написано на языке Swift.
источник
Обновление - согласно Xcode 6 Beta 4
Из примечания к выпуску Xcode 6
Поэтому мой предыдущий ответ (показанный ниже) не будет применим ни к какому дальнейшему развитию. Swift больше не будет доступен для iOS6 и ниже
Приложение Swift можно запустить на iOS 6. Хотя многие говорят, что Swift будет поддерживать только iOS 7+ и OS X 10.9+, по моему опыту это не так.
Я протестировал простое приложение, написанное полностью на Swift, на устройстве iOS 6. Работает отлично . Как говорит Apple, код Swift двоично совместим с кодом Objective-C. Он использует тот же компилятор и среду выполнения для создания двоичного файла.
Вот код, который я протестировал:
Это простое приложение, просто добавление кнопки программно. Мое приложение содержит только два файла,
AppDelegate.swift
иViewController.swift
.Поэтому, если вы не используете какие-либо новые API, добавленные в составе iOS 8 SDK или некоторых специфических API Swift (соответствующий API недоступен для Objective-C), ваше приложение будет бесперебойно работать на iOS 6 или более поздней версии (протестировано и работает), даже на iOS 5 (не тестировалось). Большинство API в Swift являются просто заменой существующих API Objective-C. На самом деле они одинаковы в двоичном виде.
Примечание. В соответствии с бета-версией Xcode 6 для быстрых приложений, целью развертывания должна быть iOS 7 или OS X 10.9 (см. Обновление выше). Так что swift больше не будет доступен для iOS6 и ниже
источник
Вкратце:
Приложения на основе Swift могут ориентироваться на OS X Mavericks или iOS 7 с тем же приложением.
Как это возможно ?
Xcode встраивает небольшую библиотеку времени выполнения Swift в комплект вашего приложения . Поскольку библиотека встроена, ваше приложение использует согласованную версию Swift, которая работает в прошлых, настоящих и будущих выпусках ОС.
Почему я должен доверять этому ответу?
Потому что я не говорю этот ответ, как сказал мне один твиттер в твиттере, или я написал привет, и проверил его.
Я взял это из блога разработчика Apple .
так что вы можете доверять этому.
источник
Swift использует ту же среду выполнения, что и Objective-C, и даже может жить рядом с Objective-C в одном и том же приложении (в соответствии с основным докладом WWDC 2014).
Это нужно будет проверить / проверить с помощью Xcode 6 и нового SDK, чтобы найти окончательный ответ.
источник
Я прочитал все ответы: «Нет, Swift не работает с менее чем iOS 7. Но я сказал ДА , я только что создал проект Swift, который работает в Xcode 5 с целью развертывания 6.0.
Тогда этот проект хорошо работает в симуляторе 6.1 . Мой MacOS X - 10.9.3 , поэтому я сказал «да», он работает ниже iOS 7. с 10.9.3 Mac OS X .
Вот скриншот симулятора:
Вот демо, а также
источник
Хотя код подтверждает это, сама Apple заявляет, что Swift будет совместим с iOS 7 и Mavericks в их техническом выступлении ( Состояние платформ , сеанс 102, около отметки 34 мин 00 с) на WWDC 2014 .
источник
Приложения Swift поддерживаются на iOS 7 и выше, как указано в примечаниях к выпуску Beta 4.
iOS 6.0, 6.1, 7.0, 7.1, 8.0 в Xcode 6 BetaПриложения Swift поддерживаются на платформах OS X 10.9 и выше .
OS X 10.4–10.10 в разделе «Цель развертывания». Я проверил таргетинг с 10.5 до 10.10 и работаю на 10.9.3источник
Похоже, приложения Swift не работают на OS X 10.7 . Я только что создал простое приложение с графическим интерфейсом (представление, ярлык, кнопка), которое отлично работает на Mavericks. Базовый SDK установлен на 10,9, а цель развертывания - на 10,7. Я скопировал это приложение из папки DerivedData на свою виртуальную машину 10.7, и она зависает при запуске, покажите эту ошибку:
Однако это сообщение вызывает раздражение, поскольку в этой виртуальной машине определенно есть библиотека CoreGraphics. Другие приложения, которые интенсивно используют CoreGraphics, работают просто отлично.
источник
Это пост, который я прочитал в блоге Apple Swift, может быть полезным:
Совместимость приложения :
Если вы напишите приложение Swift, вы можете быть уверены, что ваше приложение будет хорошо работать в будущем. Фактически, вы можете вернуться к OS X Mavericks или iOS 7 с помощью того же приложения. Это возможно, потому что Xcode встраивает небольшую библиотеку времени выполнения Swift в комплект вашего приложения. Поскольку библиотека встроена, ваше приложение использует согласованную версию Swift, которая работает в прошлых, настоящих и будущих выпусках ОС.
Бинарная совместимость и фреймворки:
Несмотря на то, что обеспечивается совместимость приложения во время выполнения, сам язык Swift будет продолжать развиваться, и двоичный интерфейс также будет меняться. На всякий случай все компоненты вашего приложения должны быть собраны с одной и той же версией Xcode и компилятором Swift, чтобы обеспечить их совместную работу.
Это означает, что фреймворки должны тщательно управляться. Например, если ваш проект использует фреймворки для совместного использования кода со встроенным расширением, вы захотите собрать вместе фреймворки, приложения и расширения. Было бы опасно полагаться на двоичные фреймворки, использующие Swift, особенно от третьих лиц. По мере изменения Swift эти фреймворки будут несовместимы с остальной частью вашего приложения. Когда бинарный интерфейс стабилизируется через год или два, среда выполнения Swift станет частью операционной системы хоста, и это ограничение больше не будет существовать.
источник
Я протестировал запуск приложения на базе Swift на устройстве iPod Touch (3-го поколения). Оказывается Swift на основе приложения не работать с прошивкой 5.x , но сделать работу с прошивкой 6.x.
Вот что отображается в журнале отладки, когда я пытался запустить тестовое приложение с iOS 5.0.1:
Для iOS 6.1.6 приложение работает нормально без отображения этих сообщений об ошибках.
источник
Кажется, здесь много старых ответов, поэтому я просто хотел опубликовать официальный ответ от команды Swift. Swift обратно совместим с OS X Mavericks и iOS 7
Блог разработчика Apple Swift: идентификатор Objective-C - Swift Any
11 июля 2014 г.
Совместимость
Один из самых распространенных вопросов, которые мы услышали на WWDC, был: «Какова история совместимости со Swift?». Это похоже на отличную первую тему.
Совместимость приложений Проще говоря, если вы напишите приложение Swift сегодня и отправите его в App Store этой осенью, когда выйдут iOS 8 и OS X Yosemite, вы можете быть уверены, что ваше приложение будет хорошо работать в будущем. Фактически, вы можете вернуться к OS X Mavericks или iOS 7 с помощью того же приложения. Это возможно, потому что Xcode встраивает небольшую библиотеку времени выполнения Swift в комплект вашего приложения. Поскольку библиотека встроена, ваше приложение использует согласованную версию Swift, которая работает в прошлых, настоящих и будущих выпусках ОС.
источник
Я также попробовал очень простое приложение на 10.8 (одна кнопка, устанавливает текст на этикетке). Он рухнул при запуске, как сказал Грег Паркер:
(Это было использование цели развертывания 10,7)
источник
Попробуйте следующий код:
Это работает без StoryBoard:
источник
Да, на самом деле Apple объявила, что приложения Swift будут обратно совместимы с iOS 7 и OS X Mavericks. Кроме того, приложение WWDC написано на языке программирования Swift.
источник
Когда дело доходит до Swift Frameworks. На сегодняшний день, с версией Xcode 6.1.1 (6A2008a), если среда Swift предназначена для iOS 7.1, предупреждение о компоновщике
и приложение не может быть отправлено в AppStore. Проверьте эту проблему: Lint для предотвращения прохождения динамических библиотек и фреймворков с iOS 7
источник
Mach-O Type
должен бытьDynamic Library
, однако, iOS 7 принимаетStatic Library
только.Быстрое обновление, начиная с 15 февраля 2015 года , мы не можем отправлять в магазин приложения, разработанные с использованием SDK до iOS 8 . Поэтому, помня об этом, лучше не беспокоиться об этой проблеме, так как многие люди полагают, что приложения, созданные в Swift, могут быть развернуты также и на OS X 10.9 и iOS 7.0 .
источник
Ответный фрагмент кода, опубликованный Леандросом, кажется старым. Я исправил и сделал его компилируемым в Swift 5.
Swift 5
источник