Xcode 8.2に更新した後、コンパイラはAppターゲットに対して1つのエラーをスローします。
「レガシーSwift言語バージョン」を使用する(Swift_VERSION)は、Swiftを使用するターゲットに対して正しく設定する必要があります。[編集>変換>現在にSwift構文…]メニューでSwift=バージョンを選択するか、ビルド設定エディターを使用してビルド設定を直接構成します。
しかし、私が持っているすべてのターゲットでNo
に設定します。派生データの削除、プロジェクトディレクトリの消去、Xcodeの再起動を試みました。何も役に立たない。誰もそれを理解していますか?
//編集済み
念のため:すべてのターゲットに設定しましたUse Legacy Swift Language Version
からNo
に変更すると、プロジェクトはXcode 8.1でコンパイルしたときに問題なく動作しました。 Xcode 8.2にアップデートした後は機能しません。
// 21.12を編集します。
この問題はXcode 8.2.1で修正されました
同じエラーが発生しました。 「レガシーSwift言語バージョン)を使用」を検索しようとしましたが、見つかりませんでした。私はXcode 8.3.3を使用しています 、そしてこれは私のために働いた。
Follow these steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to Swift 3. (or accordingly.)
この仕事があなたのために願っています。
Xcodeで修正されました8.2.1。
ここに Xcodeの変更ログ8.2.1 の完全性のコピーがあります:
Swift
解決された問題
- Swiftを使用するターゲットに対して「レガシーSwift言語バージョンを使用)(Swift_VERSION)を正しく構成する必要がある」というエラーメッセージでプロジェクトのビルドが失敗する可能性がある問題を修正しましたSwiftのサポートされているバージョン(29667880)
- アクティブなスキームがSwift 2.3コードを使用してターゲットを参照しない場合、非推奨のSwift 2.3コードを使用することについてXcodeは警告しません。(29671741)
Xcodeを閉じ、選択したテキストエディターで対応するproject.pbxproj
を開きます。
すべてのターゲットのSwift_VERSION = 3.0.1;
をSwift_VERSION = 3.0;
に置き換えます。
Xcodeを再度開きます。
これは私のために働いた唯一のものです...
ポッドのエラーの場合。基本的に、「レガシーSwift言語」を有効にする必要があります。ポッドフレームワークを選択し(エラーナビゲーターでクリックして)、[ビルド設定]で[レガシーSwift言語バージョンを使用]を見つけます。
「はい」に設定します。次に、「ビルドと実行」を再度実行してテストします。
この投稿をチェックしてください: http://rebeloper.com/downgrade-Swift-3-Swift-2-3-xcode-8/
さて、私はついにそれを理解しました。プロジェクトを削除して再度クローンを作成し、Xcodeを再起動して、pod repo update
およびpod install
そしてそれは働いた。理由はわかりません。
これは私たちにとってはうまくいきませんでした:( Xcode 8.1に戻すことは、Apple QAがリリースされる前のものです。
ここでの慰めが私たちが試みたものであり、非常に親しくなったものである場合。クリーニングに失敗しました:
rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache
rm -rf ~/Library/Preferences/com.Apple.Xcode.plist
Xcode
を再起動し、option
キーを押しながらディープクリーンを実行します。
これにより、クリーニングに失敗しました。
これをポッドスクリプトに追加する
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
これがすべてのポッドを3.0に準拠させる方法であり、実際にビルドするようになりましたが、コンパイルの最後にこのエラーが発生しました。
“Use Legacy Swift Language Version” (Swift_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
すべてのプロジェクトがSwift 3.0に準拠するようにワークスペースを変更するにはどうすればよいですか?その設定はどこにありますか?
アプリの一部(Obj CとSwiftの両方)をフレームワークに変換するときに同じエラーが発生しましたが、私の場合は、[ビルド設定]の[Swift言語バージョン]が設定されていませんでした。 Swift 3(唯一のオプション))に設定すると、エラーはなくなりました。
Apple=は、pbxprojecファイル内にまだ存在しないSwift言語のバージョンを参照することに決めました。 pbxファイルのSudo XMLを手動で編集して3.0に戻すことで、すべてが再び機能しました。Apple 8.2
これは、ビルド設定でレガシーを切り替えることが一部の人にとってうまくいった理由も説明できます。