Commit 59d839f6 authored by Libin Lu's avatar Libin Lu

pod and example

parent cecf7a60
......@@ -13,6 +13,8 @@ import {
Clipboard
} from 'react-native';
import FCM from "react-native-fcm";
import PushController from "./PushController";
import firebaseClient from "./FirebaseClient";
......@@ -26,6 +28,15 @@ export default class App extends Component {
}
}
showLocalNotification() {
FCM.presentLocalNotification({
title: 'Hello',
body: 'Test Notification',
priority: "high",
show_in_foreground: true
});
}
render() {
let { token, tokenCopyFeedback } = this.state;
......@@ -57,6 +68,10 @@ export default class App extends Component {
<TouchableOpacity onPress={() => firebaseClient.sendNotificationWithData(token)} style={styles.button}>
<Text style={styles.buttonText}>Send Notification With Data</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.showLocalNotification()} style={styles.button}>
<Text style={styles.buttonText}>Send Local Notification</Text>
</TouchableOpacity>
</View>
);
}
......
......@@ -74,8 +74,7 @@ export default class PushController extends Component {
body: notif.body,
priority: "high",
click_action: notif.click_action,
show_in_foreground: true,
local: true
show_in_foreground: true
});
}
......
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Messaging'
target 'SimpleFcmClient' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for SimpleFcmClient
target 'SimpleFcmClientTests' do
inherit! :search_paths
# Pods for testing
end
end
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)
- Protobuf (3.3.0)
DEPENDENCIES:
- Firebase/Messaging
SPEC CHECKSUMS:
Firebase: 284eea779b73fdff309791817da7c68bff8dd572
FirebaseAnalytics: 6f08e746f7d66f5452931bc2e822b5df9c66b64a
FirebaseCore: 85ad466044c2f013cdb167f85d426d15b128114a
FirebaseInstanceID: 9fbf536668f4d3f0880e7438456dabd1376e294b
FirebaseMessaging: 227406c05b0dc9290702d2e9f18ab5528f0c2cf2
GoogleToolboxForMac: 8e329f1b599f2512c6b10676d45736bcc2cbbeb0
Protobuf: d582fecf68201eac3d79ed61369ef45734394b9c
PODFILE CHECKSUM: 31f07bb14b00eef65c77cff51721f530ad6eb826
COCOAPODS: 1.2.1
module Firebase {
header "Firebase.h"
export *
header "Firebase.h"
}
\ No newline at end of file
# Firebase APIs for iOS
Simplify your iOS development, grow your user base, and monetize more
effectively with Firebase services.
Much more information can be found at [https://firebase.google.com](https://firebase.google.com).
## Install a Firebase SDK using CocoaPods
Firebase distributes several iOS specific APIs and SDKs via CocoaPods.
You can install the CocoaPods tool on OS X by running the following command from
the terminal. Detailed information is available in the [Getting Started
guide](https://guides.cocoapods.org/using/getting-started.html#getting-started).
```
$ sudo gem install cocoapods
```
## Try out an SDK
You can try any of the SDKs with `pod try`. Run the following command and select
the SDK you are interested in when prompted:
```
$ pod try Firebase
```
Note that some SDKs may require credentials. More information is available in
the SDK-specific documentation at [https://firebase.google.com/docs/](https://firebase.google.com/docs/).
## Add a Firebase SDK to your iOS app
CocoaPods is used to install and manage dependencies in existing Xcode projects.
1. Create an Xcode project, and save it to your local machine.
2. Create a file named `Podfile` in your project directory. This file defines
your project's dependencies, and is commonly referred to as a Podspec.
3. Open `Podfile`, and add your dependencies. A simple Podspec is shown here:
```
platform :ios, '7.0'
pod 'Firebase'
```
4. Save the file.
5. Open a terminal and `cd` to the directory containing the Podfile.
```
$ cd <path-to-project>/project/
```
6. Run the `pod install` command. This will install the SDKs specified in the
Podspec, along with any dependencies they may have.
```
$ pod install
```
7. Open your app's `.xcworkspace` file to launch Xcode.
Use this file for all development on your app.
8. You can also install other Firebase SDKs by adding the subspecs in the
Podfile.
```
pod 'Firebase/AdMob'
pod 'Firebase/Analytics'
pod 'Firebase/AppIndexing'
pod 'Firebase/Auth'
pod 'Firebase/Crash'
pod 'Firebase/Database'
pod 'Firebase/DynamicLinks'
pod 'Firebase/Invites'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Storage'
```
......@@ -2,6 +2,8 @@
#import "FIRAnalytics.h"
NS_ASSUME_NONNULL_BEGIN
/**
* Provides App Delegate handlers to be used in your App Delegate.
*
......@@ -29,14 +31,14 @@
* updated and a new snapshot can be taken.
*/
+ (void)handleEventsForBackgroundURLSession:(NSString *)identifier
completionHandler:(void (^)(void))completionHandler;
completionHandler:(nullable void (^)(void))completionHandler;
/**
* Handles the event when the app is launched by a URL.
*
* Call this method from [UIApplicationDelegate application:openURL:options:] (on iOS 9.0 and
* above), or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] (on iOS 8.x
* and below) in your app.
* Call this method from [UIApplicationDelegate application:openURL:options:] &#40;on iOS 9.0 and
* above&#41;, or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] &#40;on
* iOS 8.x and below&#41; in your app.
*
* @param url The URL resource to open. This resource can be a network resource or a file.
*/
......@@ -55,3 +57,6 @@
+ (void)handleUserActivity:(id)userActivity;
@end
NS_ASSUME_NONNULL_END
#import <Foundation/Foundation.h>
#import "FIRAnalyticsSwiftNameSupport.h"
#import "FIREventNames.h"
#import "FIRParameterNames.h"
#import "FIRUserPropertyNames.h"
NS_ASSUME_NONNULL_BEGIN
/// The top level Firebase Analytics singleton that provides methods for logging events and setting
/// user properties. See <a href="http://goo.gl/gz8SLz">the developer guides</a> for general
/// information on using Firebase Analytics in your apps.
FIR_SWIFT_NAME(Analytics)
@interface FIRAnalytics : NSObject
/// Logs an app event. The event can have up to 25 parameters. Events with the same name must have
......@@ -15,6 +19,12 @@
///
/// The following event names are reserved and cannot be used:
/// <ul>
/// <li>ad_activeview</li>
/// <li>ad_click</li>
/// <li>ad_exposure</li>
/// <li>ad_impression</li>
/// <li>ad_query</li>
/// <li>adunit_exposure</li>
/// <li>app_clear_data</li>
/// <li>app_remove</li>
/// <li>app_update</li>
......@@ -26,23 +36,26 @@
/// <li>notification_open</li>
/// <li>notification_receive</li>
/// <li>os_update</li>
/// <li>screen_view</li>
/// <li>session_start</li>
/// <li>user_engagement</li>
/// </ul>
///
/// @param name The name of the event. Should contain 1 to 40 alphanumeric characters or
/// underscores. The name must start with an alphabetic character. Some event names are
/// reserved. See FIREventNames.h for the list of reserved event names. The "firebase_" prefix
/// is reserved and should not be used. Note that event names are case-sensitive and that
/// logging two events whose names differ only in case will result in two distinct events.
/// reserved. See FIREventNames.h for the list of reserved event names. The "firebase_",
/// "google_", and "ga_" prefixes are reserved and should not be used. Note that event names are
/// case-sensitive and that logging two events whose names differ only in case will result in
/// two distinct events.
/// @param parameters The dictionary of event parameters. Passing nil indicates that the event has
/// no parameters. Parameter names can be up to 40 characters long and must start with an
/// alphabetic character and contain only alphanumeric characters and underscores. Only NSString
/// and NSNumber (signed 64-bit integer and 64-bit floating-point number) parameter types are
/// supported. NSString parameter values can be up to 100 characters long. The "firebase_"
/// prefix is reserved and should not be used for parameter names.
+ (void)logEventWithName:(nonnull NSString *)name
parameters:(nullable NSDictionary<NSString *, NSObject *> *)parameters;
/// supported. NSString parameter values can be up to 100 characters long. The "firebase_",
/// "google_", and "ga_" prefixes are reserved and should not be used for parameter names.
+ (void)logEventWithName:(NSString *)name
parameters:(nullable NSDictionary<NSString *, id> *)parameters
FIR_SWIFT_NAME(logEvent(_:parameters:));
/// Sets a user property to a given value. Up to 25 user property names are supported. Once set,
/// user property values persist throughout the app lifecycle and across sessions.
......@@ -57,9 +70,10 @@
/// @param value The value of the user property. Values can be up to 36 characters long. Setting the
/// value to nil removes the user property.
/// @param name The name of the user property to set. Should contain 1 to 24 alphanumeric characters
/// or underscores and must start with an alphabetic character. The "firebase_" prefix is
/// reserved and should not be used for user property names.
+ (void)setUserPropertyString:(nullable NSString *)value forName:(nonnull NSString *)name;
/// or underscores and must start with an alphabetic character. The "firebase_", "google_", and
/// "ga_" prefixes are reserved and should not be used for user property names.
+ (void)setUserPropertyString:(nullable NSString *)value forName:(NSString *)name
FIR_SWIFT_NAME(setUserProperty(_:forName:));
/// Sets the user ID property. This feature must be used in accordance with
/// <a href="https://www.google.com/policies/privacy">Google's Privacy Policy</a>
......@@ -92,4 +106,9 @@
+ (void)setScreenName:(nullable NSString *)screenName
screenClass:(nullable NSString *)screenClassOverride;
/// The unique ID for this instance of the application.
+ (NSString *)appInstanceID;
@end
NS_ASSUME_NONNULL_END
#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
......@@ -7,7 +7,11 @@
/// unique UserProperties per app, and you can use the name and value of your choosing for each one.
/// UserProperty names can be up to 24 characters long, may only contain alphanumeric characters and
/// underscores ("_"), and must start with an alphabetic character. UserProperty values can be up to
/// 36 characters long. The "firebase_" prefix is reserved and should not be used.
/// 36 characters long. The "firebase_", "google_", and "ga_" prefixes are reserved and should not
/// be used.
#import "FIRAnalyticsSwiftNameSupport.h"
/// The method used to sign in. For example, "google", "facebook" or "twitter".
static NSString *const kFIRUserPropertySignUpMethod = @"sign_up_method";
static NSString *const kFIRUserPropertySignUpMethod
FIR_SWIFT_NAME(AnalyticsUserPropertySignUpMethod) = @"sign_up_method";
// Generated umbrella header for FirebaseAnalytics.
#import "FIRAnalytics+AppDelegate.h"
#import "FIRAnalytics.h"
#import "FIRAnalyticsConfiguration.h"
#import "FIRApp.h"
#import "FIRConfiguration.h"
#import "FIREventNames.h"
#import "FIROptions.h"
#import "FIRAnalytics+AppDelegate.h"
#import "FIRAnalytics.h"
#import "FIRAnalyticsSwiftNameSupport.h"
#import "FIREventNames.h"
#import "FIRParameterNames.h"
#import "FIRUserPropertyNames.h"
framework module FirebaseAnalytics {
umbrella header "FirebaseAnalytics.h"
export *
module * { export *}
link "sqlite3"
link "z"
link framework "UIKit"
}
\ No newline at end of file
/*
* 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;
+ (FIRAnalyticsConfiguration *)sharedInstance FIR_SWIFT_NAME(shared());
/**
* Sets the minimum engagement time in seconds required to start a new session. The default value
......@@ -28,11 +49,6 @@
*/
- (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled;
/**
* Deprecated. Sets whether measurement and reporting are enabled for this app on this device. By
* default they are enabled.
*/
- (void)setIsEnabled:(BOOL)isEnabled
DEPRECATED_MSG_ATTRIBUTE("Use setAnalyticsCollectionEnabled: instead.");
@end
NS_ASSUME_NONNULL_END
/*
* 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 <UIKit/UIKit.h>
#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);
typedef void (^FIRAppVoidBoolCallback)(BOOL success) FIR_SWIFT_NAME(FirebaseAppVoidBoolCallback);
/**
* The entry point of Firebase SDKs.
......@@ -22,7 +40,11 @@ typedef void (^FIRAppVoidBoolCallback)(BOOL success);
* 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
/**
......@@ -39,7 +61,7 @@ typedef void (^FIRAppVoidBoolCallback)(BOOL success);
*
* @param options The Firebase application options used to configure the service.
*/
+ (void)configureWithOptions:(FIROptions *)options;
+ (void)configureWithOptions:(FIROptions *)options FIR_SWIFT_NAME(configure(options:));
/**
* Configures a Firebase app with the given name and options. Raises an exception if any
......@@ -49,24 +71,33 @@ typedef void (^FIRAppVoidBoolCallback)(BOOL success);
Letters, Numbers and Underscore.
* @param options The Firebase application options used to configure the services.
*/
+ (void)configureWithName:(NSString *)name options:(FIROptions *)options;
+ (void)configureWithName:(NSString *)name options:(FIROptions *)options
FIR_SWIFT_NAME(configure(name:options:));
/**
* Returns the default app, or nil if the default app does not exist.
*/
+ (nullable FIRApp *)defaultApp NS_SWIFT_NAME(defaultApp());
+ (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;
+ (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 *)allApps;
+ (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
......@@ -86,9 +117,9 @@ typedef void (^FIRAppVoidBoolCallback)(BOOL success);
@property(nonatomic, copy, readonly) NSString *name;
/**
* Gets the options for this app.
* Gets a copy of the options for this app. These are non-modifiable.
*/
@property(nonatomic, readonly) FIROptions *options;
@property(nonatomic, copy, readonly) FIROptions *options;
@end
......
/*
* 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.
......@@ -19,22 +37,44 @@ typedef NS_ENUM(NSInteger, FIRLogLevel) {
/** Max */
kFIRLogLevelMax __deprecated = kFIRLogLevelAssert
} DEPRECATED_MSG_ATTRIBUTE(
"Use -FIRDebugEnabled and -FIRDebugDisabled. See FIRApp.h for more details.");
"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;
+ (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. See FIRApp.h for more details.");
"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
/*
* 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
/*
* 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) {
FIRLoggerLevelError = 3 /*ASL_LEVEL_ERR*/,
FIRLoggerLevelWarning = 4 /*ASL_LEVEL_WARNING*/,
FIRLoggerLevelNotice = 5 /*ASL_LEVEL_NOTICE*/,
FIRLoggerLevelInfo = 6 /*ASL_LEVEL_INFO*/,
FIRLoggerLevelDebug = 7 /*ASL_LEVEL_DEBUG*/,
FIRLoggerLevelMin = FIRLoggerLevelError,
FIRLoggerLevelMax = FIRLoggerLevelDebug
} FIR_SWIFT_NAME(FirebaseLoggerLevel);
/*
* 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.
*/
+ (FIROptions *)defaultOptions;
+ (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, readonly, copy) NSString *APIKey;
@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, readonly, copy) NSString *clientID;
@property(nonatomic, copy, nullable) NSString *clientID;
/**
* The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics.
*/
@property(nonatomic, readonly, copy) NSString *trackingID;
@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, readonly, copy) NSString *GCMSenderID;
@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, readonly, copy) NSString *androidClientID;
@property(nonatomic, copy, nullable) NSString *androidClientID;
/**
* The Google App ID that is used to uniquely identify an instance of an app.
*/
@property(nonatomic, readonly, copy) NSString *googleAppID;
@property(nonatomic, copy) NSString *googleAppID;
/**
* The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com".
*/
@property(nonatomic, readonly, copy) NSString *databaseURL;
@property(nonatomic, copy, nullable) NSString *databaseURL;
/**
* The URL scheme used to set up Durable Deep Link service.
*/
@property(nonatomic, readwrite, copy) NSString *deepLinkURLScheme;
@property(nonatomic, copy, nullable) NSString *deepLinkURLScheme;
/**
* The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com".
*/
@property(nonatomic, readonly, copy) NSString *storageBucket;
@property(nonatomic, copy, nullable) NSString *storageBucket;
/**
* Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID
......@@ -72,7 +104,9 @@
androidClientID:(NSString *)androidClientID
databaseURL:(NSString *)databaseURL
storageBucket:(NSString *)storageBucket
deepLinkURLScheme:(NSString *)deepLinkURLScheme;
deepLinkURLScheme:(NSString *)deepLinkURLScheme
DEPRECATED_MSG_ATTRIBUTE("Use `-[FIROptions initWithGoogleAppID:gcmSenderID:]` and "
"properties instead.");
/**
* Initializes a customized instance of FIROptions from the file at the given plist file path.
......@@ -82,6 +116,16 @@
* FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
* Returns nil if the plist file does not exist or is invalid.
*/
- (instancetype)initWithContentsOfFile:(NSString *)plistPath;
- (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.
*/
- (instancetype)initWithGoogleAppID:(NSString *)googleAppID
GCMSenderID:(NSString *)GCMSenderID
FIR_SWIFT_NAME(init(googleAppID:gcmSenderID:));
@end
NS_ASSUME_NONNULL_END
// Generated umbrella header for FirebaseCore.
#import "FIRAnalyticsConfiguration.h"
#import "FIRApp.h"
#import "FIRConfiguration.h"
#import "FIRCoreSwiftNameSupport.h"
#import "FIRLoggerLevel.h"
#import "FIROptions.h"
framework module FirebaseCore {
export *
umbrella header "FirebaseCore.h"
header "FIRAnalyticsConfiguration.h"
header "FIRApp.h"
header "FIRConfiguration.h"
header "FIROptions.h"
link framework "SystemConfiguration"
link "c++"
export *
module * { export *}
link "z"
}
\ No newline at end of file
framework module FirebaseCoreDiagnostics {
export *
module * { export *}
link "z"
}
\ No newline at end of file
# 2017-05-08 -- v2.0.0
- Introduced an improved interface for Swift 3 developers
- Deprecated some methods and properties after moving their logic to the
Firebase Cloud Messaging SDK
- Fixed an intermittent stability issue when a debug build of an app was
replaced with a release build of the same version
- Removed swizzling logic that was sometimes resulting in developers receiving
a validation notice about enabling push notification capabilities, even though
they weren't using push notifications
- Fixed a notification that would sometimes fire twice in quick succession
during the first run of an app
# 2017-03-31 -- v1.0.10
- Improvements to token-fetching logic
- Fixed some warnings in Instance ID
- Improved error messages if Instance ID couldn't be initialized properly
- Improvements to console logging
# 2017-01-31 -- v1.0.9
- Removed an error being mistakenly logged to the console.
# 2016-07-06 -- v1.0.8
- Don't store InstanceID plists in Documents folder.
# 2016-06-19 -- v1.0.7
- Fix remote-notifications warning on app submission.
# 2016-05-16 -- v1.0.6
- Fix CocoaPod linter issues for InstanceID pod.
# 2016-05-13 -- v1.0.5
- Fix Authorization errors for InstanceID tokens.
# 2016-05-11 -- v1.0.4
- Reduce wait for InstanceID token during parallel requests.
# 2016-04-18 -- v1.0.3
- Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*.
- Fix incessant Keychain errors while accessing InstanceID.
- Fix max retries for fetching IID token.
# 2016-04-18 -- v1.0.2
- Register for remote notifications on iOS8+ in the SDK itself.
#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;
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
......@@ -15,7 +38,9 @@ FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDScopeFirebaseMessagin
* 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;
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
......@@ -29,7 +54,8 @@ FOUNDATION_EXPORT NSString * __nonnull const kFIRInstanceIDTokenRefreshNotificat
* failed. See the error codes below for a more detailed
* description.
*/
typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error);
typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError * __nullable error)
FIR_SWIFT_NAME(InstanceIDTokenHandler);
/**
......@@ -41,7 +67,8 @@ typedef void(^FIRInstanceIDTokenHandler)( NSString * __nullable token, NSError *
* @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);
typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable error)
FIR_SWIFT_NAME(InstanceIDDeleteTokenHandler);
/**
* @related FIRInstanceID
......@@ -53,7 +80,8 @@ typedef void(^FIRInstanceIDDeleteTokenHandler)(NSError * __nullable 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);
typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __nullable error)
FIR_SWIFT_NAME(InstanceIDHandler);
/**
* @related FIRInstanceID
......@@ -64,7 +92,8 @@ typedef void(^FIRInstanceIDHandler)(NSString * __nullable identity, NSError * __
* @param error The error if deleting the identity and all the tokens associated with
* it fails else nil.
*/
typedef void(^FIRInstanceIDDeleteHandler)(NSError * __nullable error);
typedef void(^FIRInstanceIDDeleteHandler)(NSError * __nullable error)
FIR_SWIFT_NAME(InstanceIDDeleteHandler);
/**
* @enum FIRInstanceIDError
......@@ -93,7 +122,7 @@ typedef NS_ENUM(NSUInteger, FIRInstanceIDError) {
/// 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`
......@@ -107,16 +136,17 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
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 a GCM message).
* 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 with a `com.firebase.iid.token-refresh`
* notification.
* 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.
......@@ -124,6 +154,7 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
* services associated with the app, call
* `[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]`.
*/
FIR_SWIFT_NAME(InstanceID)
@interface FIRInstanceID : NSObject
/**
......@@ -131,7 +162,7 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
*
* @return A shared instance of FIRInstanceID.
*/
+ (nonnull instancetype)instanceID NS_SWIFT_NAME(instanceID());
+ (nonnull instancetype)instanceID FIR_SWIFT_NAME(instanceID());
/**
* Unavailable. Use +instanceID instead.
......@@ -149,7 +180,8 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
* @param type The APNS token type for the above token.
*/
- (void)setAPNSToken:(nonnull NSData *)token
type:(FIRInstanceIDAPNSTokenType)type;
type:(FIRInstanceIDAPNSTokenType)type
__deprecated_msg("Use FIRMessaging's APNSToken property instead.");
#pragma mark - Tokens
......@@ -235,11 +267,13 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
* a valid identifier is returned and a valid identifier for the
* application instance.
*/
- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler;
- (void)getIDWithHandler:(nonnull FIRInstanceIDHandler)handler
FIR_SWIFT_NAME(getID(handler:));
/**
* Resets Instance ID and revokes all tokens.
*/
- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler;
- (void)deleteIDWithHandler:(nonnull FIRInstanceIDDeleteHandler)handler
FIR_SWIFT_NAME(deleteID(handler:));
@end
framework module FirebaseInstanceID {
export *
umbrella header "FirebaseInstanceID.h"
header "FIRInstanceID.h"
export *
module * { export *}
link "z"
}
\ No newline at end of file
# InstanceID SDK for iOS
Instance ID provides a unique ID per instance of your apps and also provides a
mechanism to authenticate and authorize actions, like sending messages via
Firebase Cloud Messaging (FCM).
Please visit [our developer
site](https://developers.google.com/instance-id/) for integration instructions,
documentation, support information, and terms of service.
framework module FirebaseMessaging {
export *
umbrella header "FirebaseMessaging.h"
header "FIRMessaging.h"
link framework "AddressBook"
link framework "SystemConfiguration"
export *
module * { export *}
link "sqlite3"
link "z"
}
\ No newline at end of file
//
// GTMNSData+zlib.h
//
// Copyright 2007-2008 Google Inc.
//
// 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 "GTMDefines.h"
/// Helpers for dealing w/ zlib inflate/deflate calls.
@interface NSData (GTMZLibAdditions)
// NOTE: For 64bit, none of these apis handle input sizes >32bits, they will
// return nil when given such data. To handle data of that size you really
// should be streaming it rather then doing it all in memory.
#pragma mark Gzip Compression
/// Return an autoreleased NSData w/ the result of gzipping the bytes.
//
// Uses the default compression level.
+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes
length:(NSUInteger)length;
+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes
length:(NSUInteger)length
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of gzipping the payload of |data|.
//
// Uses the default compression level.
+ (NSData *)gtm_dataByGzippingData:(NSData *)data __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByGzippingData:(NSData *)data
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of gzipping the bytes using |level| compression level.
//
// |level| can be 1-9, any other values will be clipped to that range.
+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByGzippingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of gzipping the payload of |data| using |level| compression level.
+ (NSData *)gtm_dataByGzippingData:(NSData *)data
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByGzippingData:(NSData *)data
compressionLevel:(int)level
error:(NSError **)error;
#pragma mark Zlib "Stream" Compression
// NOTE: deflate is *NOT* gzip. deflate is a "zlib" stream. pick which one
// you really want to create. (the inflate api will handle either)
/// Return an autoreleased NSData w/ the result of deflating the bytes.
//
// Uses the default compression level.
+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes
length:(NSUInteger)length __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of deflating the payload of |data|.
//
// Uses the default compression level.
+ (NSData *)gtm_dataByDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByDeflatingData:(NSData *)data
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of deflating the bytes using |level| compression level.
//
// |level| can be 1-9, any other values will be clipped to that range.
+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of deflating the payload of |data| using |level| compression level.
+ (NSData *)gtm_dataByDeflatingData:(NSData *)data
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByDeflatingData:(NSData *)data
compressionLevel:(int)level
error:(NSError **)error;
#pragma mark Uncompress of Gzip or Zlib
/// Return an autoreleased NSData w/ the result of decompressing the bytes.
//
// The bytes to decompress can be zlib or gzip payloads.
+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes
length:(NSUInteger)length __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByInflatingBytes:(const void *)bytes
length:(NSUInteger)length
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of decompressing the payload of |data|.
//
// The data to decompress can be zlib or gzip payloads.
+ (NSData *)gtm_dataByInflatingData:(NSData *)data __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByInflatingData:(NSData *)data
error:(NSError **)error;
#pragma mark "Raw" Compression Support
// NOTE: raw deflate is *NOT* gzip or deflate. it does not include a header
// of any form and should only be used within streams here an external crc/etc.
// is done to validate the data. The RawInflate apis can be used on data
// processed like this.
/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes.
//
// Uses the default compression level.
// *No* header is added to the resulting data.
+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes
length:(NSUInteger)length __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data|.
//
// Uses the default compression level.
// *No* header is added to the resulting data.
+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of *raw* deflating the bytes using |level| compression level.
//
// |level| can be 1-9, any other values will be clipped to that range.
// *No* header is added to the resulting data.
+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawDeflatingBytes:(const void *)bytes
length:(NSUInteger)length
compressionLevel:(int)level
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of *raw* deflating the payload of |data| using |level| compression level.
// *No* header is added to the resulting data.
+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data
compressionLevel:(int)level __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawDeflatingData:(NSData *)data
compressionLevel:(int)level
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of *raw* decompressing the bytes.
//
// The data to decompress, it should *not* have any header (zlib nor gzip).
+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes
length:(NSUInteger)length __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawInflatingBytes:(const void *)bytes
length:(NSUInteger)length
error:(NSError **)error;
/// Return an autoreleased NSData w/ the result of *raw* decompressing the payload of |data|.
//
// The data to decompress, it should *not* have any header (zlib nor gzip).
+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data __attribute__((deprecated("Use error variant")));
+ (NSData *)gtm_dataByRawInflatingData:(NSData *)data
error:(NSError **)error;
@end
FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorDomain;
FOUNDATION_EXPORT NSString *const GTMNSDataZlibErrorKey; // NSNumber
FOUNDATION_EXPORT NSString *const GTMNSDataZlibRemainingBytesKey; // NSNumber
typedef NS_ENUM(NSInteger, GTMNSDataZlibError) {
GTMNSDataZlibErrorGreaterThan32BitsToCompress = 1024,
// An internal zlib error.
// GTMNSDataZlibErrorKey will contain the error value.
// NSLocalizedDescriptionKey may contain an error string from zlib.
// Look in zlib.h for list of errors.
GTMNSDataZlibErrorInternal,
// There was left over data in the buffer that was not used.
// GTMNSDataZlibRemainingBytesKey will contain number of remaining bytes.
GTMNSDataZlibErrorDataRemaining
};
# GTM: Google Toolbox for Mac #
**Project site** <https://github.com/google/google-toolbox-for-mac><br>
**Discussion group** <http://groups.google.com/group/google-toolbox-for-mac>
# Google Toolbox for Mac #
A collection of source from different Google projects that may be of use to
developers working other iOS or OS X projects.
If you find a problem/bug or want a new feature to be included in the Google
Toolbox for Mac, please join the
[discussion group](http://groups.google.com/group/google-toolbox-for-mac)
or submit an
[issue](https://github.com/google/google-toolbox-for-mac/issues).
../../../Firebase/Core/Sources/Firebase.h
\ No newline at end of file
../../../GoogleToolboxForMac/GTMDefines.h
\ No newline at end of file
../../../GoogleToolboxForMac/Foundation/GTMLogger.h
\ No newline at end of file
../../../GoogleToolboxForMac/Foundation/GTMNSData+zlib.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Any.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Api.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Duration.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Empty.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/FieldMask.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBArray.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBArray_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBBootstrap.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBCodedInputStream.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBCodedInputStream_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBCodedOutputStream.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBCodedOutputStream_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBDescriptor.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBDescriptor_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBDictionary.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBDictionary_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBExtensionInternals.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBExtensionRegistry.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBMessage.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBMessage_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBProtocolBuffers.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBProtocolBuffers_RuntimeSupport.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBRootObject.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBRootObject_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBRuntimeTypes.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUnknownField.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUnknownFieldSet.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUnknownFieldSet_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUnknownField_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUtilities.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBUtilities_PackagePrivate.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBWellKnownTypes.h
\ No newline at end of file
../../../Protobuf/objectivec/GPBWireFormat.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/SourceContext.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Struct.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Timestamp.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Type.pbobjc.h
\ No newline at end of file
../../../Protobuf/objectivec/google/protobuf/Wrappers.pbobjc.h
\ No newline at end of file
../../../Firebase/Core/Sources/Firebase.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsSwiftNameSupport.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h
\ No newline at end of file
../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment