Skip to main content

iOS Setup

1. Add GoogleService-Info.plist

  1. Download GoogleService-Info.plist from Firebase Console
  2. Add to ios/Runner/ directory in Xcode
  3. Ensure it’s added to target

2. Update Info.plist

Add required permissions to ios/Runner/Info.plist:
<key>NSLocationWhenInUseUsageDescription</key>
<string>We use your location to send relevant notifications</string>

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>We use your location to send relevant notifications</string>

<key>UIBackgroundModes</key>
<array>
    <string>fetch</string>
    <string>remote-notification</string>
</array>

3. CocoaPods (Default)

Run pod install:
cd ios
pod install

4. Swift Package Manager (Optional)

To use SPM instead of CocoaPods, update pubspec.yaml:
dependencies:
  zixflow:
    version: ^1.0.0
    native_sdk:
      ios:
        enable-swift-package-manager: true
Then run:
cd ios
pod install

Android Setup

1. Add google-services.json

  1. Download google-services.json from Firebase Console
  2. Place in android/app/ directory

2. Add Google Services Plugin

Update android/build.gradle:
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.4.0'
    }
}
Update android/app/build.gradle:
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'com.google.gms.google-services'  // Add this
}

android {
    compileSdkVersion 34

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 34
    }
}

3. Permissions

Add permissions to android/app/src/main/AndroidManifest.xml:
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>

4. Enable Location (Optional)

To enable location tracking, add to android/gradle.properties:
zixflow_location_enabled=true