web-dev-qa-db-ja.com

Swiftブリッジングヘッダーファイルはuse_frameworksでは動作しません

GoogleidentityToolkitライブラリを使用してログインを処理しようとしています。 use_frameworksを有効にします!私のポッドファイルにありますが、モジュールGITkitが見つかりません。私は何が起こっているのかを理解しようとしています。 「use_frameworks」を使用する場合、cocoapodsはライブラリを1つのモジュールにコンパイルするため、ブリッジヘッダーファイルを作成する必要はありません。したがって、後で通常どおりに* .Swiftファイルにインポートできます。

SwiftでGoogle Identity Toolkitライブラリを使用するには何が必要ですか?


この質問は、CocoaPods 1.0.0(CocoaPods 0.39.0がまだ人気があった時代)のリリースの1週間後に尋ねられ、利用可能なバージョンの Google Identity Toolkit は2015年から1.1.3でしたが、 Firebase Authentication(pod 'FirebaseUI/Auth')Google I/O 2016以降。

12
AXSM

A)プロジェクトのルートフォルダーに "ProjectName-Bridging-Header.h"という名前のブリッジングヘッダーファイルを作成します。

B)プロジェクトビルド設定に移動し、次の値を設定します。

  • "objective-c互換性ヘッダーのインストール"[〜#〜] yes [〜#〜]
  • "Objective-Cブリッジングヘッダー"ブリッジングヘッダーのパス(例) ProjectName/ProjectName-Bridging-Header.h "

その後、ヘッダーファイルを使用して、Swiftコード内で使用するすべてのObjectiveCファイルをインポートできます。

[〜#〜] note [〜#〜]:必要に応じて、リソースヘッダーとSwiftコンパイラ検索セクションの両方で、パスを再帰的に設定します。

30
Pavan Gandhi

上記の答えはどれも私にとってはうまくいかず、十分に正確ではありませんでした。 Xcode 10.Swift 4.2)で、このソリューションは私のために働いた:

1。プロジェクトのルートディレクトリに新しいヘッダーファイルを作成します。ファイルの名前が実際に重要かどうかはわかりませんが、Appleの自動生成されたブリッジングヘッダーファイルの名前は「ProjectName-Bridging-Header.h」です。

2。新しく作成したファイルに必要なすべてのインポートを追加します。

Project Navigatorでプロジェクトの名前をクリックします。

4。一番上のバーで「Build settings」を選択し、少し下のバーでAllおよびCombined

enter image description here

5。右上隅で「Swift Compiler」を検索

6。Swift Compiler- General」タブを見つけて展開し、「Objective- Cブリッジングヘッダー」。

enter image description here

7。あとは、作成したブリッジングヘッダーファイルをポップアップウィンドウにドラッグしてEnterキーを押すだけです。準備完了です!

*プロジェクトの直接パスを変更するたびに、ブリッジングヘッダーへのパスを更新する必要があることに注意してください

9
Bartosz Kunat
  1. Xcodeに新しいファイルを追加し([ファイル]> [新規]> [ファイル])、[ソース]を選択して[ヘッダーファイル]をクリックします。
  2. ファイルに「YourProjectName-Bridging-Header.h」という名前を付けます。
  3. ファイルを作成します。
  4. プロジェクトのビルド設定に移動し、「Swift Compiler – Code Generation」セクションを見つけます。検索ボックスに「Swift Compiler」と入力すると、結果を絞り込むことができます。注:「Swift Compiler – Code Generation」セクションがない場合、これはおそらくSwiftクラスがプロジェクトにまだ追加されていないことを意味します。Swiftファイル、もう一度やり直してください。
  5. 「Objective-Cブリッジングヘッダー」の横に、ヘッダーファイルの名前/パスを追加する必要があります。ファイルがプロジェクトのルートフォルダにある場合は、そこにヘッダーファイルの名前を入力するだけです。例:「ProjectName/ProjectName-Bridging-Header.h」または単に「ProjectName-Bridging-Header.h」。または、Finderからブリッジフィールドファイルをこの空のフィールドにドラッグアンドドロップします。これにより、ブリッジングヘッダーファイルのパスが自動的に追加されます。
  6. 新しく作成したブリッジングヘッダーを開き、#importステートメントを使用してObjective-Cクラスをインポートします。このファイルにリストされているクラスは、Swiftクラスからアクセスできます。
4
MS_iOS

私が見つけた最も簡単な方法は、偽の.Swift XCode内のファイル。これにより、ブリッジヘッダーを自動的に作成するプロンプトが表示されます。

  1. ファイル> 新規> ファイル ...
  2. ファイルタイプとして、Swiftを選択します。
  3. XcodeがSwift Bridging Headerを手動で作成できるようにします。
  4. .Swift最初に作成したファイル。
4
Mapsy

Swift 4およびXcode 9.3

  1. ブリッジングヘッダーファイルを作成します。

    • Xcode>ファイル/新規... /ファイル>ヘッダーファイル
    • ファイルに「ProjectName-bridging-header.h」という名前を付けます
    • プロジェクトフォルダーのルートに保存する
  2. [Xcode]> [ビルド設定に移動](プロジェクトエクスプローラーペインで一番上の項目を選択します。プロジェクト名にし、右側のペインで[ビルド設定]トピックを選択します)

    • 「ビルド設定」のすぐ下で、「すべて」と「結合」が選択されていることを確認します
    • 検索ボックスに「Swift compiler」と入力し、「Objective-C Bridging Header」項目を見つけます
    • 折りたたんで右にダブルクリックして編集します
    • 上記のファイル名1を挿入します-> "ProjectName/ProjectName-bridging-header.h"(ブリッジファイルがプロジェクトフォルダに保存されている場合、フォルダパスに注意してください)
  3. 必要な#importを含めます

2
Matt

まず、プロジェクトルートレベルで「projectname-bridging-header.h」という名前のブライディングヘッダーファイルを作成します。

ビルド設定で、ブリッジングヘッダーファイルのパスとそのobjc互換性ヘッダーを設定します。

完了したら、プロジェクトをきれいにしてビルドします。

0
Lotus Shah