しかし、私は同じXcodeを使ってフレームワークを再コンパイルしましたが、それでもこのエラーが発生します。
誰かが知っているかもしれません
更新:
Xcodeのリリースバージョンの場合:
このエラー(およびSwift 4.1、4.2などに関連する同様のエラー)は、以前のXcodeツールで構築されたフレームワークを使用するXcode 9.1、9.2、9.3、9.4、10などでプロジェクトを開くときに発生します。
この問題を解決するには、Carthage(carthage update --platform iOS
)、Cocoapods(pod update
またはpod install
)を使用するか、新しいXcodeツールを使用して手動でフレームワークを更新および再構築します。 Xcodeをアップデートするとツールは自動的にアップデートされますが、そうでない場合は、元の回答で以下に概説されている手順に従うことができます。
Xcodeでキャッシュされたフレームワークビルドを使用しないようにするには、プロジェクトのcmd + shift + k
およびおそらくビルドフォルダのcmd + option + shift + k
を消去する必要があります。
場合によっては、派生データフォルダを削除する必要があるかもしれません(Xcodeの[設定] - > [場所] - > [派生データフォルダ]をクリックすると簡単に見つかります( Thanks Stunner )
Xcodeのベータ版:
下記の元の答えを参照してから上記の手順に従ってください。
元の答え:
あなたはおそらくあなたのxcodebuildツールをSwift 4.0で構築されXcode 9.1ベータ版のSwift 4.0.1と互換性がないXcode 9.0に設定したままにしているでしょう。
次のコマンドを使って端末をチェックインします。
xcodebuild -version
または単にXcodeの設定 - >場所に行き、Xcode 9.1にコマンドラインツールをチェック/変更してください。あなたはそれから設定されるべきです。
私の問題はSwift 4.0.2用にコンパイルされていない外部フレームワークが原因でした。私はこのファイルを Carthage で追加したので、実行します。
carthage update --platform iOS
それからプロジェクトcmd + shift + k
とビルドフォルダcmd + option + shift + k
をきれいにし、派生データフォルダを削除する(単にそれをゴミ箱に移動するだけでもいい)のは私にとってうまくいった。
ここから からあなたのために働いていた特定のXcodeバージョンのXcode Toolchainをインストールしてください 。
Xcodeツールチェーンには、特定のバージョンのSwiftで作業するための一貫した開発経験を提供するために必要なコンパイラ、lldb、およびその他の関連ツールのコピーが含まれています。
Xcodeの「環境設定」を開き、「コンポーネント」>「ツールチェーン」に移動して、インストールされているSwiftツールチェーンを選択します。
これにより、当面の間、アプリをコンパイルして実行できます。
私はSwift 4.2を追加したXcode 10 betaでこの問題にぶつかった。私の問題はカルタゴや外部の依存関係とは無関係でした。
すべてのXcodeターゲットについてはYourTarget > Build Settings > Swift Language Version
にアクセスしてください。
私のものはすべてSwift 4
に設定されていました。
ファイルのコピービルドフェーズを追加した後、エラーが発生し始めました
:0:エラー:Swift 4.1.2でコンパイルされたモジュールはSwift 4.2コンパイラでインポートできません:/Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
コマンドMergeSwiftModuleがゼロ以外の終了コードで失敗しました
次に、各ターゲットのSwift Language Version
をSwift 4.2
に設定しました。これにより、エラーがなくなりました。
ただし、すべてのターゲットをSwift 4
に設定しても同じくらい有効であるはずなので、最初にエラーが発生した理由はわかりません。
私の場合(Xcode 9.2):
私はXcodeに行きましたPreferences > Locations > Derived Data
それから私はそのデータを削除してクリーンビルドをしたが大丈夫だった。