このページでは、Firebase の使用時に発生する可能性のある Apple プラットフォーム固有の問題に関するヒントとトラブルシューティングについて説明します。
その他の課題がある場合や、該当する問題が以下で見つからない場合は、メインの Firebase のよくある質問で、Firebase 全体またはプロダクト固有のよくある質問をご覧ください。
報告された問題とトラブルシューティングの最新リストについては、Firebase Apple プラットフォーム SDK GitHub リポジトリをご確認ください。Firebase Apple プラットフォーム SDK 関連の問題が見つかった場合は、このリポジトリにご報告ください。
macOS のキーチェーン アイテムにアクセスするために、ユーザーにパスワードの入力を求めるメッセージがアプリに表示されます。どうすればよいですか?
Firebase の依存関係をバージョン 9.6.0 以降にアップグレードし、[キーチェーン共有機能](/docs/ios/troubleshooting-faq#macos-keychain-sharing)をターゲットに追加します。
macOS で Firebase にキーチェーン共有機能が必要なのはなぜですか?
Firebase SDK はキーチェーンを使用して、FCM に使用される Firebase インストール ID などの情報を保存します。キーチェーン アクセス権がないと、Firebase SDK が正しく機能しない可能性があります。macOS のキーチェーンの動作は、他のプラットフォーム(iOS、tvOS、macCatalyst、watchOS)で使用されている iOS スタイルのキーチェーンとは異なります。
macOS では、アプリは共有キーチェーンを使用し、他のアプリやプロセスによって変更される可能性があります。iOS とは異なり、アプリが暗黙的にアクセスするサンドボックス化されたキーチェーンはありません。つまり、Mac アプリがキーチェーンとやり取りすると、作成されていないキーチェーン アイテムが Mac アプリによって変更される可能性があるため、ユーザーにアクセス権を求めるメッセージが表示されます。この不一致に対処するため、Firebase は kSecUseDataProtectionKeychain
キーを使用してキーチェーンにクエリを実行します。これにより、アプリはキーチェーン アクセス グループの一部であるキーチェーン アイテムをクエリします(これは他のポリシーでのデフォルトの動作です)。キーチェーン共有機能は、ターゲット間で共有可能なアクセス グループを合成して、アプリがアクセス グループ内のキーチェーン アイテムに自由にアクセスできる権限を与えるために必要となります。
詳細については、Apple の Keychain ドキュメントをご覧ください。
Xcode バージョン 13 以降で、Info.plist に登録した一部の URL を UIKit アプリで開けないのはなぜですか?
Apple では Info.plist
ファイルで LSApplicationQueriesSchemes
エントリを 50 個に制限しています。Apple は 2015 年に、各アプリで実行できる URL クエリの数を制限する LSApplicationQueriesSchemes
を導入しました。Xcode 13 のリリースで、これらの上限が適用されましたが、Xcode 12 以前では、スキームの数に有効な制限はありませんでした。
Firebase Authentication や Firebase Dynamic Links など、一部の Firebase プロダクトでは、カスタム URL スキームを使用してアプリケーションにリダイレクトする必要があります。これらの URL は簡潔で一貫した URL スキームに準拠しており、リンクスキームの数の上限である 50 にはカウントされません。
引き続き 50 を超える LSApplicationQueriesSchemes
を登録するアプリの場合、一部のスキームは通知なく無視されます。追加される順序によっては、アプリが特定のディープリンクを実行できない場合があります。