201

Xcode 8 Beta 3 に Objective-C プロジェクトがあります。更新後、ビルドしようとすると次のエラーが表示されます。

「Use Legacy Swift Language Version」(SWIFT_VERSION) は、Swift を使用するターゲットに対して正しく構成する必要があります。[編集 > 変換 > 現在の Swift 構文に…] メニューを使用して Swift バージョンを選択するか、ビルド設定エディターを使用してビルド設定を直接構成します。

誰かがこれに遭遇しましたか?これは Objective-C プロジェクトであるため、Swift を構成するためのビルド設定はありません。また、プロジェクトの依存関係や CocoaPods が Swift を使用していないことも確認しました。私が持っている唯一の解決策は、ベータ 2 を使用することです。この問題を解決する方法はありますか?

また、OSX 10.12 Beta 2 を実行していることにも言及する必要があります。

4

19 に答える 19

364

CocoaPods を使用していて、 を実行するたびに自動的に修正したい場合はpod install、Podfile の最後に次の行を追加できます。

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

編集: CocoaPods v1.1.1 以降を使用する場合、この問題は修正されました。ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESメインのプロジェクト ターゲットから設定を削除することを忘れないでください。

于 2016-07-19T19:12:58.930 に答える
33

私はしばらくの間この問題を無視してきましたが、その間に他のことに取り組んでいました - 私は最終的に私の問題の解決策を見つけました.

私のプロジェクトはObjective-Cなので、使用しているPodの1つがSwiftを使用している可能性があると考え、各Podをチェックしましたが、どれもそうではありませんでした。

最終的な解決策は、File > New > NSManagedObjectSubclass メニューで手動でコードを生成していたにもかかわらず、コア データ モデルが Swift でコードを生成するように設定されていたことです。私がしなければならなかったのは、それをObjective-Cに切り替えることだけでした。

スクリーンショット

于 2016-07-26T18:48:10.597 に答える
18

この問題は Xcode-8.1 でも見られます。拡張機能やウィジェットなどの新しいターゲットを追加すると、cocopods の助けを借りて、サードパーティ ライブラリが新しいターゲットに統合されます。Pod のインストール後。上記と同じエラーに直面する可能性があります。

Use Legacy Swift Language Version in every Library Build Setting を

いいえ

ここに画像の説明を入力

于 2016-11-08T09:00:20.847 に答える
5

podfile の最後に以下のコードを追加します。

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
于 2016-10-07T04:56:31.553 に答える
4

以前はswiftバージョン2.3を使用していましたが、swift 3にアップグレードした後、プロジェクトをビルドできませんでした。Xcode は、言及されたエラー メッセージで不平を言いました。

どうやら、project.pbxproj ファイルで指定された古いバージョンの Swift がまだ残っていたようです。指定された迅速な3.0.1がありました:

SWIFT_VERSION = 3.0.1;

一方、私はすでに 3.0.2 をインストールしていました。

$ xcrun swift -version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9

そうそう、project-pbxproj ファイルの Swift バージョンを次のように変更して修正しました。

SWIFT_VERSION = 3.0;

パッチ レベルのバージョン指定子が具体的すぎたようです。

于 2016-12-16T10:12:17.460 に答える
4

私の場合、次のことを行うだけです

プロジェクトターゲットを選択=>ビルド設定に移動=>「Swift言語バージョン」を検索=>値に現在のSwiftバージョンを指定

以上で問題は解決しました

この画像に従ってください

于 2017-08-14T11:59:48.610 に答える
3

プロジェクトまたはSwiftサードパーティで古いバージョンのSwiftを使用している場合は、「Use Legacy Swift Language Version」を「YES」に設定します。プロジェクトが現在の迅速なバージョンに更新されている場合は「いいえ」。Swift バージョンを構成しない場合、更新とインストールのたびに、Pod フレームワークでこれを指定する必要があります。

于 2016-09-22T07:50:15.200 に答える
2

私のプロジェクトは Swift で書かれています。で同じエラーが発生しましたfastlane。Xcode が自動更新されたため、プロジェクトを Swift 3.0 に更新する必要がありました。大量のエラーが発生しました。修正とデバッグに時間がかかりすぎて、その時点では価値がなかったため、古いバージョンの Xcode をインストールすることにしました。コードを 2.3 に戻しました。その後fastlane beta、動作しなくなりました。コマンド ライン ツールを 7.3 に設定する必要がありました。 ここに画像の説明を入力

于 2016-11-10T04:05:22.193 に答える
1

変更ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESしてNOも機能しない場合は、問題ではなく xcode の問題が原因です。次の手順を実行します。

1.ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESプロパティをYES警告対象に変更

2.次に、左側のバーに警告が表示され、Swift 3.0 に変更することをお勧めします

3.その後、 に戻りNOます。プロジェクトを再構築すると、xcode は最終的にNO!への変更を検出します。

この場合の問題は解決しました!

于 2017-01-24T05:13:40.970 に答える
1

複雑な解決策を試す前に、Cocoapods を初めて使用し、この問題が発生している場合に行う必要がある基本的なチェックを次に示します。

次のことが必要になる場合があります。

  • Podfile をもう一度開きます
  • platform の行が「#」でコメントアウトされていないことを確認してください。最終的には次のようになります。

platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)

  • Podfile を保存し、Xcode を閉じて、pod install再度実行します
  • project.xcworkspace を開きます

たぶんそれだけです。

そうでない場合は、上に行くことができます;-)

于 2017-03-02T12:38:37.020 に答える
1

XCode 8 以降では、Swift 2.3 を使用できますが、XCode 8 はデフォルトの Swift バージョンとして Swift 3.x を使用します。Swift 2.3 を使用するには、[ビルド設定] で [Use Legacy Swift Language Version] フラグを [YES] に設定するだけで、XCode はそのプロジェクト ターゲットに Swift 2.3 を使用します。

于 2017-02-01T11:27:26.003 に答える