2016-09-28 2 views
1

Ich aktualisiere gerade eine iOS-App von Swift 2.2 auf 3.0. Ich habe alle Abhängigkeiten meines Pods auf ihre Swift 3-Versionen hingewiesen und meinen Code migriert. Allerdings, wenn ich pod install laufen und versuchen, meinen Arbeitsbereich zu öffnen, noch Xcode will, dass ich die „Pods“ Projekt auf die neueste Swift Syntax konvertieren:Migrieren einer iOS-Anwendung mit Cocoapods 1.0.1 von Swift 2.2 auf 3.0

Das Projekt „Pods“ hat Ziele, die Quellcode mit einem entwickelten enthalten frühere Version von Swift.

Convert to Current Swift Syntax

Aber ich habe bereits meine Abhängigkeiten ihre Swift 3.0 Versionen aktualisiert. Was gibt?

(Dies ist eine kanonische Q & Ein Paar zukünftigen Nutzer zu helfen, die dieses Problem auftritt)

Antwort

3

Ich hatte dieses Problem mit Cocoapods 1.0.1, wo ich manuell die SWIFT_VERSION der installierten Ziele angeben mussten, um sein 3.0:

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 

Meine komplette Podfile (für einen Test/Entwicklung pod):

source 'https://github.com/CocoaPods/Specs.git' 

use_frameworks! 

target 'MyApp' do 
    pod "MyPod", :path => "../" 
end 

target 'MyApp_Tests' do 
    pod "MyPod", :path => "../" 
end 

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 

Problem #5521 - Compiler Version for Xcode 8 half, diese Problemumgehung zu finden.

+0

Oder Sie wissen, aktualisieren Sie einfach auf 1.1.0.rc.2. –

+0

@JonShier muss ich einen bestimmten Beta-Kanal abonnieren, um Release Candidate-Versionen zu erhalten? Ich habe das mit einem normalen "Pod-Update" nicht gesehen. – JAL

1

Ich schlage vor, ihre Release Candidate Version

sudo gem install cocoapods --pre 

Dann mit tun ein pod installieren wieder

+0

Richtig, aber wenn Sie in einem Team sind, das keine Vorabversions- und Release-Versionen von Cocoapods unterstützt (und auf Version 1.0.1 feststeckt), dann ist dies stellt keine praktikable Lösung dar. – JAL

+0

Verwenden Sie stattdessen Swift Package Manager? –