Les applications basées sur Swift fonctionneront-elles sur OS X 10.9 (Mavericks) / iOS 7 et inférieur?
Par exemple, j'ai une machine exécutant OS X 10.8 (Mountain Lion) et je me demande si une application que j'écris dans Swift fonctionnera dessus.
Ou ce que je devrais avoir pour créer une application Swift sous Mac OS?
Réponses:
Je viens de le tester pour vous, les applications Swift se compilent en binaires standard et peuvent être exécutées sur OS X 10.9 et iOS 7.
Application Swift simple utilisée pour les tests:
la source
UIViewController
après les deux points représente le type de la variable et la deuxième occurrence après que le=
signe appelle le constructeur (initialise la variable).Le code Swift peut être déployé sur OS X 10.9 et iOS 7.0. Il se bloque généralement au lancement sur les anciennes versions du système d'exploitation.
la source
Apple a annoncé que les applications Swift seront rétrocompatibles avec iOS 7 et OS X Mavericks. L'application WWDC est écrite en Swift.
la source
Mise à jour - selon Xcode 6 Beta 4
À partir de la version Xcode 6
Donc, ma réponse précédente (illustrée ci-dessous) ne sera applicable à aucun développement ultérieur. Swift ne sera plus disponible pour iOS6 et versions antérieures
Une application Swift peut être exécutée sur iOS 6. Même si beaucoup de gens disent que Swift ne prendra en charge que iOS 7+ et OS X 10.9+, d'après mon expérience, ce n'est pas le cas.
J'ai testé une application simple écrite entièrement en Swift dans un appareil iOS 6. Cela fonctionne parfaitement bien . Comme le dit Apple, le code Swift est compatible binaire avec le code Objective-C. Il utilise le même compilateur et le même runtime pour créer le binaire.
Voici le code que j'ai testé:
Il s'agit d'une application simple, ajoutant simplement un bouton par programme. Mon application ne contient que deux fichiers,
AppDelegate.swift
etViewController.swift
.Donc, si vous n'utilisez pas de nouvelles API ajoutées dans le cadre du SDK iOS 8 ou de certaines API spécifiques à Swift (l'API correspondante n'est pas disponible pour Objective-C), votre application fonctionnera de manière transparente sur iOS 6 ou version ultérieure (testée et opérationnelle), même sur iOS 5 (non testé). La plupart des API de Swift ne sont que le remplacement des API Objective-C existantes. En fait, ils sont les mêmes en binaire.
Remarque: Conformément à Xcode 6 beta 4 pour la cible de déploiement d'applications rapides, iOS 7 ou OS X 10.9 (voir la mise à jour ci-dessus). Swift ne sera plus disponible pour iOS6 et versions antérieures
la source
En bref:
Les applications basées sur Swift peuvent cibler de nouveau OS X Mavericks ou iOS 7 avec cette même application.
Comment est-ce possible ?
Xcode intègre une petite bibliothèque d'exécution Swift dans le bundle de votre application . Étant donné que la bibliothèque est intégrée, votre application utilise une version cohérente de Swift qui s'exécute sur les versions passées, présentes et futures du système d'exploitation.
Pourquoi devrais-je faire confiance à cette réponse?
Parce que je ne dis pas cette réponse comme un gars de pomme me l'a dit sur Twitter ou j'ai écrit Hello World et l'ai testé.
Je l'ai pris sur le blog des développeurs d'Apple .
vous pouvez donc faire confiance à cela.
la source
Swift utilise le même runtime qu'Objective-C et peut même vivre côte à côte Objective-C dans la même application (conformément à la keynote de la WWDC 2014).
Cela devra être vérifié / vérifié en utilisant Xcode 6 et le nouveau SDK pour trouver une réponse finale.
la source
J'ai lu toutes les réponses qui disaient: Non, Swift ne fonctionne pas avec moins d'iOS 7. Mais j'ai dit OUI , je viens de créer un projet Swift qui s'exécute dans Xcode 5 avec la cible de déploiement 6.0.
Ensuite, ce projet fonctionne bien dans le simulateur 6.1 . Mon Mac OS X est 10.9.3 , donc je l' ai dit oui, qui fonctionne dans plus bas que iOS 7. avec Mac OS X 10.9.3 .
Voici une capture d'écran du simulateur:
Voici également une démo
la source
Alors que le code le confirme, Apple lui-même a déclaré que Swift sera compatible sur iOS 7 et Mavericks dans leur discours technique ( État des plates-formes , session 102, autour de la marque des 34 min 00 sec) à la WWDC 2014 .
la source
Les applications Swift sont prises en charge sur iOS 7 et supérieur, comme indiqué dans les notes de version Beta 4.
iOS 6.0, 6.1, 7.0, 7.1, 8.0 dans Xcode 6 BetaLes applications Swift sont prises en charge sur les plates-formes OS X 10.9 et supérieures .
OS X 10.4 à 10.10 dans la cible de déploiement. J'ai testé le ciblage de 10,5 à 10,10 et mon exécution sur 10.9.3la source
Il semble que les applications Swift ne fonctionnent pas sur OS X 10.7 . Je viens de créer une application graphique simple (une vue, une étiquette, un bouton) qui fonctionne bien sur Mavericks. Le SDK de base est défini sur 10,9 et la cible de déploiement sur 10,7. J'ai copié cette application du dossier DerivedData sur ma machine virtuelle 10.7, et elle se bloque au démarrage, affiche cette erreur:
Cependant, ce message est irritant, car il y a certainement une bibliothèque CoreGraphics dans cette machine virtuelle. D'autres applications qui font un usage intensif de CoreGraphics fonctionnent très bien.
la source
Ceci est le post que j'ai lu sur le blog Apple Swift, pourrait être utile:
Compatibilité des applications :
Si vous écrivez une application Swift, vous pouvez être sûr que votre application fonctionnera bien à l'avenir. En fait, vous pouvez revenir à OS X Mavericks ou iOS 7 avec cette même application. Cela est possible car Xcode intègre une petite bibliothèque d'exécution Swift dans le bundle de votre application. Étant donné que la bibliothèque est intégrée, votre application utilise une version cohérente de Swift qui s'exécute sur les versions passées, présentes et futures du système d'exploitation.
Compatibilité binaire et cadres:
Bien que la compatibilité d'exécution de votre application soit assurée, le langage Swift lui-même continuera d'évoluer et l'interface binaire changera également. Pour être sûr, tous les composants de votre application doivent être construits avec la même version de Xcode et le compilateur Swift pour s'assurer qu'ils fonctionnent ensemble.
Cela signifie que les cadres doivent être gérés avec soin. Par exemple, si votre projet utilise des frameworks pour partager du code avec une extension incorporée, vous souhaiterez construire les frameworks, l'application et les extensions ensemble. Il serait dangereux de s'appuyer sur des cadres binaires qui utilisent Swift - en particulier de tiers. À mesure que Swift change, ces cadres seront incompatibles avec le reste de votre application. Lorsque l'interface binaire se stabilise dans un an ou deux, le runtime Swift fera partie du système d'exploitation hôte et cette limitation n'existera plus.
la source
J'ai testé l'exécution d'une application basée sur Swift sur un appareil iPod Touch (3e génération). Il apparaît des applications basées sur Swift ne pas fonctionner avec iOS 5.x mais faire fonctionner avec iOS 6.x.
Voici ce qui apparaît dans le journal de débogage lorsque j'ai essayé de lancer l'application de test avec iOS 5.0.1:
Pour iOS 6.1.6, l'application fonctionne correctement sans afficher ces messages d'erreur.
la source
Il semble y avoir beaucoup d'anciennes réponses ici, donc je voulais juste publier la réponse officielle de l'équipe Swift. Swift est rétrocompatible avec OS X Mavericks et iOS 7
Blog swift des développeurs Apple: Objective-C id as Swift Any
11 juil.2014
Compatibilité
L'une des questions les plus courantes que nous avons entendues à la WWDC était: «Quelle est l'histoire de la compatibilité pour Swift?». Cela semble être un excellent premier sujet.
Compatibilité des applications En termes simples, si vous écrivez une application Swift aujourd'hui et la soumettez à l'App Store cet automne lorsque iOS 8 et OS X Yosemite seront disponibles, vous pouvez être sûr que votre application fonctionnera bien à l'avenir. En fait, vous pouvez revenir à OS X Mavericks ou iOS 7 avec cette même application. Cela est possible car Xcode intègre une petite bibliothèque d'exécution Swift dans le bundle de votre application. Étant donné que la bibliothèque est intégrée, votre application utilise une version cohérente de Swift qui s'exécute sur les versions passées, présentes et futures du système d'exploitation.
la source
J'ai également essayé une application très simple sur 10.8 (un bouton, définit le texte sur une étiquette). Il s'est écrasé au démarrage, comme Greg Parker l'a déclaré:
(Il s'agissait d'un objectif de déploiement de 10,7)
la source
Essayez le code suivant:
Cela fonctionne sans StoryBoard:
la source
Oui, Apple a en fait annoncé que les applications Swift seront rétrocompatibles avec iOS 7 et OS X Mavericks. De plus, l'application WWDC est écrite dans le langage de programmation Swift.
la source
En ce qui concerne les cadres Swift. Comme pour aujourd'hui, avec Xcode version 6.1.1 (6A2008a), si le framework Swift est ciblé sur iOS 7.1, avertissement de rapport de l'éditeur de liens
et l'application ne peut pas être soumise à l'AppStore. Vérifiez ce problème: Lint pour empêcher les bibliothèques dynamiques et les cadres de passer avec iOS 7
la source
Mach-O Type
doit êtreDynamic Library
, cependant, iOS 7 accepteStatic Library
uniquement.Mise à jour rapide, à compter du 15 février 2015 , nous ne pouvons pas soumettre au magasin des applications développées à l'aide d'un SDK avant iOS 8 . Donc, en gardant cela à l'esprit, il vaut mieux ne pas s'inquiéter de ce problème car de nombreuses personnes ont suggéré que les applications créées dans Swift peuvent également être déployées sur OS X 10.9 et iOS 7.0 .
la source
L'extrait de code répondu posté par Leandros semble un peu ancien. J'ai corrigé et rendu compilable dans Swift 5.
Swift 5
la source