web-dev-qa-db-ja.com

Swift 4 from Swift 3.2から「ブリッジングヘッダーのインポートに失敗しました」エラーが表示される

As AppleはXcode 9ベータ版をリリースし、Swift 4.0をサポートしています。コードをSwiftにアップグレードしようとしています。 4.0からSwift 3.2。しかし、それは私にfailed to import bridging headerエラー。プロジェクトは正常にビルドされます。

Xcodeエラーの詳細:

現在の変換Swift構文エラー

移行を試みる前に、選択したすべてのターゲットが、現在設定されているSwiftバージョンで正常にビルドされることを確認してください。

コードベースをSwift 4。

15
Varun Mehta

私は自分のプロジェクトの1つで同様の問題を抱えていましたが、これをどのように解決したのですか?

CocoaPodsが問題であることがわかりました。

  1. プロジェクトからCocoaPodsを削除しました(これを行う方法がわからない場合は、これを確認してください プロジェクトからCocoaPodsを削除する方法?

  2. ユニット&UIテストがある場合は、上記のリンクから4番目のステップも繰り返す必要があることを忘れないでください。

  3. コードベースをSwift 4にアップグレードします

  4. ポッドを再度インストールすると完了です。

それが役に立てば幸い :)

6
Tino Krželj

私にとって、3.2から4.0への移行は失敗し、編集>変換>現在へSwift構文...

私の修正は簡単です。プロジェクト設定のSwiftバージョン4.0から3.2または使用しているバージョンに戻します。

これは、最初の移行が失敗したにもかかわらず、Xcodeがプロジェクト設定でSwiftバージョンを4.0に変更したためです。

1
Ben Kax

私たちにとっては、UnitTestとUITestsを削除することでした

プロジェクトをタップし、「右クリック」-> 2つの依存関係を削除します

それが役に立てば幸い

0
tsik

おそらく、ブリッジングヘッダーファイルに入れたObjective Cクラスの少なくとも1つはコンパイルされていません-ブリッジングヘッダーファイルのすべてのエントリをコメントアウトしてからコンパイルします-ブリッジングヘッダーをインポートできるはずですが、もちろんたくさん生成しますクラスが見つからないためにエラーが発生しました。行を1行ずつコメント解除して、インポートが失敗した原因を特定し、それらのファイルを修正します。

0
TheEye

テストを含むすべてのターゲットがコンパイルされることを確認してください。 Cocoapodsがプロジェクトから削除されたら、NAME.xcworkspaceを削除します

これで解決しました。

0
Abdullah Khan

プロジェクトのビルド設定およびすべてのターゲットでSwift言語バージョンを変更した後AppDelegate.Swiftのこの関数宣言を次のように変更する必要がありました。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true }

0
nyxee