serhanaksut/firebase-ios-binary-sdk
A Swift Package Manager (SPM) wrapper for Firebase iOS SDK modules distributed as pre-compiled XCFramework binaries. This package provides an easy way to integrate Firebase services into your iOS projects with faster build times and reduced compilation overhead.
Overview
This repository wraps the official Firebase iOS SDK libraries as binary XCFramework dependencies, making them available through Swift Package Manager. By using pre-compiled binaries instead of source code, you can significantly reduce your project's build time while maintaining full Firebase functionality.
Features
- ✅ Pre-compiled XCFramework binaries for faster builds
- ✅ Swift Package Manager support
- ✅ Reduced compilation time
- ✅ All major Firebase iOS SDK modules included
- ✅ Regular updates aligned with official Firebase releases
- ✅ Latest Firebase SDK binaries with newest features and fixes
- ✅ Lightweight integration for side projects
Requirements
- iOS 15.0+
- macOS 10.15+
- tvOS 15.0+
- watchOS 7.0+
- Mac Catalyst 15.0+
- Xcode 14.0+
- Swift 5.7+
Installation
Swift Package Manager
Add the Firebase iOS Binary SDK to your project using Xcode:
- Open your project in Xcode
- Go to
File→Add Package Dependencies - Enter the repository URL:
`` https://github.com/SerhanAksut/Firebase-iOS-Binary-SDK ``
- Select the version rule (recommend "Up to Next Major Version")
- Click
Add Package - Choose the Firebase modules you need from the available products
Package.swift
If you're using a Package.swift file, add the dependency:
dependencies: [
.package(url: "https://github.com/SerhanAksut/Firebase-iOS-Binary-SDK", from: "12.12.0")
],
targets: [
.target(
name: "YourTarget",
dependencies: [
.product(name: "FirebaseAnalytics", package: "Firebase-iOS-Binary-SDK"),
.product(name: "FirebaseAuth", package: "Firebase-iOS-Binary-SDK"),
// Add other Firebase modules as needed
]
)
]Available Firebase Modules
This package includes the following Firebase modules as XCFramework binaries:
Core Modules
- FirebaseCore - Firebase Core SDK
- FirebaseAnalytics - Google Analytics for Firebase
- FirebaseAuth - Firebase Authentication
- FirebaseFirestore - Cloud Firestore
- FirebaseDatabase - Realtime Database
- FirebaseStorage - Cloud Storage
- FirebaseMessaging - Cloud Messaging (FCM)
- FirebaseCrashlytics - Crashlytics
- FirebaseRemoteConfig - Remote Config
- FirebasePerformance - Performance Monitoring
- FirebaseFunctions - Cloud Functions
- FirebaseAppCheck - App Check
Additional Modules
- FirebaseAI - Firebase AI (Generative AI with Gemini)
- FirebaseABTesting - A/B Testing
- FirebaseAppDistribution - App Distribution
- FirebaseInAppMessaging - In-App Messaging
- FirebaseInstallations - Firebase Installations
- FirebaseMLModelDownloader - ML Model Downloader
Supporting Libraries
- GoogleSignIn - Google Sign-In SDK
- AppAuth - OAuth and OpenID Connect client
- GTMAppAuth - Google Toolbox for Mac - AppAuth
- FBLPromises / Promises - Promises library
- SwiftProtobuf - Protocol Buffers support
- GoogleUtilities - Google Utilities
Note: Available modules may vary based on the version. Check the Package.swift file for the complete list.
Usage
After installation, import and use Firebase modules in your code as you normally would:
import FirebaseCore
import FirebaseAuth
import FirebaseFirestore
// In your AppDelegate or App struct
FirebaseApp.configure()
// Use Firebase services
Auth.auth().signIn(withEmail: email, password: password) { result, error in
// Handle authentication
}Configuration
GoogleService-Info.plist
Don't forget to add your GoogleService-Info.plist file to your Xcode project, which you can download from the Firebase Console.
Firebase Crashlytics Build Script
If you're using Firebase Crashlytics, you need to update your build script path in Xcode:
- Open your project in Xcode
- Select your target
- Go to Build Phases tab
- Find your existing Firebase Crashlytics run script (or create a new one if it doesn't exist)
- Update the script path from the official Firebase SDK path to:
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/Firebase-iOS-Binary-SDK/Crashlytics/run"Note: This replaces the standard Firebase iOS SDK script path:
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"This change is necessary because you're now using the binary wrapper instead of the official Firebase iOS SDK package, so the script location has changed accordingly.
Benefits of Using Binary Frameworks
- Faster Build Times: Pre-compiled binaries eliminate the need to compile Firebase source code
- Smaller Repository Size: Binary dependencies don't include source code
- Consistent Builds: Pre-compiled frameworks ensure consistent behavior across different environments
- Reduced Xcode Indexing Time: Less source code means faster Xcode indexing
Version Compatibility
This package aims to stay up-to-date with the latest stable Firebase iOS SDK releases. The current version includes updated binaries from the latest Firebase iOS SDK release, ensuring you have access to the newest features and bug fixes. Check the releases page for detailed version information and changelog.
Contributing
Contributions are welcome! If you encounter any issues or have suggestions for improvements:
- Check existing issues first
- Create a new issue with a clear description
- Submit pull requests for bug fixes or enhancements
License
This project is licensed under the same terms as the Firebase iOS SDK. Please refer to the Firebase iOS SDK License for details.
Disclaimer
This is an unofficial wrapper of the Firebase iOS SDK. For official support and documentation, please refer to the official Firebase documentation.
Package Metadata
Repository: serhanaksut/firebase-ios-binary-sdk
Default branch: main
README: README.md