2016-11-26 6 views
0

Derzeit ich Charts pod in meinem Objective-C Projekt verwenden, so hatte ich es öffnen heute in Xcode 8.1 und natürlich habe ich diese Meldung:Aktualisierung Schoten (Chart) auf die neueste Swift Syntax

warning

Das wäre kein Problem, wenn es mein Code wäre, aber wir reden hier über Pods. Also, was wäre der richtige Weg, um mit dieser Warnung umzugehen und zur Swift 3-Syntax für diesen Pod zu wechseln?

Was ich versucht habe:

Ich habe pod Update Befehl ausführen, und es hoffentlich auf die neueste Version aktualisiert ... Trotzdem bin ich die gleiche Nachricht bekommen, wenn ich Xcode öffnen. Das ist mein Podfile:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '9.2' 
pod 'Charts', '~> 3.0' 

use_frameworks! 

target 'drivingCOACH' do 
    pod 'Charts', '~> 3.0' 
end 
+0

Wenn Sie dies am Ende Ihrer Poddatei einfügen, sollte das Problem behoben werden. Post_install do | installer | installer.pods_project.targets.each do | target | target.build_configurations.each do | config | config.build_settings ['SWIFT_VERSION'] = '3.0' Ende Ende Ende –

+0

@ThomasG. Was macht das eigentlich? Weil ich ein anderes Pods habe, das gut funktioniert ... – Whirlwind

+0

Nun, ich endete mit Ändern der Build-Einstellungen -> Verwenden Sie Legacy Swift Version = NEIN. Habe auch deinen Code ausprobiert, und es hat funktioniert. Dennoch ist mir nicht ganz klar, was es tut (Es sieht so aus, als ob es alle Ziele durchläuft und legt ihre Konfiguration auf SWIFT_VERSION = 3, richtig?) – Whirlwind

Antwort

1

Die Charts pod auf https://cocoapods.org/pods/Charts dokumentiert. Die aktuelle Version (zum Zeitpunkt der Frage) verwendet Swift 3.0. Daher müssen alle Ihre Abhängigkeiten auch Swift 3.0 verwenden (Sie können keine Abhängigkeiten verschiedener Swift-Versionen mischen, wenn Sie Frameworks verwenden, was derzeit zwingend erforderlich ist).

Sie können die Build-Einstellungen manuell ändern, um anzugeben, dass jedes Pod-Ziel für Swift 3.0 ist (indem Sie den Wert "Legacy Swift verwenden" auf NEIN setzen). Da sich Ihr Projekt jedoch in Objective-C befindet, können Sie diese Operation jedes Mal ausführen, wenn Sie pod install ausführen.

, dass Probleme zu vermeiden, können Sie das Installationsskript Ihrer Podfile erweitern können diese Zeilen enthalten, und es wird führen genau die gleichen wie oben bei Ihrem nächsten pod deintegrate && pod install:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '3.0' 
     end 
    end 
end 

Diese Linien werden nicht Sie benötigen den Tag, an dem Sie Swift-Code in Ihre App integrieren möchten, da CocoaPods dann die Swift-Version an die von Ihnen verwendete Version anpasst.

Möglicherweise müssen Sie auch den Ordner Abgeleitete Daten (~/Library/Developer/Xcode/DerivedData standardmäßig löschen), während Xcode geschlossen ist, wenn Sie einige Cache-Probleme haben.

+0

Noch weiß ich nicht, ob das gut gegangen ist ... Ich habe Charts pod neu installiert, aber trotzdem bekomme ich eine Menge Syntaxfehler (zB in Swift 3 muss man das und das benutzen ...) Wird das erwartet? Ich dachte, wenn ich den Pod neu installieren, dass es auf die neueste Syntax aktualisiert wird ... – Whirlwind

+0

@Whirlwind sind Sie auf der neuesten stabilen Version von CocoaPods? 'pod --version' sollte heute' 1.1.1' zurückgeben. –

+0

Yup. Es ist 1.1.1 – Whirlwind

Verwandte Themen