SDK in the survey:
- Fabric Crashlytics
- Firebase
- Facebook SDK: Swift & Objective-C
Crashlytics is a crash reporting library for mobile apps, a close-sourced binary framework.
Modules required: Fabric.framework, Crashlytics.framework
Keys are required to be put in Info.plist
file to be shared among modules
Fabrice framework is responsible/required for initialize chilren framework Crashlytics:
Fabric.with([Crashlytics.self])
others feature included in Fabric
framework
/**
* This BOOL enables or disables debug logging, such as kit version information. The default value is NO.
*/
@property (nonatomic, assign) BOOL debug;
References: Integration guide,
Firebase requires developer to add a config file (plist
file on iOS and json
file on Android), which contains server keys and configurations. Any changes on the Firebase dashboard requires re-downloading the config file. Firebase is partly open source.
Besides, configure
is required at the beginning to inititalize all the components
import Firebase
// Use Firebase library to configure APIs
FirebaseApp.configure()
A config file contains keys for all the services: ... Firebase Core contains many frameworks:
- Firebase Core : initialization, logger level
- Firebase Analytics: send tracking event to dashboard
- Google Toolbox: GTMLogger, GTMLocalizedString,
- Firebase Instance ID: token for Firebase Messaging,
...
Since Fabric team aquired by Google, developers can have a new way of integrate of Fabric:
- add Firebase to your project (frameworks and Info.plist file)
- configure Crashlytics on Firebase dashboard
- adding Fabric, Crashlytics to your iOS project as usual.
Differences from integrating only Fabric Crashlytics
- Keys of Crashlytics are included in
Google-Info.plist
file of Firebase - the post build script is only
"${PODS_ROOT}/Fabric/run"
, and not required adding the keys
Reference: Add Firebase to iOS project, Firebase Crashlytics,
Facebook SDK is open source, (don't mistake it with Facebook Audience network for advertising, which is not open source), a SDK to integrate Facebook service to your mobile app.
Core module: FBSDKCoreKit Children modules: FBSDKLoginKit, FBSDKShareKit
Facebook SDK doesn't requires server keys to initialize, but requires your bundle ID to match with the one you registed on Facebook Developer dashboard.
It is required in documentation that all App Delegate calls must be passed to Facebook SDK.
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
[FBSDKAppEvents activateApp];
Classes in Facebook Core: FBSDKAccessToken
for managing user login token, AppEvent
for application event that can be logged to Facebook Analytics, UserProfile
represents an immutable Facebook profile.
Note: there are a lot of @testable import FacebookCore
in Login and Share module to access user information and access token
References: Getting started, facebook-objc-sdk on GitHub, facebook-swift-sdk on GitHub
well I don't actually know how you plan to organize your project; but as Firebase/Crashlytics allow CocoaPods; it is normal for a pod or a framework (if your feature modules are those types) depends on another pod