前提・実現したいこと プロジェクトにFirebaseAuthを導入したい
発生している問題・エラーメッセージ
FirebaseAuthを導入するため、手順通りに初期化コードまで記載し、ビルドしようとしたところ上記のエラーメッセージが出ておりビルドに失敗しています。
自分の手順が間違っているのかと思い、デモプロジェクトを作成し導入したところ一発でビルドが通りました、、、
エラーメッセージ no such file or directory: 'FirebaseAuth'
試したこと
・DerivedDataの削除
・FirebaseAuthの再インストール
・プロジェクト名.workspaceを開いてるか確認
・Build Phases → Copy Bundle Resourcesで赤文字になってる箇所がないか確認
・.workspace Podfile.lock Podsフォルダを削除後、再度 pod installで新規作成。その後ビルド
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Xcode 10.1
cocoapods 1.8.4
podfileを見せていただくことは可能ですか
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
target 'プロジェクト名' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for プロジェクト名
pod 'pjsip','~>2.3.0.7'
pod 'Firebase/Auth'
end
です。よろしくお願いいたします。
うーん、
xcodeの左のnavigatorで、Pods->Pods->FirebaseAuthは当然ありますよね
プロジェクトのbuildPhases->LinkBinary~~ というところに
pods_(プロジェクト名).framework
というのも存在しますよね。
クリーンビルドや端末の再起動も効果なかったですか?
navigatorにFirebaseAuthはあります。
LinkBinary~ の部分ですが、libPods-プロジェクト名.aというファイルはあるのですが、~.frameworkというのが存在していないです。検索でもでてきてないです。
Podfileのuse_frameworks!はデフォルトでコメントアウトでしたっけ?
うまくいったデモプロジェクトと、動かないプロジェクトで、PodfileとPodfile.lockにどのような違いがあるか確認してください。
あと、えらく古いXcodeを使っているようですが、何か理由があるのでしょうか。
違いを確認しました。Podfileのuse_frameworks!がコメントアウトされており、#を外したところ
プロジェクトのbuildPhases->LinkBinary~~ にpods_(プロジェクト名).frameworkが生成されました。ただ、依然として同様のエラーが出ております。。
現在の動いたプロジェクトとの違い
・Build Phases→Embed Pods Frameworks →Input Files に
${PODS_ROOT}/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名-frameworks.sh
${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework
${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework
${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework が、
output Filesに
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework
が追加されてました。
動いた方ではInputFilesではなく InputFileListsに
${PODS_ROOT}/Target Support Files/Pods-test/Pods-test-frameworks-${CONFIGURATION}-input-files.xcfilelist
OutputFileListsに
${PODS_ROOT}/Target Support Files/Pods-test/Pods-test-frameworks-${CONFIGURATION}-output-files.xcfilelistがあるようです。
また、pod install時ターミナルの方で
The `プロジェクト名 [Debug]` target overrides the `LD_RUNPATH_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `プロジェクト名 [Debug]` target overrides the `PODS_PODFILE_DIR_PATH` build setting defined in `Pods/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `プロジェクト名 [Release]` target overrides the `LD_RUNPATH_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `プロジェクト名 [Release]` target overrides the `PODS_PODFILE_DIR_PATH` build setting defined in `Pods/Target Support Files/Pods-プロジェクト名/Pods-プロジェクト名.release.xcconfig'. This can lead to problems with the CocoaPods installation
追記です。とりあえずFirebase導入前はビルドが通ったので、その状態に戻れるか確かめたく、Podfileの
Pod 'Firebase/Auth'をコメントアウト→pod update → クリーン →ビルドでも同じエラーメッセージが出ており前の状態に戻すにも戻せない状況です、。。
Podfileの記載内容を変えたあとはpod updateではなく、rm -rf Pods; rm Podfile.lock; pod installをおすすめします
上記の方法で再度試してみましたが同じエラーが起きています。
追記です。導入前の状態には戻せるようになりました。手順はPodFileのFirebase/Authを削除、header search path やother linker flags, framework seach pathに書いてあるfirebaseAuth関連のpathを削除後、rm -rf Pods; rm Podfile.lock; pod instal 、Clean Build Folder, ビルドです。(もしかしたら、一連のエラーはビルドが通ってないのに、Pathやlinker flagsの設定がされてたから。。。?)
ただ、この状態で再度PodfileにFirebase/Auth、初期化コードの記載、ビルドとするとAppDelegate.mにおいて、Parse Issue Module 'Firebase' not foundというエラーが出てきており、いまだ解決にはなってないです。
ところで公式ドキュメントにはFirebase/Analyticsを一緒に入れるように書いてありますが、これを入れるとどうなりますか?
https://firebase.google.com/docs/auth/ios/start?hl=ja
あと、AppDelegate.m で、 @import Firebase; ではなく #import <Firebase/Firebase.h> に変えると状況が変化するでしょうか?
Firebase/Anayticsを入れた場合、 @import Firebase の部分でModule 'Firebase' not foundというエラーに変化はありませんでした。 また、#import <Firebase/Firebase.h>ですとModule 'Firebase' not foundエラーは消えるのですが、fatal error: 'FirebaseCore/FirebaseCore.h' file not foundという別のエラーが出ます。
あれ、FirebaseCore.h は必須だと思うのですけど、勝手には入らないんだったかな……
Podfileに pod 'Firebase/Core' を追記してみていただけますか
追記しました。変わらずFirebaseCore.hが見つかりませんでしたと言われます。。。
Firebase/CoreをインストールしていてFirebaseCore.hが見つからないのはあり得ないですね、なんだろな。pod installしましたか?
はい。手順としては、Podfileにpod 'Firebase/Core'を追記。→ Podfile.lock, Podを削除 → pod install → クリーンビルドフォルダ → ビルドです
回答3件
あなたの回答
tips
プレビュー