web-dev-qa-db-ja.com

レガシーSwift言語バージョン-Xcode 8.2を使用

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で修正されました

20

回避策が見つかりました。私のプロジェクトの各ターゲット(およびプロジェクトの設定、プロジェクトとターゲットの両方)を調べました。toggled「レガシーSwift Language Version」から「No」から「Yes」に戻り、「No」に戻ります。その後、プロジェクトが再度ビルドされました。

enter image description here

32
zumzum

同じエラーが発生しました。 「レガシー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.)

この仕事があなたのために願っています。

5
Aklesh Rathaur

Xcodeで修正されました8.2.1

ここに Xcodeの変更ログ8.2.1 の完全性のコピーがあります:

Swift

解決された問題

  • Swiftを使用するターゲットに対して「レガシーSwift言語バージョンを使用)(Swift_VERSION)を正しく構成する必要がある」というエラーメッセージでプロジェクトのビルドが失敗する可能性がある問題を修正しましたSwiftのサポートされているバージョン(29667880)
  • アクティブなスキームがSwift 2.3コードを使用してターゲットを参照しない場合、非推奨のSwift 2.3コードを使用することについてXcodeは警告しません。(29671741)
4
Cœur

Xcodeを閉じ、選択したテキストエディターで対応するproject.pbxprojを開きます。

すべてのターゲットのSwift_VERSION = 3.0.1;Swift_VERSION = 3.0;に置き換えます。

Xcodeを再度開きます。

3
Klaas

これは私のために働いた唯一のものです...

ポッドのエラーの場合。基本的に、「レガシーSwift言語」を有効にする必要があります。ポッドフレームワークを選択し(エラーナビゲーターでクリックして)、[ビルド設定]で[レガシーSwift言語バージョンを使用]を見つけます。

enter image description here

「はい」に設定します。次に、「ビルドと実行」を再度実行してテストします。

この投稿をチェックしてください: http://rebeloper.com/downgrade-Swift-3-Swift-2-3-xcode-8/

3
karenms

さて、私はついにそれを理解しました。プロジェクトを削除して再度クローンを作成し、Xcodeを再起動して、pod repo updateおよびpod installそしてそれは働いた。理由はわかりません。

1

これは私たちにとってはうまくいきませんでした:( 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に準拠するようにワークスペースを変更するにはどうすればよいですか?その設定はどこにありますか?

0
Laser Hawk

アプリの一部(Obj CとSwiftの両方)をフレームワークに変換するときに同じエラーが発生しましたが、私の場合は、[ビルド設定]の[Swift言語バージョン]が設定されていませんでした。 Swift 3(唯一のオプション))に設定すると、エラーはなくなりました。

0
ScottyB

Apple=は、pbxprojecファイル内にまだ存在しないSwift言語のバージョンを参照することに決めました。 pbxファイルのSudo XMLを手動で編集して3.0に戻すことで、すべてが再び機能しました。Apple 8.2

これは、ビルド設定でレガシーを切り替えることが一部の人にとってうまくいった理由も説明できます。

0
Laser Hawk