From 4fb8f048cd9786570d8ed6668bd503fcecd3fdf7 Mon Sep 17 00:00:00 2001 From: Jose Olarte III Date: Wed, 27 May 2026 17:01:35 +0800 Subject: [PATCH] build(ios): add GoogleService-Info.plist to Xcode resources Also clarify the ngrok iOS guide steps for dragging the plist into the correct App folder/target. --- doc/local-ios-testing-ngrok.md | 7 +++---- ios/App/App.xcodeproj/project.pbxproj | 6 ++++++ ios/App/App/GoogleService-Info.plist | 30 +++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 ios/App/App/GoogleService-Info.plist diff --git a/doc/local-ios-testing-ngrok.md b/doc/local-ios-testing-ngrok.md index 36ed88e4..a79fd245 100644 --- a/doc/local-ios-testing-ngrok.md +++ b/doc/local-ios-testing-ngrok.md @@ -213,12 +213,11 @@ Complete this section once before your first physical-device push test. If Fireb ### Add GoogleService-Info.plist to Xcode 1. Open the iOS workspace you generated in [section 4](#4-generate-and-open-the-ios-workspace) (for example `ios/App/App.xcworkspace`). -2. In the Project Navigator, select the main **App** group (or the folder that contains the iOS app target sources). -3. Drag **`GoogleService-Info.plist`** from Finder into that group. -4. In the dialog: +2. In the Project Navigator, drag **`GoogleService-Info.plist`** into the **App** folder (the same one that contains AppDelegate.swift and Info.plist). +3. In the dialog that appears: - Check **Copy items if needed** (so the file is copied into the project tree). - Under **Add to targets**, ensure the main app target (not only the share extension) is checked. -5. Confirm the file appears under the app target in Xcode and is listed in **Build Phases** → **Copy Bundle Resources** if your project uses that phase for plists. +4. Confirm the file appears under the app target in Xcode and is listed in **Build Phases** → **Copy Bundle Resources** if your project uses that phase for plists. ### Create an APNs Authentication Key diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 611b12b6..eab57708 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -19,6 +19,8 @@ C86585DF2ED456DE00824752 /* TimeSafariShareExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C86585D52ED456DE00824752 /* TimeSafariShareExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; C8C56E142EE0474B00737D0E /* SharedImageUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C56E132EE0474B00737D0E /* SharedImageUtility.swift */; }; C8C56E162EE064CB00737D0E /* SharedImagePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8C56E152EE064CA00737D0E /* SharedImagePlugin.swift */; }; + C8E73DD12FC6E5DC0057F59A /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8E73DD02FC6E5DC0057F59A /* GoogleService-Info.plist */; }; + C8E73DD22FC6E5DC0057F59A /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8E73DD02FC6E5DC0057F59A /* GoogleService-Info.plist */; }; E9F1A0022EE05A8B00737D01 /* NotificationInspectorPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F1A0012EE05A8B00737D01 /* NotificationInspectorPlugin.swift */; }; /* End PBXBuildFile section */ @@ -62,6 +64,7 @@ C86585E52ED4577F00824752 /* App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = App.entitlements; sourceTree = ""; }; C8C56E132EE0474B00737D0E /* SharedImageUtility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedImageUtility.swift; sourceTree = ""; }; C8C56E152EE064CA00737D0E /* SharedImagePlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedImagePlugin.swift; sourceTree = ""; }; + C8E73DD02FC6E5DC0057F59A /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; E2E9297D5D02C549106C77F9 /* Pods-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.release.xcconfig"; path = "Target Support Files/Pods-App/Pods-App.release.xcconfig"; sourceTree = ""; }; E9F1A0012EE05A8B00737D01 /* NotificationInspectorPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationInspectorPlugin.swift; sourceTree = ""; }; EAEC6436E595F7CD3A1C9E96 /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = ""; }; @@ -144,6 +147,7 @@ 504EC3131FED79650016851F /* Info.plist */, 2FAD9762203C412B000D30F8 /* config.xml */, 50B271D01FEDC1A000F3C39B /* public */, + C8E73DD02FC6E5DC0057F59A /* GoogleService-Info.plist */, ); path = App; sourceTree = ""; @@ -253,6 +257,7 @@ 50379B232058CBB4000EE86E /* capacitor.config.json in Resources */, 504EC30D1FED79650016851F /* Main.storyboard in Resources */, 2FAD9763203C412B000D30F8 /* config.xml in Resources */, + C8E73DD12FC6E5DC0057F59A /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -260,6 +265,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + C8E73DD22FC6E5DC0057F59A /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/App/App/GoogleService-Info.plist b/ios/App/App/GoogleService-Info.plist new file mode 100644 index 00000000..4f86ac9c --- /dev/null +++ b/ios/App/App/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyDhiy46kW7TH4VvUxzl2pOTLEK7mT14mIo + GCM_SENDER_ID + 1094643115061 + PLIST_VERSION + 1 + BUNDLE_ID + app.timesafari + PROJECT_ID + pc-api-7249509642322112640-286 + STORAGE_BUCKET + pc-api-7249509642322112640-286.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:1094643115061:ios:587b9422d019375e887d7c + + \ No newline at end of file