Question Les applications basées sur Swift fonctionnent-elles sur OS X 10.9 / iOS 7 et moins?


Les applications basées sur Swift fonctionneront-elles OS X 10.9 (Mavericks) / iOS 7 et inférieur?

Par exemple, j'ai une machine en marche OS X 10.8 (Mountain Lion), et je me demande si une application que j'écris dans Swift fonctionnera dessus.


593
2018-06-02 19:25


origine


Réponses:


Je viens de le tester pour vous, les applications Swift se compilent en binaires standard et peuvent être exécutées sous OS X 10.9 et iOS 7.


Application Swift simple utilisée pour tester:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

    var controller = UIViewController()
    var view = UIView(frame: CGRectMake(0, 0, 320, 568))
    view.backgroundColor = UIColor.redColor()
    controller.view = view

    var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
    label.center = CGPointMake(160, 284)
    label.textAlignment = NSTextAlignment.Center
    label.text = "I'am a test label"
    controller.view.addSubview(label)

    self.window!.rootViewController = controller
    self.window!.makeKeyAndVisible()
    return true
}

507
2018-06-02 20:11



Le code Swift peut être déployé sous 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.


193
2018-06-03 08:25



Apple a annoncé que les applications Swift seront rétrocompatibles avec iOS 7 et OS X Mavericks. L'application WWDC est écrite en Swift.


101
2018-06-03 00:03



Mise à jour - Selon Xcode 6 Beta 4

Cible de déploiement minimale iOS 7 et OS X 10.9

Le compilateur Swift et Xcode appliquent désormais une cible de déploiement minimale d'iOS 7 ou OS X   Mavericks. La définition d'une cible de déploiement antérieure entraîne un échec de génération.

De la note de publication de Xcode 6 

Donc, ma réponse précédente (ci-dessous) ne sera pas applicable à tout développement ultérieur. Swift ne sera plus disponible pour iOS6 et ci-dessous 


Une application Swift peut être exécutée sur iOS 6. Même si beaucoup de gens disent que Swift ne supportera 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 complètement dans Swift dans un appareil iOS 6. Cela fonctionne parfaitement bien. Comme le dit Apple, le code Swift est compatible 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é:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        let button   = UIButton.buttonWithType(UIButtonType.System) as UIButton
        button.frame = CGRectMake(100, 100, 100, 50)
        button.backgroundColor = UIColor.greenColor()
        button.setTitle("Test Button", forState: UIControlState.Normal)
        button.addTarget(self, action: "buttonTapped:", forControlEvents: UIControlEvents.TouchUpInside)

        self.view.addSubview(button)
    }

    func buttonTapped(sender: UIButton!) {
        println("buttonTapped")
    }
}

C'est une application simple, ajoutant simplement un bouton par programmation. Mon application ne contient que deux fichiers, AppDelegate.swift et ViewController.swift.

Ainsi, si vous n'utilisez pas de nouvelles API ajoutées dans le SDK iOS 8 ou certaines API spécifiques à Swift (l'API correspondante n'est pas disponible pour Objective-C), votre application fonctionnera sans problème sur iOS 6 ou ultérieur (testé et fonctionnel), 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 identiques en binaire.

Remarque: Conformément à Xcode 6 beta 4, la cible de déploiement des applications rapides doit être iOS 7 ou OS X 10.9 (voir la mise à jour ci-dessus). Donc, swift ne sera plus disponible pour iOS6 et ci-dessous 



99
2018-06-04 13:37



En bref:

Les applications basées sur Swift peuvent cibler OS X Mavericks ou IOS 7 avec cette même application.

Comment est-ce possible ?

Xcode embarque un 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 antérieures, actuelles 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 type de pomme m'a dit dans Twitter ou j'ai écrit Bonjour tout le monde et l'a testé.

Je l'ai pris de Apple développeur blog.

donc vous pouvez faire confiance à cela.


31
2017-10-16 15:59



Swift utilise le même temps d'exécution que Objectif c et peut même vivre côte à côte Objective-C dans la même application (selon le 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.


30
2018-06-02 19:39



J'ai lu toutes les réponses qui disaient: Non, Swift ne fonctionne pas avec moins de 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.

  • Je viens de créer un projet de démonstration dans Xcode 6 BETA avec le langage de programmation Swift sélectionné.
  • Fermer Xcode 6 beta, et j'ouvre ce projet de démonstration dans Xcode 5 avec la cible de déploiement 6.0
  • Et aussi sélectionner simulateur 6.1.

Alors ce projet fonctionne bien dans simulateur 6.1. ma MacOS X est 10.9.3, donc j'ai dit oui, qui court en dessous de iOS 7. avec Mac OS X 10.9.3.

Voici une capture d'écran du simulateur:

Enter image description here

Voici une démo aussi


22
2018-06-04 13:26



Alors que le code le confirme, Apple lui-même a déclaré que Swift sera compatible sur iOS 7 et Mavericks dans leur keynote technique (Etat des plates-formes, session 102, vers la marque 34 min 00 sec) à WWDC 2014.


20
2018-06-03 20:12



Les applications Swift sont prises en charge sur iOS 7 et supérieur comme indiqué dans les notes de version de la version bêta 4. iOS 6.0, 6.1, 7.0, 7.1, 8.0 dans Xcode 6 Beta

Les applications Swift sont supportées sur les plateformes OS X 10.9 et supérieur. OS X 10.4 à 10.10 dans Cible de déploiement. J'ai testé sur le ciblage 10.5 à 10.10, et fonctionnant sur 10.9.3


15
2018-06-18 17:58



Il semble que les applications Swift ne pas courir OS X 10.7. Je viens de créer une simple application graphique (une vue, un lable, 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 à partir du dossier DerivedData sur ma machine virtuelle 10.7, et il se bloque au démarrage, affiche cette erreur:

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

    Dyld Error Message:

  Library not loaded: /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
  Referenced from: /Users/USER/Desktop/Swift-Test.app/Contents/MacOS/../Frameworks/libswiftAppKit.dylib
  Reason: image not found

Binary Images:
       0x109c65000 -        0x109c6afff +private.Swift-Test (1.0 - 1) <649695D0-58FD-3D02-9176-2D40D4E711F2> /Users/USER/Desktop/Swift-Test.app/Contents/MacOS/Swift-Test
       0x109c83000 -        0x109dbffff +libswift_stdlib_core.dylib (1.0 - 600.0.34.4.5) <10AAC369-9404-321D-A892-49F65856D7AF> /Users/USER/Desktop/Swift-Test.app/Contents/Frameworks/libswift_stdlib_core.dylib
...

Cependant, ce message est irritant, car il existe certainement une bibliothèque CoreGraphics dans cette machine virtuelle. D'autres applications qui font un usage intensif de CoreGraphics fonctionnent très bien.


14
2018-06-09 10:17



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 avoir confiance que votre application fonctionnera bien dans le futur. En fait, vous pouvez cibler de nouveau 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 l'ensemble 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 antérieures, actuelles 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 à é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 cadres pour partager du code avec une extension intégrée, vous devez créer les cadres, l'application et les extensions ensemble. Il serait dangereux de s'appuyer sur des frameworks binaires utilisant Swift - en particulier de la part de tiers. Au fur et à mesure que Swift change, ces frameworks 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.


14
2017-07-18 12:04