Push notifications: remove and disable Firebase analytics
- Remove Firebase from Podfile (iOS) - Compile without Pods by manually linking frameworks (iOS) - Remove FirebaseAnalytics framework (iOS) - Disable Firebase analytics collection in settings permanently (iOS, Android)
This commit is contained in:
parent
4b6f920e43
commit
7540dda41d
|
@ -36,6 +36,7 @@
|
|||
android:theme="@style/AppTheme"
|
||||
android:name=".MainApplication"
|
||||
android:largeHeap="true">
|
||||
<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class provides configuration fields for Firebase Analytics.
|
||||
*/
|
||||
FIR_SWIFT_NAME(AnalyticsConfiguration)
|
||||
@interface FIRAnalyticsConfiguration : NSObject
|
||||
|
||||
/**
|
||||
* Returns the shared instance of FIRAnalyticsConfiguration.
|
||||
*/
|
||||
+ (FIRAnalyticsConfiguration *)sharedInstance FIR_SWIFT_NAME(shared());
|
||||
|
||||
/**
|
||||
* Sets the minimum engagement time in seconds required to start a new session. The default value
|
||||
* is 10 seconds.
|
||||
*/
|
||||
- (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval;
|
||||
|
||||
/**
|
||||
* Sets the interval of inactivity in seconds that terminates the current session. The default
|
||||
* value is 1800 seconds (30 minutes).
|
||||
*/
|
||||
- (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval;
|
||||
|
||||
/**
|
||||
* Sets whether analytics collection is enabled for this app on this device. This setting is
|
||||
* persisted across app sessions. By default it is enabled.
|
||||
*/
|
||||
- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,132 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#if TARGET_OS_IOS
|
||||
// TODO: Remove UIKit import on next breaking change release
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
@class FIROptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** A block that takes a BOOL and has no return value. */
|
||||
typedef void (^FIRAppVoidBoolCallback)(BOOL success) FIR_SWIFT_NAME(FirebaseAppVoidBoolCallback);
|
||||
|
||||
/**
|
||||
* The entry point of Firebase SDKs.
|
||||
*
|
||||
* Initialize and configure FIRApp using +[FIRApp configure]
|
||||
* or other customized ways as shown below.
|
||||
*
|
||||
* The logging system has two modes: default mode and debug mode. In default mode, only logs with
|
||||
* log level Notice, Warning and Error will be sent to device. In debug mode, all logs will be sent
|
||||
* to device. The log levels that Firebase uses are consistent with the ASL log levels.
|
||||
*
|
||||
* Enable debug mode by passing the -FIRDebugEnabled argument to the application. You can add this
|
||||
* argument in the application's Xcode scheme. When debug mode is enabled via -FIRDebugEnabled,
|
||||
* further executions of the application will also be in debug mode. In order to return to default
|
||||
* mode, you must explicitly disable the debug mode with the application argument -FIRDebugDisabled.
|
||||
*
|
||||
* It is also possible to change the default logging level in code by calling setLoggerLevel: on
|
||||
* the FIRConfiguration interface.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseApp)
|
||||
@interface FIRApp : NSObject
|
||||
|
||||
/**
|
||||
* Configures a default Firebase app. Raises an exception if any configuration step fails. The
|
||||
* default app is named "__FIRAPP_DEFAULT". This method should be called after the app is launched
|
||||
* and before using Firebase services. This method is thread safe.
|
||||
*/
|
||||
+ (void)configure;
|
||||
|
||||
/**
|
||||
* Configures the default Firebase app with the provided options. The default app is named
|
||||
* "__FIRAPP_DEFAULT". Raises an exception if any configuration step fails. This method is thread
|
||||
* safe.
|
||||
*
|
||||
* @param options The Firebase application options used to configure the service.
|
||||
*/
|
||||
+ (void)configureWithOptions:(FIROptions *)options FIR_SWIFT_NAME(configure(options:));
|
||||
|
||||
/**
|
||||
* Configures a Firebase app with the given name and options. Raises an exception if any
|
||||
* configuration step fails. This method is thread safe.
|
||||
*
|
||||
* @param name The application's name given by the developer. The name should should only contain
|
||||
Letters, Numbers and Underscore.
|
||||
* @param options The Firebase application options used to configure the services.
|
||||
*/
|
||||
// clang-format off
|
||||
+ (void)configureWithName:(NSString *)name
|
||||
options:(FIROptions *)options FIR_SWIFT_NAME(configure(name:options:));
|
||||
// clang-format on
|
||||
|
||||
/**
|
||||
* Returns the default app, or nil if the default app does not exist.
|
||||
*/
|
||||
+ (nullable FIRApp *)defaultApp FIR_SWIFT_NAME(app());
|
||||
|
||||
/**
|
||||
* Returns a previously created FIRApp instance with the given name, or nil if no such app exists.
|
||||
* This method is thread safe.
|
||||
*/
|
||||
+ (nullable FIRApp *)appNamed:(NSString *)name FIR_SWIFT_NAME(app(name:));
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This
|
||||
* method is thread safe.
|
||||
*/
|
||||
@property(class, readonly, nullable) NSDictionary<NSString *, FIRApp *> *allApps;
|
||||
#else
|
||||
/**
|
||||
* Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This
|
||||
* method is thread safe.
|
||||
*/
|
||||
+ (nullable NSDictionary<NSString *, FIRApp *> *)allApps FIR_SWIFT_NAME(allApps());
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* Cleans up the current FIRApp, freeing associated data and returning its name to the pool for
|
||||
* future use. This method is thread safe.
|
||||
*/
|
||||
- (void)deleteApp:(FIRAppVoidBoolCallback)completion;
|
||||
|
||||
/**
|
||||
* FIRApp instances should not be initialized directly. Call +[FIRApp configure],
|
||||
* +[FIRApp configureWithOptions:], or +[FIRApp configureWithNames:options:] directly.
|
||||
*/
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Gets the name of this app.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/**
|
||||
* Gets a copy of the options for this app. These are non-modifiable.
|
||||
*/
|
||||
@property(nonatomic, copy, readonly) FIROptions *options;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRAnalyticsConfiguration.h"
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
#import "FIRLoggerLevel.h"
|
||||
|
||||
/**
|
||||
* The log levels used by FIRConfiguration.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRLogLevel) {
|
||||
/** Error */
|
||||
kFIRLogLevelError __deprecated = 0,
|
||||
/** Warning */
|
||||
kFIRLogLevelWarning __deprecated,
|
||||
/** Info */
|
||||
kFIRLogLevelInfo __deprecated,
|
||||
/** Debug */
|
||||
kFIRLogLevelDebug __deprecated,
|
||||
/** Assert */
|
||||
kFIRLogLevelAssert __deprecated,
|
||||
/** Max */
|
||||
kFIRLogLevelMax __deprecated = kFIRLogLevelAssert
|
||||
} DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details.");
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This interface provides global level properties that the developer can tweak, and the singleton
|
||||
* of the Firebase Analytics configuration class.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseConfiguration)
|
||||
@interface FIRConfiguration : NSObject
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/** Returns the shared configuration object. */
|
||||
@property(class, nonatomic, readonly) FIRConfiguration *sharedInstance FIR_SWIFT_NAME(shared);
|
||||
#else
|
||||
/** Returns the shared configuration object. */
|
||||
+ (FIRConfiguration *)sharedInstance FIR_SWIFT_NAME(shared());
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/** The configuration class for Firebase Analytics. */
|
||||
@property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration;
|
||||
|
||||
/** Global log level. Defaults to kFIRLogLevelError. */
|
||||
@property(nonatomic, readwrite, assign) FIRLogLevel logLevel DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details.");
|
||||
|
||||
/**
|
||||
* Sets the logging level for internal Firebase logging. Firebase will only log messages
|
||||
* that are logged at or below loggerLevel. The messages are logged both to the Xcode
|
||||
* console and to the device's log. Note that if an app is running from AppStore, it will
|
||||
* never log above FIRLoggerLevelNotice even if loggerLevel is set to a higher (more verbose)
|
||||
* setting.
|
||||
*
|
||||
* @param loggerLevel The maximum logging level. The default level is set to FIRLoggerLevelNotice.
|
||||
*/
|
||||
- (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
|
||||
#endif // FIR_SWIFT_NAME
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
/**
|
||||
* The log levels used by internal logging.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRLoggerLevel) {
|
||||
/** Error level, matches ASL_LEVEL_ERR. */
|
||||
FIRLoggerLevelError = 3,
|
||||
/** Warning level, matches ASL_LEVEL_WARNING. */
|
||||
FIRLoggerLevelWarning = 4,
|
||||
/** Notice level, matches ASL_LEVEL_NOTICE. */
|
||||
FIRLoggerLevelNotice = 5,
|
||||
/** Info level, matches ASL_LEVEL_NOTICE. */
|
||||
FIRLoggerLevelInfo = 6,
|
||||
/** Debug level, matches ASL_LEVEL_DEBUG. */
|
||||
FIRLoggerLevelDebug = 7,
|
||||
/** Minimum log level. */
|
||||
FIRLoggerLevelMin = FIRLoggerLevelError,
|
||||
/** Maximum log level. */
|
||||
FIRLoggerLevelMax = FIRLoggerLevelDebug
|
||||
} FIR_SWIFT_NAME(FirebaseLoggerLevel);
|
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class provides constant fields of Google APIs.
|
||||
*/
|
||||
FIR_SWIFT_NAME(FirebaseOptions)
|
||||
@interface FIROptions : NSObject <NSCopying>
|
||||
|
||||
/**
|
||||
* Returns the default options.
|
||||
*/
|
||||
+ (nullable FIROptions *)defaultOptions FIR_SWIFT_NAME(defaultOptions());
|
||||
|
||||
/**
|
||||
* An iOS API key used for authenticating requests from your app, e.g.
|
||||
* @"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *APIKey FIR_SWIFT_NAME(apiKey);
|
||||
|
||||
/**
|
||||
* The bundle ID for the application. Defaults to `[[NSBundle mainBundle] bundleID]` when not set
|
||||
* manually or in a plist.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *bundleID;
|
||||
|
||||
/**
|
||||
* The OAuth2 client ID for iOS application used to authenticate Google users, for example
|
||||
* @"12345.apps.googleusercontent.com", used for signing in with Google.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *clientID;
|
||||
|
||||
/**
|
||||
* The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *trackingID;
|
||||
|
||||
/**
|
||||
* The Project Number from the Google Developer's console, for example @"012345678901", used to
|
||||
* configure Google Cloud Messaging.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *GCMSenderID FIR_SWIFT_NAME(gcmSenderID);
|
||||
|
||||
/**
|
||||
* The Project ID from the Firebase console, for example @"abc-xyz-123".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *projectID;
|
||||
|
||||
/**
|
||||
* The Android client ID used in Google AppInvite when an iOS app has its Android version, for
|
||||
* example @"12345.apps.googleusercontent.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *androidClientID;
|
||||
|
||||
/**
|
||||
* The Google App ID that is used to uniquely identify an instance of an app.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *googleAppID;
|
||||
|
||||
/**
|
||||
* The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *databaseURL;
|
||||
|
||||
/**
|
||||
* The URL scheme used to set up Durable Deep Link service.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *deepLinkURLScheme;
|
||||
|
||||
/**
|
||||
* The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com".
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSString *storageBucket;
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID
|
||||
* are required. Other keys may required for configuring specific services.
|
||||
*/
|
||||
- (instancetype)initWithGoogleAppID:(NSString *)googleAppID
|
||||
bundleID:(NSString *)bundleID
|
||||
GCMSenderID:(NSString *)GCMSenderID
|
||||
APIKey:(NSString *)APIKey
|
||||
clientID:(NSString *)clientID
|
||||
trackingID:(NSString *)trackingID
|
||||
androidClientID:(NSString *)androidClientID
|
||||
databaseURL:(NSString *)databaseURL
|
||||
storageBucket:(NSString *)storageBucket
|
||||
deepLinkURLScheme:(NSString *)deepLinkURLScheme
|
||||
DEPRECATED_MSG_ATTRIBUTE(
|
||||
"Use `-[[FIROptions alloc] initWithGoogleAppID:GCMSenderID:]` "
|
||||
"(`FirebaseOptions(googleAppID:gcmSenderID:)` in Swift)` and property "
|
||||
"setters instead.");
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions from the file at the given plist file path.
|
||||
* For example,
|
||||
* NSString *filePath =
|
||||
* [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
|
||||
* FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
|
||||
* Returns nil if the plist file does not exist or is invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithContentsOfFile:(NSString *)plistPath;
|
||||
|
||||
/**
|
||||
* Initializes a customized instance of FIROptions with required fields. Use the mutable properties
|
||||
* to modify fields for configuring specific services.
|
||||
*/
|
||||
// clang-format off
|
||||
- (instancetype)initWithGoogleAppID:(NSString *)googleAppID
|
||||
GCMSenderID:(NSString *)GCMSenderID
|
||||
FIR_SWIFT_NAME(init(googleAppID:gcmSenderID:));
|
||||
// clang-format on
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,6 @@
|
|||
#import "FIRAnalyticsConfiguration.h"
|
||||
#import "FIRApp.h"
|
||||
#import "FIRConfiguration.h"
|
||||
#import "FIRCoreSwiftNameSupport.h"
|
||||
#import "FIRLoggerLevel.h"
|
||||
#import "FIROptions.h"
|
|
@ -0,0 +1,5 @@
|
|||
framework module FirebaseCore {
|
||||
umbrella header "FirebaseCore.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -0,0 +1,4 @@
|
|||
framework module FirebaseCoreDiagnostics {
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -0,0 +1,281 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
#endif // #ifndef FIR_SWIFT_NAME
|
||||
|
||||
/**
|
||||
* @memberof FIRInstanceID
|
||||
*
|
||||
* The scope to be used when fetching/deleting a token for Firebase Messaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDScopeFirebaseMessaging
|
||||
FIR_SWIFT_NAME(InstanceIDScopeFirebaseMessaging);
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Called when the system determines that tokens need to be refreshed.
|
||||
* This method is also called if Instance ID has been reset in which
|
||||
* case, tokens and FCM topic subscriptions also need to be refreshed.
|
||||
*
|
||||
* Instance ID service will throttle the refresh event across all devices
|
||||
* to control the rate of token updates on application servers.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull kFIRInstanceIDTokenRefreshNotification
|
||||
FIR_SWIFT_NAME(InstanceIDTokenRefresh);
|
||||
#else
|
||||
/**
|
||||
* Called when the system determines that tokens need to be refreshed.
|
||||
* This method is also called if Instance ID has been reset in which
|
||||
* case, tokens and FCM topic subscriptions also need to be refreshed.
|
||||
*
|
||||
* Instance ID service will throttle the refresh event across all devices
|
||||
* to control the rate of token updates on application servers.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotification
|
||||
FIR_SWIFT_NAME(InstanceIDTokenRefreshNotification);
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the InstanceID token returns. If
|
||||
* the call fails we return the appropriate `error code` as described below.
|
||||
*
|
||||
* @param token The valid token as returned by InstanceID backend.
|
||||
*
|
||||
* @param error The error describing why generating a new token
|
||||
* failed. See the error codes below for a more detailed
|
||||
* description.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDTokenHandler);
|
||||
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the InstanceID `deleteToken` returns. If
|
||||
* the call fails we return the appropriate `error code` as described below
|
||||
*
|
||||
* @param error The error describing why deleting the token failed.
|
||||
* See the error codes below for a more detailed description.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDDeleteTokenHandler);
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the app identity is created. If the
|
||||
* identity wasn't created for some reason we return the appropriate error code.
|
||||
*
|
||||
* @param identity A valid identity for the app instance, nil if there was an error
|
||||
* while creating an identity.
|
||||
* @param error The error if fetching the identity fails else nil.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDHandler);
|
||||
|
||||
/**
|
||||
* @related FIRInstanceID
|
||||
*
|
||||
* The completion handler invoked when the app identity and all the tokens associated
|
||||
* with it are deleted. Returns a valid error object in case of failure else nil.
|
||||
*
|
||||
* @param error The error if deleting the identity and all the tokens associated with
|
||||
* it fails else nil.
|
||||
*/
|
||||
typedef void(^FIRInstanceIDDeleteHandler)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(InstanceIDDeleteHandler);
|
||||
|
||||
/**
|
||||
* @enum FIRInstanceIDError
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, FIRInstanceIDError) {
|
||||
// Http related errors.
|
||||
|
||||
/// Unknown error.
|
||||
FIRInstanceIDErrorUnknown = 0,
|
||||
|
||||
/// Auth Error -- GCM couldn't validate request from this client.
|
||||
FIRInstanceIDErrorAuthentication = 1,
|
||||
|
||||
/// NoAccess -- InstanceID service cannot be accessed.
|
||||
FIRInstanceIDErrorNoAccess = 2,
|
||||
|
||||
/// Timeout -- Request to InstanceID backend timed out.
|
||||
FIRInstanceIDErrorTimeout = 3,
|
||||
|
||||
/// Network -- No network available to reach the servers.
|
||||
FIRInstanceIDErrorNetwork = 4,
|
||||
|
||||
/// OperationInProgress -- Another similar operation in progress,
|
||||
/// bailing this one.
|
||||
FIRInstanceIDErrorOperationInProgress = 5,
|
||||
|
||||
/// InvalidRequest -- Some parameters of the request were invalid.
|
||||
FIRInstanceIDErrorInvalidRequest = 7,
|
||||
} FIR_SWIFT_NAME(InstanceIDError);
|
||||
|
||||
/**
|
||||
* The APNS token type for the app. If the token type is set to `UNKNOWN`
|
||||
* InstanceID will implicitly try to figure out what the actual token type
|
||||
* is from the provisioning profile.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
|
||||
/// Unknown token type.
|
||||
FIRInstanceIDAPNSTokenTypeUnknown,
|
||||
/// Sandbox token type.
|
||||
FIRInstanceIDAPNSTokenTypeSandbox,
|
||||
/// Production token type.
|
||||
FIRInstanceIDAPNSTokenTypeProd,
|
||||
} FIR_SWIFT_NAME(InstanceIDAPNSTokenType)
|
||||
__deprecated_enum_msg("Use FIRMessaging's APNSToken property instead.");
|
||||
|
||||
/**
|
||||
* Instance ID provides a unique identifier for each app instance and a mechanism
|
||||
* to authenticate and authorize actions (for example, sending an FCM message).
|
||||
*
|
||||
* Instance ID is long lived but, may be reset if the device is not used for
|
||||
* a long time or the Instance ID service detects a problem.
|
||||
* If Instance ID is reset, the app will be notified via
|
||||
* `kFIRInstanceIDTokenRefreshNotification`.
|
||||
*
|
||||
* If the Instance ID has become invalid, the app can request a new one and
|
||||
* send it to the app server.
|
||||
* To prove ownership of Instance ID and to allow servers to access data or
|
||||
* services associated with the app, call
|
||||
* `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`.
|
||||
*/
|
||||
FIR_SWIFT_NAME(InstanceID)
|
||||
@interface FIRInstanceID : NSObject
|
||||
|
||||
/**
|
||||
* FIRInstanceID.
|
||||
*
|
||||
* @return A shared instance of FIRInstanceID.
|
||||
*/
|
||||
+ (nonnull instancetype)instanceID FIR_SWIFT_NAME(instanceID());
|
||||
|
||||
/**
|
||||
* Unavailable. Use +instanceID instead.
|
||||
*/
|
||||
- (nonnull instancetype)init __attribute__((unavailable("Use +instanceID instead.")));
|
||||
|
||||
/**
|
||||
* Set APNS token for the application. This APNS token will be used to register
|
||||
* with Firebase Messaging using `token` or
|
||||
* `tokenWithAuthorizedEntity:scope:options:handler`. If the token type is set to
|
||||
* `FIRInstanceIDAPNSTokenTypeUnknown` InstanceID will read the provisioning profile
|
||||
* to find out the token type.
|
||||
*
|
||||
* @param token The APNS token for the application.
|
||||
* @param type The APNS token type for the above token.
|
||||
*/
|
||||
- (void)setAPNSToken:(nonnull NSData *)token
|
||||
type:(FIRInstanceIDAPNSTokenType)type
|
||||
__deprecated_msg("Use FIRMessaging's APNSToken property instead.");
|
||||
|
||||
#pragma mark - Tokens
|
||||
|
||||
/**
|
||||
* Returns a Firebase Messaging scoped token for the firebase app.
|
||||
*
|
||||
* @return Null Returns null if the device has not yet been registerd with
|
||||
* Firebase Message else returns a valid token.
|
||||
*/
|
||||
- (nullable NSString *)token;
|
||||
|
||||
/**
|
||||
* Returns a token that authorizes an Entity (example: cloud service) to perform
|
||||
* an action on behalf of the application identified by Instance ID.
|
||||
*
|
||||
* This is similar to an OAuth2 token except, it applies to the
|
||||
* application instance instead of a user.
|
||||
*
|
||||
* This is an asynchronous call. If the token fetching fails for some reason
|
||||
* we invoke the completion callback with nil `token` and the appropriate
|
||||
* error.
|
||||
*
|
||||
* Note, you can only have one `token` or `deleteToken` call for a given
|
||||
* authorizedEntity and scope at any point of time. Making another such call with the
|
||||
* same authorizedEntity and scope before the last one finishes will result in an
|
||||
* error with code `OperationInProgress`.
|
||||
*
|
||||
* @see FIRInstanceID deleteTokenWithAuthorizedEntity:scope:handler:
|
||||
*
|
||||
* @param authorizedEntity Entity authorized by the token.
|
||||
* @param scope Action authorized for authorizedEntity.
|
||||
* @param options The extra options to be sent with your token request. The
|
||||
* value for the `apns_token` should be the NSData object
|
||||
* passed to the UIApplicationDelegate's
|
||||
* `didRegisterForRemoteNotificationsWithDeviceToken` method.
|
||||
* The value for `apns_sandbox` should be a boolean (or an
|
||||
* NSNumber representing a BOOL in Objective C) set to true if
|
||||
* your app is a debug build, which means that the APNs
|
||||
* device token is for the sandbox environment. It should be
|
||||
* set to false otherwise.
|
||||
* @param handler The callback handler which is invoked when the token is
|
||||
* successfully fetched. In case of success a valid `token` and
|
||||
* `nil` error are returned. In case of any error the `token`
|
||||
* is nil and a valid `error` is returned. The valid error
|
||||
* codes have been documented above.
|
||||
*/
|
||||
- (void)tokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
|
||||
scope:(nonnull NSString *)scope
|
||||
options:(nullable NSDictionary *)options
|
||||
handler:(nonnull FIRInstanceIDTokenHandler)handler;
|
||||
|
||||
/**
|
||||
* Revokes access to a scope (action) for an entity previously
|
||||
* authorized by `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`.
|
||||
*
|
||||
* This is an asynchronous call. Call this on the main thread since InstanceID lib
|
||||
* is not thread safe. In case token deletion fails for some reason we invoke the
|
||||
* `handler` callback passed in with the appropriate error code.
|
||||
*
|
||||
* Note, you can only have one `token` or `deleteToken` call for a given
|
||||
* authorizedEntity and scope at a point of time. Making another such call with the
|
||||
* same authorizedEntity and scope before the last one finishes will result in an error
|
||||
* with code `OperationInProgress`.
|
||||
*
|
||||
* @param authorizedEntity Entity that must no longer have access.
|
||||
* @param scope Action that entity is no longer authorized to perform.
|
||||
* @param handler The handler that is invoked once the unsubscribe call ends.
|
||||
* In case of error an appropriate error object is returned
|
||||
* else error is nil.
|
||||
*/
|
||||
- (void)deleteTokenWithAuthorizedEntity:(nonnull NSString *)authorizedEntity
|
||||
scope:(nonnull NSString *)scope
|
||||
handler:(nonnull FIRInstanceIDDeleteTokenHandler)handler;
|
||||
|
||||
#pragma mark - Identity
|
||||
|
||||
/**
|
||||
* Asynchronously fetch a stable identifier that uniquely identifies the app
|
||||
* instance. If the identifier has been revoked or has expired, this method will
|
||||
* return a new identifier.
|
||||
*
|
||||
*
|
||||
* @param handler The handler to invoke once the identifier has been fetched.
|
||||
* In case of error an appropriate error object is returned else
|
||||
* a valid identifier is returned and a valid identifier for the
|
||||
* application instance.
|
||||
*/
|
||||
- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler
|
||||
FIR_SWIFT_NAME(getID(handler:));
|
||||
|
||||
/**
|
||||
* Resets Instance ID and revokes all tokens.
|
||||
*/
|
||||
- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler
|
||||
FIR_SWIFT_NAME(deleteID(handler:));
|
||||
|
||||
@end
|
|
@ -0,0 +1 @@
|
|||
#import "FIRInstanceID.h"
|
|
@ -0,0 +1,5 @@
|
|||
framework module FirebaseInstanceID {
|
||||
umbrella header "FirebaseInstanceID.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "z"}
|
Binary file not shown.
|
@ -0,0 +1,492 @@
|
|||
/*
|
||||
* Copyright 2017 Google
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
// NS_SWIFT_NAME can only translate factory methods before the iOS 9.3 SDK.
|
||||
// Wrap it in our own macro if it's a non-compatible SDK.
|
||||
#ifndef FIR_SWIFT_NAME
|
||||
#ifdef __IPHONE_9_3
|
||||
#define FIR_SWIFT_NAME(X) NS_SWIFT_NAME(X)
|
||||
#else
|
||||
#define FIR_SWIFT_NAME(X) // Intentionally blank.
|
||||
#endif // #ifdef __IPHONE_9_3
|
||||
#endif // #ifndef FIR_SWIFT_NAME
|
||||
|
||||
/**
|
||||
* @related FIRMessaging
|
||||
*
|
||||
* The completion handler invoked when the registration token returns.
|
||||
* If the call fails we return the appropriate `error code`, described by
|
||||
* `FIRMessagingError`.
|
||||
*
|
||||
* @param FCMToken The valid registration token returned by FCM.
|
||||
* @param error The error describing why a token request failed. The error code
|
||||
* will match a value from the FIRMessagingError enumeration.
|
||||
*/
|
||||
typedef void(^FIRMessagingFCMTokenFetchCompletion)(NSString * _Nullable FCMToken,
|
||||
NSError * _Nullable error)
|
||||
FIR_SWIFT_NAME(MessagingFCMTokenFetchCompletion);
|
||||
|
||||
|
||||
/**
|
||||
* @related FIRMessaging
|
||||
*
|
||||
* The completion handler invoked when the registration token deletion request is
|
||||
* completed. If the call fails we return the appropriate `error code`, described
|
||||
* by `FIRMessagingError`.
|
||||
*
|
||||
* @param error The error describing why a token deletion failed. The error code
|
||||
* will match a value from the FIRMessagingError enumeration.
|
||||
*/
|
||||
typedef void(^FIRMessagingDeleteFCMTokenCompletion)(NSError * _Nullable error)
|
||||
FIR_SWIFT_NAME(MessagingDeleteFCMTokenCompletion);
|
||||
|
||||
/**
|
||||
* The completion handler invoked once the data connection with FIRMessaging is
|
||||
* established. The data connection is used to send a continous stream of
|
||||
* data and all the FIRMessaging data notifications arrive through this connection.
|
||||
* Once the connection is established we invoke the callback with `nil` error.
|
||||
* Correspondingly if we get an error while trying to establish a connection
|
||||
* we invoke the handler with an appropriate error object and do an
|
||||
* exponential backoff to try and connect again unless successful.
|
||||
*
|
||||
* @param error The error object if any describing why the data connection
|
||||
* to FIRMessaging failed.
|
||||
*/
|
||||
typedef void(^FIRMessagingConnectCompletion)(NSError * __nullable error)
|
||||
FIR_SWIFT_NAME(MessagingConnectCompletion)
|
||||
__deprecated_msg("Please listen for the FIRMessagingConnectionStateChangedNotification "
|
||||
"NSNotification instead.");
|
||||
|
||||
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
/**
|
||||
* Notification sent when the upstream message has been delivered
|
||||
* successfully to the server. The notification object will be the messageID
|
||||
* of the successfully delivered message.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendSuccessNotification
|
||||
FIR_SWIFT_NAME(MessagingSendSuccess);
|
||||
|
||||
/**
|
||||
* Notification sent when the upstream message was failed to be sent to the
|
||||
* server. The notification object will be the messageID of the failed
|
||||
* message. The userInfo dictionary will contain the relevant error
|
||||
* information for the failure.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingSendErrorNotification
|
||||
FIR_SWIFT_NAME(MessagingSendError);
|
||||
|
||||
/**
|
||||
* Notification sent when the Firebase messaging server deletes pending
|
||||
* messages due to exceeded storage limits. This may occur, for example, when
|
||||
* the device cannot be reached for an extended period of time.
|
||||
*
|
||||
* It is recommended to retrieve any missing messages directly from the
|
||||
* server.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingMessagesDeletedNotification
|
||||
FIR_SWIFT_NAME(MessagingMessagesDeleted);
|
||||
|
||||
/**
|
||||
* Notification sent when Firebase Messaging establishes or disconnects from
|
||||
* an FCM socket connection. You can query the connection state in this
|
||||
* notification by checking the `isDirectChannelEstablished` property of FIRMessaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull FIRMessagingConnectionStateChangedNotification
|
||||
FIR_SWIFT_NAME(MessagingConnectionStateChanged);
|
||||
|
||||
/**
|
||||
* Notification sent when the FCM registration token has been refreshed. You can also
|
||||
* receive the FCM token via the FIRMessagingDelegate method
|
||||
* `-messaging:didRefreshRegistrationToken:`
|
||||
*/
|
||||
FOUNDATION_EXPORT const NSNotificationName __nonnull
|
||||
FIRMessagingRegistrationTokenRefreshedNotification
|
||||
FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshed);
|
||||
#else
|
||||
/**
|
||||
* Notification sent when the upstream message has been delivered
|
||||
* successfully to the server. The notification object will be the messageID
|
||||
* of the successfully delivered message.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendSuccessNotification
|
||||
FIR_SWIFT_NAME(MessagingSendSuccessNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the upstream message was failed to be sent to the
|
||||
* server. The notification object will be the messageID of the failed
|
||||
* message. The userInfo dictionary will contain the relevant error
|
||||
* information for the failure.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingSendErrorNotification
|
||||
FIR_SWIFT_NAME(MessagingSendErrorNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the Firebase messaging server deletes pending
|
||||
* messages due to exceeded storage limits. This may occur, for example, when
|
||||
* the device cannot be reached for an extended period of time.
|
||||
*
|
||||
* It is recommended to retrieve any missing messages directly from the
|
||||
* server.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingMessagesDeletedNotification
|
||||
FIR_SWIFT_NAME(MessagingMessagesDeletedNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when Firebase Messaging establishes or disconnects from
|
||||
* an FCM socket connection. You can query the connection state in this
|
||||
* notification by checking the `isDirectChannelEstablished` property of FIRMessaging.
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingConnectionStateChangedNotification
|
||||
FIR_SWIFT_NAME(MessagingConnectionStateChangedNotification);
|
||||
|
||||
/**
|
||||
* Notification sent when the FCM registration token has been refreshed. You can also
|
||||
* receive the FCM token via the FIRMessagingDelegate method
|
||||
* `-messaging:didRefreshRegistrationToken:`
|
||||
*/
|
||||
FOUNDATION_EXPORT NSString * __nonnull const FIRMessagingRegistrationTokenRefreshedNotification
|
||||
FIR_SWIFT_NAME(MessagingRegistrationTokenRefreshedNotification);
|
||||
#endif // defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
|
||||
/**
|
||||
* @enum FIRMessagingError
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, FIRMessagingError) {
|
||||
/// Unknown error.
|
||||
FIRMessagingErrorUnknown = 0,
|
||||
|
||||
/// FIRMessaging couldn't validate request from this client.
|
||||
FIRMessagingErrorAuthentication = 1,
|
||||
|
||||
/// InstanceID service cannot be accessed.
|
||||
FIRMessagingErrorNoAccess = 2,
|
||||
|
||||
/// Request to InstanceID backend timed out.
|
||||
FIRMessagingErrorTimeout = 3,
|
||||
|
||||
/// No network available to reach the servers.
|
||||
FIRMessagingErrorNetwork = 4,
|
||||
|
||||
/// Another similar operation in progress, bailing this one.
|
||||
FIRMessagingErrorOperationInProgress = 5,
|
||||
|
||||
/// Some parameters of the request were invalid.
|
||||
FIRMessagingErrorInvalidRequest = 7,
|
||||
} FIR_SWIFT_NAME(MessagingError);
|
||||
|
||||
/// Status for the downstream message received by the app.
|
||||
typedef NS_ENUM(NSInteger, FIRMessagingMessageStatus) {
|
||||
/// Unknown status.
|
||||
FIRMessagingMessageStatusUnknown,
|
||||
/// New downstream message received by the app.
|
||||
FIRMessagingMessageStatusNew,
|
||||
} FIR_SWIFT_NAME(MessagingMessageStatus);
|
||||
|
||||
/**
|
||||
* The APNS token type for the app. If the token type is set to `UNKNOWN`
|
||||
* Firebase Messaging will implicitly try to figure out what the actual token type
|
||||
* is from the provisioning profile.
|
||||
* Unless you really need to specify the type, you should use the `APNSToken`
|
||||
* property instead.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, FIRMessagingAPNSTokenType) {
|
||||
/// Unknown token type.
|
||||
FIRMessagingAPNSTokenTypeUnknown,
|
||||
/// Sandbox token type.
|
||||
FIRMessagingAPNSTokenTypeSandbox,
|
||||
/// Production token type.
|
||||
FIRMessagingAPNSTokenTypeProd,
|
||||
} FIR_SWIFT_NAME(MessagingAPNSTokenType);
|
||||
|
||||
/// Information about a downstream message received by the app.
|
||||
FIR_SWIFT_NAME(MessagingMessageInfo)
|
||||
@interface FIRMessagingMessageInfo : NSObject
|
||||
|
||||
/// The status of the downstream message
|
||||
@property(nonatomic, readonly, assign) FIRMessagingMessageStatus status;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* A remote data message received by the app via FCM (not just the APNs interface).
|
||||
*
|
||||
* This is only for devices running iOS 10 or above. To support devices running iOS 9 or below, use
|
||||
* the local and remote notifications handlers defined in UIApplicationDelegate protocol.
|
||||
*/
|
||||
FIR_SWIFT_NAME(MessagingRemoteMessage)
|
||||
@interface FIRMessagingRemoteMessage : NSObject
|
||||
|
||||
/// The downstream message received by the application.
|
||||
@property(nonatomic, readonly, strong, nonnull) NSDictionary *appData;
|
||||
@end
|
||||
|
||||
@class FIRMessaging;
|
||||
/**
|
||||
* A protocol to handle events from FCM for devices running iOS 10 or above.
|
||||
*
|
||||
* To support devices running iOS 9 or below, use the local and remote notifications handlers
|
||||
* defined in UIApplicationDelegate protocol.
|
||||
*/
|
||||
FIR_SWIFT_NAME(MessagingDelegate)
|
||||
@protocol FIRMessagingDelegate <NSObject>
|
||||
|
||||
/// This method will be called whenever FCM receives a new, default FCM token for your
|
||||
/// Firebase project's Sender ID.
|
||||
/// You can send this token to your application server to send notifications to this device.
|
||||
- (void)messaging:(nonnull FIRMessaging *)messaging
|
||||
didRefreshRegistrationToken:(nonnull NSString *)fcmToken
|
||||
FIR_SWIFT_NAME(messaging(_:didRefreshRegistrationToken:));
|
||||
|
||||
@optional
|
||||
/// This method is called on iOS 10 devices to handle data messages received via FCM through its
|
||||
/// direct channel (not via APNS). For iOS 9 and below, the FCM data message is delivered via the
|
||||
/// UIApplicationDelegate's -application:didReceiveRemoteNotification: method.
|
||||
- (void)messaging:(nonnull FIRMessaging *)messaging
|
||||
didReceiveMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage
|
||||
FIR_SWIFT_NAME(messaging(_:didReceive:))
|
||||
__IOS_AVAILABLE(10.0);
|
||||
|
||||
/// The callback to handle data message received via FCM for devices running iOS 10 or above.
|
||||
- (void)applicationReceivedRemoteMessage:(nonnull FIRMessagingRemoteMessage *)remoteMessage
|
||||
FIR_SWIFT_NAME(application(received:))
|
||||
__deprecated_msg("Use FIRMessagingDelegate’s -messaging:didReceiveMessage:");
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* Firebase Messaging lets you reliably deliver messages at no cost.
|
||||
*
|
||||
* To send or receive messages, the app must get a
|
||||
* registration token from FIRInstanceID. This token authorizes an
|
||||
* app server to send messages to an app instance.
|
||||
*
|
||||
* In order to receive FIRMessaging messages, declare `application:didReceiveRemoteNotification:`.
|
||||
*/
|
||||
FIR_SWIFT_NAME(Messaging)
|
||||
@interface FIRMessaging : NSObject
|
||||
|
||||
/**
|
||||
* Delegate to handle FCM token refreshes, and remote data messages received via FCM for devices
|
||||
* running iOS 10 or above.
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> delegate;
|
||||
|
||||
|
||||
/**
|
||||
* Delegate to handle remote data messages received via FCM for devices running iOS 10 or above.
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<FIRMessagingDelegate> remoteMessageDelegate
|
||||
__deprecated_msg("Use 'delegate' property");
|
||||
|
||||
/**
|
||||
* When set to `YES`, Firebase Messaging will automatically establish a socket-based, direct
|
||||
* channel to the FCM server. Enable this only if you are sending upstream messages or
|
||||
* receiving non-APNS, data-only messages in foregrounded apps.
|
||||
* Default is `NO`.
|
||||
*/
|
||||
@property(nonatomic) BOOL shouldEstablishDirectChannel;
|
||||
|
||||
/**
|
||||
* Returns `YES` if the direct channel to the FCM server is active, and `NO` otherwise.
|
||||
*/
|
||||
@property(nonatomic, readonly) BOOL isDirectChannelEstablished;
|
||||
|
||||
/**
|
||||
* FIRMessaging
|
||||
*
|
||||
* @return An instance of FIRMessaging.
|
||||
*/
|
||||
+ (nonnull instancetype)messaging FIR_SWIFT_NAME(messaging());
|
||||
|
||||
/**
|
||||
* Unavailable. Use +messaging instead.
|
||||
*/
|
||||
- (nonnull instancetype)init __attribute__((unavailable("Use +messaging instead.")));
|
||||
|
||||
#pragma mark - APNS
|
||||
|
||||
/**
|
||||
* This property is used to set the APNS Token received by the application delegate.
|
||||
*
|
||||
* FIRMessaging uses method swizzling to ensure that the APNS token is set
|
||||
* automatically. However, if you have disabled swizzling by setting
|
||||
* `FirebaseAppDelegateProxyEnabled` to `NO` in your app's
|
||||
* Info.plist, you should manually set the APNS token in your application
|
||||
* delegate's `-application:didRegisterForRemoteNotificationsWithDeviceToken:`
|
||||
* method.
|
||||
*
|
||||
* If you would like to set the type of the APNS token, rather than relying on
|
||||
* automatic detection, see: `-setAPNSToken:type:`.
|
||||
*/
|
||||
@property(nonatomic, copy, nullable) NSData *APNSToken FIR_SWIFT_NAME(apnsToken);
|
||||
|
||||
/**
|
||||
* Set APNS token for the application. This APNS token will be used to register
|
||||
* with Firebase Messaging using `FCMToken` or
|
||||
* `tokenWithAuthorizedEntity:scope:options:handler`.
|
||||
*
|
||||
* @param apnsToken The APNS token for the application.
|
||||
* @param type The type of APNS token. Debug builds should use
|
||||
* FIRMessagingAPNSTokenTypeSandbox. Alternatively, you can supply
|
||||
* FIRMessagingAPNSTokenTypeUnknown to have the type automatically
|
||||
* detected based on your provisioning profile.
|
||||
*/
|
||||
- (void)setAPNSToken:(nonnull NSData *)apnsToken type:(FIRMessagingAPNSTokenType)type;
|
||||
|
||||
#pragma mark - FCM Tokens
|
||||
|
||||
/**
|
||||
* The FCM token is used to identify this device so that FCM can send notifications to it.
|
||||
* It is associated with your APNS token when the APNS token is supplied, so that sending
|
||||
* messages to the FCM token will be delivered over APNS.
|
||||
*
|
||||
* The FCM token is sometimes refreshed automatically. You can be notified of these changes
|
||||
* via the FIRMessagingDelegate method `-message:didRefreshRegistrationToken:`, or by
|
||||
* listening for the `FIRMessagingRegistrationTokenRefreshedNotification` notification.
|
||||
*
|
||||
* Once you have an FCM token, you should send it to your application server, so it can use
|
||||
* the FCM token to send notifications to your device.
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) NSString *FCMToken FIR_SWIFT_NAME(fcmToken);
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves an FCM registration token for a particular Sender ID. This can be used to allow
|
||||
* multiple senders to send notifications to the same device. By providing a different Sender
|
||||
* ID than your default when fetching a token, you can create a new FCM token which you can
|
||||
* give to a different sender. Both tokens will deliver notifications to your device, and you
|
||||
* can revoke a token when you need to.
|
||||
*
|
||||
* This registration token is not cached by FIRMessaging. FIRMessaging should have an APNS
|
||||
* token set before calling this to ensure that notifications can be delivered via APNS using
|
||||
* this FCM token. You may re-retrieve the FCM token once you have the APNS token set, to
|
||||
* associate it with the FCM token. The default FCM token is automatically associated with
|
||||
* the APNS token, if the APNS token data is available.
|
||||
*
|
||||
* @param senderID The Sender ID for a particular Firebase project.
|
||||
* @param completion The completion handler to handle the token request.
|
||||
*/
|
||||
- (void)retrieveFCMTokenForSenderID:(nonnull NSString *)senderID
|
||||
completion:(nonnull FIRMessagingFCMTokenFetchCompletion)completion
|
||||
FIR_SWIFT_NAME(retrieveFCMToken(forSenderID:completion:));
|
||||
|
||||
|
||||
/**
|
||||
* Invalidates an FCM token for a particular Sender ID. That Sender ID cannot no longer send
|
||||
* notifications to that FCM token.
|
||||
*
|
||||
* @param senderID The senderID for a particular Firebase project.
|
||||
* @param completion The completion handler to handle the token deletion.
|
||||
*/
|
||||
- (void)deleteFCMTokenForSenderID:(nonnull NSString *)senderID
|
||||
completion:(nonnull FIRMessagingDeleteFCMTokenCompletion)completion
|
||||
FIR_SWIFT_NAME(deleteFCMToken(forSenderID:completion:));
|
||||
|
||||
|
||||
#pragma mark - Connect
|
||||
|
||||
/**
|
||||
* Create a FIRMessaging data connection which will be used to send the data notifications
|
||||
* sent by your server. It will also be used to send ACKS and other messages based
|
||||
* on the FIRMessaging ACKS and other messages based on the FIRMessaging protocol.
|
||||
*
|
||||
*
|
||||
* @param handler The handler to be invoked once the connection is established.
|
||||
* If the connection fails we invoke the handler with an
|
||||
* appropriate error code letting you know why it failed. At
|
||||
* the same time, FIRMessaging performs exponential backoff to retry
|
||||
* establishing a connection and invoke the handler when successful.
|
||||
*/
|
||||
- (void)connectWithCompletion:(nonnull FIRMessagingConnectCompletion)handler
|
||||
FIR_SWIFT_NAME(connect(handler:))
|
||||
__deprecated_msg("Please use the shouldEstablishDirectChannel property instead.");
|
||||
|
||||
/**
|
||||
* Disconnect the current FIRMessaging data connection. This stops any attempts to
|
||||
* connect to FIRMessaging. Calling this on an already disconnected client is a no-op.
|
||||
*
|
||||
* Call this before `teardown` when your app is going to the background.
|
||||
* Since the FIRMessaging connection won't be allowed to live when in the background, it is
|
||||
* prudent to close the connection.
|
||||
*/
|
||||
- (void)disconnect
|
||||
__deprecated_msg("Please use the shouldEstablishDirectChannel property instead.");
|
||||
|
||||
#pragma mark - Topics
|
||||
|
||||
/**
|
||||
* Asynchronously subscribes to a topic.
|
||||
*
|
||||
* @param topic The name of the topic, for example, @"sports".
|
||||
*/
|
||||
- (void)subscribeToTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(subscribe(toTopic:));
|
||||
|
||||
/**
|
||||
* Asynchronously unsubscribe from a topic.
|
||||
*
|
||||
* @param topic The name of the topic, for example @"sports".
|
||||
*/
|
||||
- (void)unsubscribeFromTopic:(nonnull NSString *)topic FIR_SWIFT_NAME(unsubscribe(fromTopic:));
|
||||
|
||||
#pragma mark - Upstream
|
||||
|
||||
/**
|
||||
* Sends an upstream ("device to cloud") message.
|
||||
*
|
||||
* The message is queued if we don't have an active connection.
|
||||
* You can only use the upstream feature if your FCM implementation
|
||||
* uses the XMPP server protocol.
|
||||
*
|
||||
* @param message Key/Value pairs to be sent. Values must be String, any
|
||||
* other type will be ignored.
|
||||
* @param receiver A string identifying the receiver of the message. For FCM
|
||||
* project IDs the value is `SENDER_ID@gcm.googleapis.com`.
|
||||
* @param messageID The ID of the message. This is generated by the application. It
|
||||
* must be unique for each message generated by this application.
|
||||
* It allows error callbacks and debugging, to uniquely identify
|
||||
* each message.
|
||||
* @param ttl The time to live for the message. In case we aren't able to
|
||||
* send the message before the TTL expires we will send you a
|
||||
* callback. If 0, we'll attempt to send immediately and return
|
||||
* an error if we're not connected. Otherwise, the message will
|
||||
* be queued. As for server-side messages, we don't return an error
|
||||
* if the message has been dropped because of TTL; this can happen
|
||||
* on the server side, and it would require extra communication.
|
||||
*/
|
||||
- (void)sendMessage:(nonnull NSDictionary *)message
|
||||
to:(nonnull NSString *)receiver
|
||||
withMessageID:(nonnull NSString *)messageID
|
||||
timeToLive:(int64_t)ttl;
|
||||
|
||||
#pragma mark - Analytics
|
||||
|
||||
/**
|
||||
* Use this to track message delivery and analytics for messages, typically
|
||||
* when you receive a notification in `application:didReceiveRemoteNotification:`.
|
||||
* However, you only need to call this if you set the `FirebaseAppDelegateProxyEnabled`
|
||||
* flag to `NO` in your Info.plist. If `FirebaseAppDelegateProxyEnabled` is either missing
|
||||
* or set to `YES` in your Info.plist, the library will call this automatically.
|
||||
*
|
||||
* @param message The downstream message received by the application.
|
||||
*
|
||||
* @return Information about the downstream message.
|
||||
*/
|
||||
- (nonnull FIRMessagingMessageInfo *)appDidReceiveMessage:(nonnull NSDictionary *)message;
|
||||
|
||||
@end
|
|
@ -0,0 +1 @@
|
|||
#import "FIRMessaging.h"
|
|
@ -0,0 +1,6 @@
|
|||
framework module FirebaseMessaging {
|
||||
umbrella header "FirebaseMessaging.h"
|
||||
export *
|
||||
module * { export *}
|
||||
link "sqlite3"
|
||||
link "z"}
|
Binary file not shown.
|
@ -30,6 +30,8 @@
|
|||
<false/>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true/>
|
||||
<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
|
||||
<true/>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true/>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
|
@ -37,4 +39,4 @@
|
|||
<key>DATABASE_URL</key>
|
||||
<string>https://status-react-app.firebaseio.com</string>
|
||||
</dict>
|
||||
</plist>
|
||||
</plist>
|
||||
|
|
Binary file not shown.
|
@ -3,11 +3,11 @@
|
|||
|
||||
# Need to explicitly declare this avoid downgrade
|
||||
# https://github.com/evollu/react-native-fcm/issues/420
|
||||
pod 'Firebase/Core', '4.0.0'
|
||||
#pod 'Firebase/Core', '4.0.0'
|
||||
|
||||
# react-native-fcm should support FB 4, but latest breaks builds, hence older version
|
||||
# TODO(oskarth): Awaiting RN 0.47 upgrade, and/or PN working on iOS device before deciding which version to use
|
||||
pod 'Firebase/Messaging'
|
||||
#pod 'Firebase/Messaging'
|
||||
#pod 'Firebase/Messaging', '3.17.0'
|
||||
|
||||
target 'StatusIm' do
|
||||
|
|
|
@ -1,47 +1,12 @@
|
|||
PODS:
|
||||
- Firebase/Core (4.0.0):
|
||||
- FirebaseAnalytics (= 4.0.0)
|
||||
- FirebaseCore (= 4.0.0)
|
||||
- Firebase/Messaging (4.0.0):
|
||||
- Firebase/Core
|
||||
- FirebaseMessaging (= 2.0.0)
|
||||
- FirebaseAnalytics (4.0.0):
|
||||
- FirebaseCore (~> 4.0)
|
||||
- FirebaseInstanceID (~> 2.0)
|
||||
- GoogleToolboxForMac/NSData+zlib (~> 2.1)
|
||||
- FirebaseCore (4.0.0):
|
||||
- GoogleToolboxForMac/NSData+zlib (~> 2.1)
|
||||
- FirebaseInstanceID (2.0.0):
|
||||
- FirebaseCore (~> 4.0)
|
||||
- FirebaseMessaging (2.0.0):
|
||||
- FirebaseAnalytics (~> 4.0)
|
||||
- FirebaseCore (~> 4.0)
|
||||
- FirebaseInstanceID (~> 2.0)
|
||||
- GoogleToolboxForMac/Logger (~> 2.1)
|
||||
- Protobuf (~> 3.1)
|
||||
- GoogleToolboxForMac/Defines (2.1.1)
|
||||
- GoogleToolboxForMac/Logger (2.1.1):
|
||||
- GoogleToolboxForMac/Defines (= 2.1.1)
|
||||
- GoogleToolboxForMac/NSData+zlib (2.1.1):
|
||||
- GoogleToolboxForMac/Defines (= 2.1.1)
|
||||
- Instabug (7.2.6)
|
||||
- Protobuf (3.3.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- Firebase/Core (= 4.0.0)
|
||||
- Firebase/Messaging
|
||||
- Instabug (~> 7.0)
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Firebase: 284eea779b73fdff309791817da7c68bff8dd572
|
||||
FirebaseAnalytics: 6f08e746f7d66f5452931bc2e822b5df9c66b64a
|
||||
FirebaseCore: 85ad466044c2f013cdb167f85d426d15b128114a
|
||||
FirebaseInstanceID: 9fbf536668f4d3f0880e7438456dabd1376e294b
|
||||
FirebaseMessaging: 227406c05b0dc9290702d2e9f18ab5528f0c2cf2
|
||||
GoogleToolboxForMac: 8e329f1b599f2512c6b10676d45736bcc2cbbeb0
|
||||
Instabug: 49d4fbf1bf14e2f9074dfb7774ca5611bae993b4
|
||||
Protobuf: d582fecf68201eac3d79ed61369ef45734394b9c
|
||||
|
||||
PODFILE CHECKSUM: d05403e3fce258b6985bd3b614ffe02a0e01b9f7
|
||||
PODFILE CHECKSUM: c11933657144d38f2d6b795ee22feae483f90823
|
||||
|
||||
COCOAPODS: 1.3.1
|
||||
|
|
Binary file not shown.
|
@ -44,6 +44,14 @@
|
|||
82E689BAF9FB43C8AC6FF1CA /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CEB0E2659D1A4F5FA842057A /* EvilIcons.ttf */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
8E55E6877F950B81C8D711C5 /* libPods-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 101A4045637A2ADF57D28EF5 /* libPods-StatusIm.a */; };
|
||||
925C1F471F7B73B20063DFA0 /* FirebaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F401F7B73B20063DFA0 /* FirebaseCore.framework */; };
|
||||
925C1F481F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F411F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework */; };
|
||||
925C1F491F7B73B20063DFA0 /* FirebaseInstanceID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F421F7B73B20063DFA0 /* FirebaseInstanceID.framework */; };
|
||||
925C1F4A1F7B73B20063DFA0 /* FirebaseNanoPB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F431F7B73B20063DFA0 /* FirebaseNanoPB.framework */; };
|
||||
925C1F4B1F7B73B20063DFA0 /* GoogleToolboxForMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F441F7B73B20063DFA0 /* GoogleToolboxForMac.framework */; };
|
||||
925C1F4C1F7B73B20063DFA0 /* nanopb.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F451F7B73B20063DFA0 /* nanopb.framework */; };
|
||||
925C1F811F7B73C00063DFA0 /* FirebaseMessaging.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F7F1F7B73C00063DFA0 /* FirebaseMessaging.framework */; };
|
||||
925C1F821F7B73C00063DFA0 /* Protobuf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 925C1F801F7B73C00063DFA0 /* Protobuf.framework */; };
|
||||
92A0DF7D1F4DE3A4002051BC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 92A0DF491F4DE3A0002051BC /* GoogleService-Info.plist */; };
|
||||
9E0B01A11DDC5DA7002B0359 /* SF-UI-Text-Light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 9E0B01A01DDC5DA7002B0359 /* SF-UI-Text-Light.otf */; };
|
||||
9E3AB6D01D87DB2B008846B4 /* libReact-Native-Webview-Bridge.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E3AB6C61D87DA2B008846B4 /* libReact-Native-Webview-Bridge.a */; };
|
||||
|
@ -525,6 +533,14 @@
|
|||
8AE71EE8751F4652B13BFE83 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
|
||||
8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = StatusIm.entitlements; path = StatusIm/StatusIm.entitlements; sourceTree = "<group>"; };
|
||||
925C1F401F7B73B20063DFA0 /* FirebaseCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCore.framework; sourceTree = "<group>"; };
|
||||
925C1F411F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseCoreDiagnostics.framework; sourceTree = "<group>"; };
|
||||
925C1F421F7B73B20063DFA0 /* FirebaseInstanceID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseInstanceID.framework; sourceTree = "<group>"; };
|
||||
925C1F431F7B73B20063DFA0 /* FirebaseNanoPB.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseNanoPB.framework; sourceTree = "<group>"; };
|
||||
925C1F441F7B73B20063DFA0 /* GoogleToolboxForMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GoogleToolboxForMac.framework; sourceTree = "<group>"; };
|
||||
925C1F451F7B73B20063DFA0 /* nanopb.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = nanopb.framework; sourceTree = "<group>"; };
|
||||
925C1F7F1F7B73C00063DFA0 /* FirebaseMessaging.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = FirebaseMessaging.framework; sourceTree = "<group>"; };
|
||||
925C1F801F7B73C00063DFA0 /* Protobuf.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Protobuf.framework; sourceTree = "<group>"; };
|
||||
92A0DF491F4DE3A0002051BC /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
9E0B01A01DDC5DA7002B0359 /* SF-UI-Text-Light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Text-Light.otf"; sourceTree = "<group>"; };
|
||||
9E3AB6B21D87DA2A008846B4 /* React-Native-Webview-Bridge.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-Native-Webview-Bridge.xcodeproj"; path = "../node_modules/react-native-webview-bridge/ios/React-Native-Webview-Bridge.xcodeproj"; sourceTree = "<group>"; };
|
||||
|
@ -576,15 +592,20 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B2DEA0D01E49E33300FA28D6 /* libRCTHttpServer.a in Frameworks */,
|
||||
925C1F481F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework in Frameworks */,
|
||||
9EE89E271E03FCB7007D3C25 /* libSplashScreen.a in Frameworks */,
|
||||
925C1F811F7B73C00063DFA0 /* FirebaseMessaging.framework in Frameworks */,
|
||||
925C1F4A1F7B73B20063DFA0 /* FirebaseNanoPB.framework in Frameworks */,
|
||||
B2A5F45C1DEC36BB00174F4D /* libRCTAnimation.a in Frameworks */,
|
||||
B24FC7FF1DE7195F00D694FF /* MessageUI.framework in Frameworks */,
|
||||
B24FC7FD1DE7195700D694FF /* Social.framework in Frameworks */,
|
||||
925C1F4B1F7B73B20063DFA0 /* GoogleToolboxForMac.framework in Frameworks */,
|
||||
9EE89E2D1E03FD9F007D3C25 /* libimageCropPicker.a in Frameworks */,
|
||||
9E3AB6D01D87DB2B008846B4 /* libReact-Native-Webview-Bridge.a in Frameworks */,
|
||||
20B6B6841D92C42600CC5C6A /* RSKImageCropper.framework in Frameworks */,
|
||||
CE4E31B31D8695250033ED64 /* Statusgo.framework in Frameworks */,
|
||||
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */,
|
||||
925C1F471F7B73B20063DFA0 /* FirebaseCore.framework in Frameworks */,
|
||||
20B6B6871D92C42600CC5C6A /* QBImagePicker.framework in Frameworks */,
|
||||
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
||||
|
@ -592,6 +613,8 @@
|
|||
00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */,
|
||||
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */,
|
||||
00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */,
|
||||
925C1F821F7B73C00063DFA0 /* Protobuf.framework in Frameworks */,
|
||||
925C1F4C1F7B73B20063DFA0 /* nanopb.framework in Frameworks */,
|
||||
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */,
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */,
|
||||
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
|
||||
|
@ -612,6 +635,7 @@
|
|||
9E54D6001F17A5DB009F0C16 /* libTestFairy.a in Frameworks */,
|
||||
5F8585D411844E5981B94F40 /* libRNInstabug.a in Frameworks */,
|
||||
8E55E6877F950B81C8D711C5 /* libPods-StatusIm.a in Frameworks */,
|
||||
925C1F491F7B73B20063DFA0 /* FirebaseInstanceID.framework in Frameworks */,
|
||||
9EE470511ED0079E0048FD10 /* Mapbox.framework in Frameworks */,
|
||||
9EE470541ED007E10048FD10 /* libRCTMapboxGL.a in Frameworks */,
|
||||
9EF0836B1F3B53AB00876A8F /* libReactNativeConfig.a in Frameworks */,
|
||||
|
@ -1030,6 +1054,14 @@
|
|||
A97BA941B2FB44B4B66EE6D3 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
925C1F7F1F7B73C00063DFA0 /* FirebaseMessaging.framework */,
|
||||
925C1F801F7B73C00063DFA0 /* Protobuf.framework */,
|
||||
925C1F401F7B73B20063DFA0 /* FirebaseCore.framework */,
|
||||
925C1F411F7B73B20063DFA0 /* FirebaseCoreDiagnostics.framework */,
|
||||
925C1F421F7B73B20063DFA0 /* FirebaseInstanceID.framework */,
|
||||
925C1F431F7B73B20063DFA0 /* FirebaseNanoPB.framework */,
|
||||
925C1F441F7B73B20063DFA0 /* GoogleToolboxForMac.framework */,
|
||||
925C1F451F7B73B20063DFA0 /* nanopb.framework */,
|
||||
B24FC7FE1DE7195F00D694FF /* MessageUI.framework */,
|
||||
B24FC7FC1DE7195700D694FF /* Social.framework */,
|
||||
20A5C96E1D92716C002C4965 /* QBImagePicker.framework */,
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue