Xcode 6 + iOS 8 SDK mais déployer sur iOS 7 (UIWebKit & WKWebKit)

Nous sommes la création d'une application à l'aide de Xcode 6 beta 5 + Swift sur iOS 8 SDK. Nous tenons à déployer pour iOS 7. Est-ce possible? Lorsque nous avons fixé la cible de déploiement du projet à la version 7.0, nous obtenons moment de la compilation erreurs de ce type:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_WKPreferences", referenced from:
      __TMaCSo13WKPreferences in WebViewController.o
  "_OBJC_CLASS_$_WKWebView", referenced from:
      __TMaCSo9WKWebView in WebViewController.o
  "_OBJC_CLASS_$_WKWebViewConfiguration", referenced from:
      __TMaCSo22WKWebViewConfiguration in WebViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Je crois que c'est parce que nous sommes à l'aide de WKWebKitqui est pris en charge par iOS 8+. Nous sommes ok avec l'aide de UIWebKit pour iOS 7, mais WKWebKit pour iOS 8. Comment définissons-nous?

Notre définition de la classe ressemble à...

import WebKit

class WebViewController: UIViewController, WKNavigationDelegate {
   ...
}

et il est appelé par:

        let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let destinationVC = mainStoryboard.instantiateViewControllerWithIdentifier("WebViewController") as WebViewController
        presentViewController(destinationVC, animated: true, completion: nil)

Je pensais à l'aide de ce fragment d'appeler presentViewController mais qui ne résout pas le temps de compilation des questions. (NSFoundationVersionNumber ne résout pas le temps de compilation des questions)

    if ((UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8.0) {

    } else {

    }

Mise à JOUR: kkoltzau a la réponse correcte. Je vais ajouter quelques infos pour les autres.

D'abord, aller à votre Projectcliquez sur Generalfaites défiler vers le bas pour Linked Frameworks and Librarieset ajouter WebKit.framework comme Facultatif. (Je l'ai également fait pour UIKit.framework) Voir la capture d'écran:

Xcode 6 + iOS 8 SDK mais déployer sur iOS 7 (UIWebKit & WKWebKit)

Comme pour mon WebViewController classe. Il importe encore UIKit et WebKit. mais le viewDidLoad() définit la vue basée sur kkoltzau l'exemple. Alors à chaque fois que j'ai besoin de charger/recharger la page web, il vérifie l'existence de wkWebView.

source d'informationauteur Dean

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *