When finished, Xcode will automatically begin resolving and downloading your
dependencies in the background.
Now, initialize the SDK in your app:
Import the Firebase module in yourAppstruct orUIApplicationDelegate, if you haven't yet:
Swift
importFirebase
Objective-C
@importFirebase;
Also configure aFirebaseAppshared instance, typically in yourApp's initializer or your app delegate'sapplication(_:didFinishLaunchingWithOptions:)method, if you haven't yet:
Swift
FirebaseApp.configure()
Objective-C
[FIRAppconfigure];
Compile and run your app.
Send a test message
Get your app's installation ID
To conserve power,Firebase In-App Messagingonly retrieves messages from the
server once per day. That can make testing difficult, so theFirebaseconsole allows you to specify a test device that displays messages
on demand.
That testing device is determined by aFirebaseinstallation ID provided by theFirebaseinstallations service. To find your testing app's installation ID, run the app with the
runtime command argument-FIRDebugEnabled:
With your Xcode project open, selectProduct > Scheme > Edit scheme...from
the top menu bar.
Open theArgumentstab of the dialog that pops up.
Click+ Add itemsunderArguments Passed On Launch.
Enter "-FIRDebugEnabled" in the newly-created field.
ClickClose, then run your app.
Once your app starts running, look for the following line in the Xcode console's logs:
[Firebase/InAppMessaging][I-IAM180017] Starting InAppMessaging runtime with Firebase Installation IDYOUR_INSTALLATION_ID
Send a message to your testing device
Once you've launched your app on the testing device and you have itsFirebaseinstallation ID (FID), you can try out yourFirebase In-App Messagingsetup by sending a test message:
If this is your first campaign, clickCreate your first campaign.
SelectFirebase In-App messagesand clickCreate.
Otherwise, on theCampaignstab, clickNew campaign.
SelectIn-App Messaging.
Enter aTitlefor your first message.
ClickTest on Device
Enter your app'sFirebaseinstallation ID in theAdd an installation IDfield.
ClickTestto send the message.
Firebase In-App Messagingsends your test message as soon as you clickTest. To see the
message, you need to close, then reopen the app on your testing device.
To confirm whether your device is a test device, look for the following
log message:
[Firebase/InAppMessaging][I-IAM180017] Seeing test message in fetch response. Turn the current instance into a testing instance.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["\u003cbr /\u003e\n\nThis quickstart shows you how to set up Firebase In-App Messaging and send your first message. \niOS+ Android Flutter \n\n\u003cbr /\u003e\n\nBefore you begin\n\n\nBefore starting, make sure to [add Firebase to your Apple project](/docs/ios/setup).\n\nAdd the Firebase In-App Messaging SDK to your project\n\n\nUse Swift Package Manager to install and manage Firebase dependencies.\n| Visit [our installation guide](/docs/ios/installation-methods) to learn about the different ways you can add Firebase SDKs to your Apple project, including importing frameworks directly and using CocoaPods.\n\n1. In Xcode, with your app project open, navigate to **File \\\u003e Add Packages**.\n2. When prompted, add the Firebase Apple platforms SDK repository: \n\n```text\n https://github.com/firebase/firebase-ios-sdk.git\n```\n| **Note:** New projects should use the default (latest) SDK version, but you can choose an older version if needed.\n3. Choose the In-App Messaging library.\n4. Add the `-ObjC` flag to the *Other Linker Flags* section of your target's build settings.\n5. To use In-App Messaging, you must [enable Google Analytics](//support.google.com/firebase/answer/9289399#linkga) in your Firebase project and add the Firebase SDK for Google Analytics to your app. You can select either the library without IDFA collection or with IDFA collection. See our FAQ on the [latest organization of modules in the Google Analytics for Firebase SDK](/support/faq#analytics-odm2-sdk-refactor-ios).\n6. When finished, Xcode will automatically begin resolving and downloading your dependencies in the background.\n\nNow, initialize the SDK in your app:\n\n1. Import the Firebase module in your `App` struct or `UIApplicationDelegate`, if you haven't yet: \n\n Swift \n\n ```swift\n import Firebase\n ```\n\n Objective-C \n\n ```objective-c\n @import Firebase;\n ```\n2. Also configure a [`FirebaseApp`](/docs/reference/ios/firebasecore/api/reference/Classes/FIRApp) shared instance, typically in your `App`'s initializer or your app delegate's `application(_:didFinishLaunchingWithOptions:)` method, if you haven't yet: \n\n Swift \n\n ```swift\n FirebaseApp.configure()\n ```\n\n Objective-C \n\n ```objective-c\n [FIRApp configure];\n ```\n3. Compile and run your app.\n\n| **Note:** Firebase In-App Messaging requires Firebase version 5.6.0 or higher. If you're having trouble compiling your app, try running `pod update` in your app's project directory. Keep in mind, though, that the command updates all of your app's dependencies, not just Firebase ones.\n\n\u003cbr /\u003e\n\nSend a test message\n\nGet your app's installation ID\n\nTo conserve power, Firebase In-App Messaging only retrieves messages from the\nserver once per day. That can make testing difficult, so the\nFirebase console allows you to specify a test device that displays messages\non demand.\n\n\nThat testing device is determined by a Firebase installation ID provided by the\nFirebase installations service. To find your testing app's installation ID, run the app with the\nruntime command argument `-FIRDebugEnabled`:\n\n1. With your Xcode project open, select **Product \\\u003e Scheme \\\u003e Edit scheme...** from the top menu bar.\n2. Open the **Arguments** tab of the dialog that pops up.\n3. Click **+ Add items** under **Arguments Passed On Launch**.\n4. Enter \"-FIRDebugEnabled\" in the newly-created field.\n5. Click **Close**, then run your app.\n\nOnce your app starts running, look for the following line in the Xcode console's logs: \n\n```scdoc\n[Firebase/InAppMessaging][I-IAM180017] Starting InAppMessaging runtime with Firebase Installation ID YOUR_INSTALLATION_ID\n```\n\n\u003cbr /\u003e\n\nSend a message to your testing device\n\nOnce you've launched your app on the testing device and you have its\nFirebase installation ID (FID), you can try out your Firebase In-App Messaging\nsetup by sending a test message:\n\n1. In the Firebase console, open the [Messaging page](https://console.firebase.google.com/project/_/messaging/).\n2. If this is your first campaign, click **Create your first campaign** .\n 1. Select **Firebase In-App messages** and click **Create**.\n3. Otherwise, on the **Campaigns** tab, click **New campaign** .\n 1. Select **In-App Messaging**.\n4. Enter a **Title** for your first message.\n5. Click **Test on Device**\n6. Enter your app's Firebase installation ID in the **Add an installation ID** field.\n7. Click **Test** to send the message.\n\nFirebase In-App Messaging sends your test message as soon as you click **Test**. To see the\nmessage, you need to close, then reopen the app on your testing device.\n\nTo confirm whether your device is a test device, look for the following\nlog message: \n\n```\n[Firebase/InAppMessaging][I-IAM180017] Seeing test message in fetch response. Turn the current instance into a testing instance.\n```"]]