2017-09-06 1 views
0

Also habe ich die Xcode 9 Beta heruntergeladen, und ich wurde damit beauftragt, eines unserer hauseigenen Pods von Swift 3 auf Swift 4 zu aktualisieren. Ich habe das geklont Repo, und öffnete es und kann alle Projektdateien und alles andere sehen, aber es gibt kein Schema, und ich kann Edit > Convert > Convert to current Swift syntax nicht verwenden, wie es ausgegraut ist.Wie man einen in Swift 3 gebauten Cocoapod auf Swift aktualisiert 4

Im Hauptprojekt habe ich das Migrationstool verwendet, bin dann manuell durchgegangen und habe @objc hinzugefügt, um das anzuzeigen, was in Objective-C referenziert wurde, aber das kann ich nicht mit dem Pod tun.

Ich frage mich nur, ob jemand Erfahrung mit der Aktualisierung eines Pods zu Swift 4 hat, und wenn ja, wie gehe ich vor, es zu tun, da es sehr wenige Informationen online darüber gibt.

Vielen Dank wie immer,

Niall

Antwort

2

Gehen Sie zu Ihrem Pods Projekt, dann:

  1. Wählen Sie das Ziel Sie
  2. gehen in die Build-Einstellungen
  3. Select Swift 3.2 als Sprachversion

enter image description here

aktualisieren möchten
+1

Das war, was ich getan habe. Danke für deinen Rat, hoffentlich finden es andere nützlich. – user1898712

1

können Sie versuchen, pod Sprache swift4.0 zu swift3.2 zu ändern. Es könnte Ihr Problem lösen. Es kann in Build-Einstellungen vorgenommen werden. Suche schnell und ändere es.

+0

Von der Pod oder dem Hauptprojekt, in das der Pod importiert wird? – user1898712

+0

pod. Main ist unabhängig in der Situation – kcg94

1

Der beste Weg, dies zu tun ist Witz h ein Post-Installation-Hook in Ihrer Pod-Datei. Andernfalls wird bei jeder Installation/Aktualisierung Ihrer Pods diese Einstellung zurückgesetzt

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

target 'ProjectX' do 
    pod '_your_pod_' 
end 

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