以下のポッドでpodfile
を定義しています。
platform :ios, '8.0'
use_frameworks!
target 'LifeStream' do
pod 'SSKeychain'
pod 'LiveSDK'
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'Swift-2.0'
end
ポッドをインストールして、ワークスペースを開きました。 Swift 2バージョンのAlamofireは、プロジェクトをフレームワークとしてインポートしているため、Alamofireを使用しても問題なく動作することがわかりました。
しかし、SSKeychainクラスを使用しようとすると、
未解決の識別子「SSKeychain」の使用
LiveSDKで使用しようとするクラスにも同じことが当てはまります。
プロジェクトのルートディレクトリにブリッジヘッダーがあり、プロジェクトはそれを使用するように構成されています。
#ifndef Header_h
#define Header_h
#import "SSKeychain/SSKeychain.h"
#import "LiveSDK/LiveConnectClient.h"
#endif /* Header_h */
#import
から
#import "SSKeychain/SSKeychain.h"
に
#import "SSKeychain.h"
ファイルが見つからないため、Xcodeはコンパイルに失敗します。したがって、ブリッジヘッダーが機能していると思います。私のブリッジヘッダーがビルドされた方法では、ヘッダーが見つからないことが原因で発生するコンパイラエラーは発生しません。
ブリッジヘッダー
フレームワーク検索パス
また、プロジェクトのルートディレクトリをフレームワークの検索パスに追加しました。
リンクされたフレームワーク
最後に、すべてのフレームワークもプロジェクトにリンクしました。
セットアップで何か不足していますか? Cocoapodsが私のプロジェクトに1週間近く働かせることができませんでした。私は、私のプロジェクトがめちゃくちゃだったと思って、まったく新しいプロジェクトを作成しました。それは物事を変えませんでした。これを解決するために、ここから何をすべきかわかりません。
追加の調査を行った後、私は ブログ投稿を見つけました ポッドディレクトリをユーザーヘッダー検索に含める必要があることを示しています
コメンターは、Swiftの新しいCocoapods Frameworksサポートを使用している場合は、Frameworks/**検索パスを含める必要があることも述べました。 Pods/**とFrameworks/**の両方を含めましたが、同じ問題がまだあります。
さらに読む の後、これはCocoapodsの制限であるように聞こえ始めます。私の理解では、プロジェクトでライブラリとフレームワークを同時に使用することはできません。
Podfileでuse_frameworks!
を使用すると、SSKeychainなどのObjective-Cポッドもフレームワークとしてビルドされます。
実際の問題は、フレームワークを使用する場合、モジュールのインポートのみがブリッジングヘッダーで機能することです。また、ブリッジングヘッダーを完全に削除することもできます。フレームワークを使用する場合は不要なので、Swiftに直接インポートできます。
それを機能させるために何をすべきかを明確にするために:
use_frameworks!
Podfile内import Podname
それだけです、あなたは行ってもいいです。もちろん、必要な場合もありますプロジェクトをクリーンアップするか、派生データフォルダーを削除してください。ビルドして使用できます。
Swiftポッドを使用していない場合は、
Podfileのuse_frameworks!
を削除してみてください。
ターミナルでポッドインストールを実行します
クリーン&ビルド!
私はそれを修正するのにほぼ30分を費やし、検索パスにそれらのパスを追加するか、ブリッジングヘッダーを再度追加しようとしましたが、エラーは同じでした。
したがって、私の場合、ブリッジングヘッダーファイルは問題ではなく、Podfileにあります。
お役に立てば幸いです。