web-dev-qa-db-ja.com

Swift 4.0でコンパイルされたモジュールは、Swift 3.1

どうやらプロジェクトをXcode 9ベータ版でビルドできたようですが、今はエラーが発生するだけです

Swift 4.0でコンパイルされたモジュールは、Swift 3.1

Xcode 8でプロジェクトを実行すると、私の場合のモジュールはAlamofireです。 Xcodeを再起動しようとしましたが、この問題を解決する方法はありませんか?

16
user8118543

次の2つのオプションがあります。

Cleanプロジェクトを選択し、re-buildソリューションを確認し、それが機能するかどうかを確認します。

それでも動作せず、同じエラーメッセージが表示される場合は、次の手順を実行してください。

  1. podfileを開き、Alamofireを削除します
  2. 実行pod update
  3. Alamofirepodfileを再追加します
  4. 実行pod update
  5. これが完了したら、プロジェクトをcleanして実行します
24
Rashwan L

ここでも同じ問題がありますが、カルタゴを使用しています。そして、ここに答えがあります:

  • rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
  • プロジェクトのCarthageフォルダーを削除します
  • カルタゴを更新:carthage update --platform iOS

そしてほら!

19
Dominique Vial

私は同じ問題を抱えていて、ビルドフォルダをきれいにした:

Command+Option+Shift+K

または

Product-> Option+Clean

5
Tata Grigory

派生データを削除するだけでうまくいきました。Podを再度インストールする必要はありません

2
Harsha

ポッドファイルの最後に次の行を追加します。

post_install do |installer|
    print "Setting the default Swift_VERSION to 4.0\n"
    installer.pods_project.build_configurations.each do |config|
        config.build_settings['Swift_VERSION'] = '4.0'
    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
0
Shubham Mishra

この問題は、依存関係がCarthageによって管理されているプロジェクトで発生しました。私の場合、コマンドラインツールをxcodeに設定していません(xcodebuild -versionに入力すると、設定するかどうかがわかります)。したがって、最初のステップはXCode-> Preference-> Locationsに進みます。コマンドラインツールとして使用するXcodeを選択します。次に、上記の@Domswareの手順に従って、使用するすべてのフレームワークを再構築します。

==============================================

ここでも同じ問題がありますが、カルタゴを使用しています。そして、ここに答えがあります:

rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
delete the Carthage folder for the project
Update Carthage: carthage update --platform iOS

==============================================

次に、「リンクされたフレームワークとライブラリ」の下の古いリンクを削除し、プロジェクトの下の/ Carthageフォルダーからすべてのフレームワークを「リンクされたフレームワークとライブラリ」にドラッグすることを忘れないでください。

それからほら!

CocoaPodsを使用している人には、免責事項(CocoaPodsが依存関係マネージャーであるプロジェクトではこの問題に遭遇しなかった)と思われます。ソリューションはターミナルで次のコマンドを実行します。

$ pod deintegrate
$ pod clean
$ pod install

cocoaPodの「分解」および「クリーン」ツールのインストールが必要になる場合があります

$ Sudo gem install cocoapods-deintegrate cocoapods-clean

詳細については、投稿を参照してください プロジェクトからCocoaPodsを削除する方法?

0