As AppleはXcode 9ベータ版をリリースし、Swift 4.0をサポートしています。コードをSwiftにアップグレードしようとしています。 4.0からSwift 3.2。しかし、それは私にfailed to import bridging header
エラー。プロジェクトは正常にビルドされます。
Xcodeエラーの詳細:
現在の変換Swift構文エラー
移行を試みる前に、選択したすべてのターゲットが、現在設定されているSwiftバージョンで正常にビルドされることを確認してください。
コードベースをSwift 4。
私は自分のプロジェクトの1つで同様の問題を抱えていましたが、これをどのように解決したのですか?
CocoaPodsが問題であることがわかりました。
プロジェクトからCocoaPodsを削除しました(これを行う方法がわからない場合は、これを確認してください プロジェクトからCocoaPodsを削除する方法? )
ユニット&UIテストがある場合は、上記のリンクから4番目のステップも繰り返す必要があることを忘れないでください。
コードベースをSwift 4にアップグレードします
ポッドを再度インストールすると完了です。
それが役に立てば幸い :)
私にとって、3.2から4.0への移行は失敗し、編集>変換>現在へSwift構文...
私の修正は簡単です。プロジェクト設定のSwiftバージョン4.0から3.2または使用しているバージョンに戻します。
これは、最初の移行が失敗したにもかかわらず、Xcodeがプロジェクト設定でSwiftバージョンを4.0に変更したためです。
私たちにとっては、UnitTestとUITestsを削除することでした
プロジェクトをタップし、「右クリック」-> 2つの依存関係を削除します
それが役に立てば幸い
おそらく、ブリッジングヘッダーファイルに入れたObjective Cクラスの少なくとも1つはコンパイルされていません-ブリッジングヘッダーファイルのすべてのエントリをコメントアウトしてからコンパイルします-ブリッジングヘッダーをインポートできるはずですが、もちろんたくさん生成しますクラスが見つからないためにエラーが発生しました。行を1行ずつコメント解除して、インポートが失敗した原因を特定し、それらのファイルを修正します。
テストを含むすべてのターゲットがコンパイルされることを確認してください。 Cocoapodsがプロジェクトから削除されたら、NAME.xcworkspaceを削除します
これで解決しました。
プロジェクトのビルド設定およびすべてのターゲットでSwift言語バージョンを変更した後AppDelegate.Swiftのこの関数宣言を次のように変更する必要がありました。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true }