質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

3回答

2832閲覧

Xcode No Such file or directory でビルドできない

yyyyytttt

総合スコア4

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2020/01/14 05:54

前提・実現したいこと プロジェクトに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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyotaroIsoyama

2020/01/14 06:33

podfileを見せていただくことは可能ですか
yyyyytttt

2020/01/14 07:10

# 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 です。よろしくお願いいたします。
RyotaroIsoyama

2020/01/14 07:46

うーん、 xcodeの左のnavigatorで、Pods->Pods->FirebaseAuthは当然ありますよね プロジェクトのbuildPhases->LinkBinary~~ というところに pods_(プロジェクト名).framework というのも存在しますよね。 クリーンビルドや端末の再起動も効果なかったですか?
yyyyytttt

2020/01/14 08:54

navigatorにFirebaseAuthはあります。 LinkBinary~ の部分ですが、libPods-プロジェクト名.aというファイルはあるのですが、~.frameworkというのが存在していないです。検索でもでてきてないです。
RyotaroIsoyama

2020/01/14 09:11

Podfileのuse_frameworks!はデフォルトでコメントアウトでしたっけ?
thyda.eiqau

2020/01/14 10:59

うまくいったデモプロジェクトと、動かないプロジェクトで、PodfileとPodfile.lockにどのような違いがあるか確認してください。 あと、えらく古いXcodeを使っているようですが、何か理由があるのでしょうか。
yyyyytttt

2020/01/15 08:54 編集

違いを確認しました。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
yyyyytttt

2020/01/15 08:55 編集

追記です。とりあえずFirebase導入前はビルドが通ったので、その状態に戻れるか確かめたく、Podfileの Pod 'Firebase/Auth'をコメントアウト→pod update → クリーン →ビルドでも同じエラーメッセージが出ており前の状態に戻すにも戻せない状況です、。。
thyda.eiqau

2020/01/15 11:25

Podfileの記載内容を変えたあとはpod updateではなく、rm -rf Pods; rm Podfile.lock; pod installをおすすめします
yyyyytttt

2020/01/16 00:39

上記の方法で再度試してみましたが同じエラーが起きています。
yyyyytttt

2020/01/16 01:42

追記です。導入前の状態には戻せるようになりました。手順は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というエラーが出てきており、いまだ解決にはなってないです。
thyda.eiqau

2020/01/16 02:19

ところで公式ドキュメントにはFirebase/Analyticsを一緒に入れるように書いてありますが、これを入れるとどうなりますか? https://firebase.google.com/docs/auth/ios/start?hl=ja あと、AppDelegate.m で、 @import Firebase; ではなく #import <Firebase/Firebase.h> に変えると状況が変化するでしょうか?
yyyyytttt

2020/01/16 04:08

Firebase/Anayticsを入れた場合、 @import Firebase の部分でModule 'Firebase' not foundというエラーに変化はありませんでした。 また、#import <Firebase/Firebase.h>ですとModule 'Firebase' not foundエラーは消えるのですが、fatal error: 'FirebaseCore/FirebaseCore.h' file not foundという別のエラーが出ます。
thyda.eiqau

2020/01/16 05:04

あれ、FirebaseCore.h は必須だと思うのですけど、勝手には入らないんだったかな…… Podfileに pod 'Firebase/Core' を追記してみていただけますか
yyyyytttt

2020/01/16 05:18

追記しました。変わらずFirebaseCore.hが見つかりませんでしたと言われます。。。
thyda.eiqau

2020/01/16 05:25

Firebase/CoreをインストールしていてFirebaseCore.hが見つからないのはあり得ないですね、なんだろな。pod installしましたか?
yyyyytttt

2020/01/16 05:36

はい。手順としては、Podfileにpod 'Firebase/Core'を追記。→ Podfile.lock, Podを削除 → pod install → クリーンビルドフォルダ → ビルドです
guest

回答3

0

エラーの原因は、Podfileの
use_frameworks!の行の先頭に#文字が入っていて、
この行がコメントになっているためです。

use_frameworks!の記述がないと、ライブラリがframeworkとして
インストールされず、Swiftのimportで読み込めなくなります。

use_frameworks!の行の先頭の#文字を削除して、
再度pod installしなおす必要があります。


(1/16追記)

すみません。勘違いしていました。これはSwiftではなく、Objective-CのプロジェクトにFirebaseをインストール
しようとしているのですね。

追記・修正依頼欄のやりとりの中で、元に戻す時の説明に「header search path やother linker flags, framework seach pathに書いてあるfirebaseAuth関連のpathを削除」と書かれてあったのが気になったのですが、もしかして、これらの設定を何か自分で変更していたのを元に戻したと言うことなのでしょうか?
(use_frameworks!をコメントにしていたのも、その記事の説明に従ってやったことなのでしょうか?)
なんとなく、何か古い記事を見て、今の最新のFirebase対して実施してはいけないことをし、
プロジェクトの設定がおかしくなっているような気がしました。
もし、そのようなことをしているのであれば、その参考にした記事のURLを開示すると解決しやすくなるかもしれません。

最新のFirebaseをインストールするには、
https://firebase.google.com/docs/ios/setup?hl=ja#add-sdks
の公式ドキュメントに書かれている通り、Podfileを作成してpod installするだけでよく、それ以外の操作は不要です。

一度次の手順でやり直すことをお勧めします。

1. ターミナルで「pod deintegrate」を実行 (これでPodsフォルダやXcode内のcocoapods用設定が全て削除される) 2. Podfile.lockと.xcworkspaceの2ファイルは自動削除されないので、手動で削除 3. Xcodeの設定を自分でいじったところがあれば、全て元に戻す。 4. https://firebase.google.com/docs/ios/setup?hl=ja#add-sdks の手順通りにFirebaseのインストール実施

ちなみに、プロジェクト名が開示されていませんが、実際のプロジェクト名は
日本語の名前ではなく、半角英数字のプロジェクト名にしていますよね?
もしプロジェクト名に日本語を使っていたりすると、いろいろな問題を引き起こします。

投稿2020/01/14 15:27

編集2020/01/16 09:03
TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yyyyytttt

2020/01/15 07:34

回答ありがとうございます。use_frameworks!のコメントを外し、再度pod installしたところpods_(プロジェクト名).frameworkが生成されましたが、依然として同様のエラーが起きています。。。
TakeOne

2020/01/15 12:58

pod installし直した後、.xcworkspaceでプロジェクトを開き直してからビルドしても同じエラーが出るということですか?もしそうなら、Product - Clean Build Folderで一度掃除してからビルドし直してみてください。
yyyyytttt

2020/01/16 00:33

はい。その際もclean build folderをしてからビルドしたのですが、ダメでした。
TakeOne

2020/01/16 09:03

回答を追記しました。
guest

0

自己解決

数日間ビルドが通ったプロジェクトと、今回の通らなかったプロジェクトの設定の違いなどを細かく見てましたが、結局原因解明には至らず、新規プロジェクトにてfirebaseAuthを導入することにいたしました。ご回答や追記修正依頼でコメントをくださった方々には感謝しております。本当にありがとうございました。

投稿2020/01/20 01:10

yyyyytttt

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一旦新規プロジェクト作ってpod install等すれば通りませんか?
それで通ればそっちでプロジェクト作り直せばいいかと

投稿2020/01/16 00:54

RyotaroIsoyama

総合スコア183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yyyyytttt

2020/01/16 01:32

新規プロジェクトでは問題なく通ります。やはり作り直すしかないでしょうか。自分的にはまだ初心者ということもあって、もしまた同じようなエラーと遭遇した時に今度は自分だけでも対処できるようになりたいとも考えており、何が原因でダメだったのかを解明したいという部分もあるのですが。
RyotaroIsoyama

2020/01/16 01:37

確かに最終手段です。あまり再現性もなくもはや当初何が原因だったのかも分からなくなってる可能性もありますが、それなら格闘した方がいいかもですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問