Xcode 9リリースノート は、Swift 3コンパイルがサポートされていることを示します。
Swift 4およびSwift 3、Swift 4およびSwift 3つのターゲットを同じプロジェクトで一緒にコンパイルできます。
Xcode 9ベータ版をインストールしました。しかし、ビルドを押すと、大量のエラーが表示されます。 Xcode 9でSwift 3を使用する場合、特別な準備が必要ですか?
UPD:
Swift 3.1でコンパイルされたモジュールは、Swift 4.0にインポートできません
上記のすべての答えは間違った質問に答えています。 Xcode 9を使用するときは、Swift 4コンパイラーを使用して(Swift 3コードをコンパイルする場合でも)これを修正し、適切なコンパイラー/ Xcodeを使用して再コンパイルします。
コマンドラインでこれを行おうとしている場合は、Sudo xcode-select -switch
を使用してxcodeバージョンを切り替えることができます。幸運を!
プロジェクトにとって意味があるときに、ターゲットごとに移行するタイミングとタイミングを決定します。 Swift 4.2への移行は確実に推奨されますが、Swift 3、4、および4.2のターゲットが共存してリンクできるため、オールオアナッシングプロセスではありません。
プロジェクトバージョンと比較して異なるバージョンのココアポッドが必要な場合は、ポッドファイルの最後で次の変更を行う必要があります。
post_install do |installer|
print "Setting the default Swift_VERSION to 4.2\n"
installer.pods_project.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '4.2'
end
installer.pods_project.targets.each do |target|
if ['SomeTarget-iOS', 'SomeTarget-watchOS'].include? "#{target}"
print "Setting #{target}'s Swift_VERSION to 3.0\n"
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '3.0'
end
else
print "Setting #{target}'s Swift_VERSION to Undefined (Xcode will automatically resolve)\n"
target.build_configurations.each do |config|
config.build_settings.delete('Swift_VERSION')
end
end
end
end
時々、podを実行した後でも、xcodeを強制的にcocoapodのプロジェクトバージョンを更新し、その場合はcocoapod podプロジェクトを選択し、ビルド設定でSwiftバージョンを変更します。
同じ問題がありました-(Swiftバージョンが3xで、プロジェクトのSwiftバージョンがSwift 4.であったポッドをインストールしました。そのため、多くのコンパイラエラーが発生しました。 Swiftバージョンフォーム4を3.2に変更し、プロジェクトをビルドしようとしましたが、コンパイラエラーが発生しました。これは、プロジェクトがSwift 4にある間にポッドインストールを実行したためだと思います)
Xcode 9では、Swift 3.2以上でフレームワークを構築する必要があります。 https://github.com/emaloney/CleanroomLogger に移動し、[Zipのダウンロード]をクリックします。 Xcode 9でxcodeprojを開きます。⌘Bを押します。 CleanroomLogger.frameworkが赤から黒に変わります。フレームワークをプロジェクトにドラッグします。関連する質問を参照してください: Swift 3.1のレルムの問題