Archived
Confirmed sucessful Firebase/Crashlytics installation
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
We've now combined all our supported platforms into a single podspec. As a result, we moved our submit script to a new location for Cocoapods projects: ${PODS_ROOT}/Crashlytics/submit. To avoid breaking functionality that references the old location of the submit, we've placed this dummy script that calls to the correct location, while providing a helpful warning if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning!
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
if [[ -z $PODS_ROOT ]]; then
|
||||
echo "error: The submit binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Crashlytics/submit'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the submit binary to fix this issue."
|
||||
else
|
||||
echo "warning: The submit script is now located at '$"{"PODS_ROOT"}"/Crashlytics/submit'. To remove this warning, update your path to point to this new location."
|
||||
sh "${PODS_ROOT}/Crashlytics/submit" "$@"
|
||||
fi
|
||||
Generated
+23
@@ -0,0 +1,23 @@
|
||||
|
||||
# Crashlytics
|
||||
|
||||
## Overview
|
||||
|
||||
[Crashlytics](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) offers the most powerful, yet lightest weight crash reporting solution for iOS.
|
||||
|
||||
|
||||
## Setup
|
||||
|
||||
To start using Crashlytics, there are two options:
|
||||
|
||||
1) The recommended way is to go to the [Firebase Crashlytics Docs](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) and follow the directions there.
|
||||
|
||||
2) If you aren't using Firebase yet, go to [Fabric Kits](https://fabric.io/kits), and follow the directions for Crashlytics.
|
||||
|
||||
|
||||
## Resources
|
||||
|
||||
* [API Reference](https://firebase.google.com/docs/reference/ios/crashlytics/api/reference/Classes)
|
||||
* [Forums](https://stackoverflow.com/questions/tagged/google-fabric)
|
||||
* [Website](https://firebase.google.com/docs/crashlytics)
|
||||
* Follow us on Twitter: [@crashlytics](https://twitter.com/crashlytics)
|
||||
BIN
Binary file not shown.
+31
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// ANSCompatibility.h
|
||||
// AnswersKit
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#if !__has_feature(nullability)
|
||||
#define nonnull
|
||||
#define nullable
|
||||
#define _Nullable
|
||||
#define _Nonnull
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_BEGIN
|
||||
#define NS_ASSUME_NONNULL_BEGIN
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_END
|
||||
#define NS_ASSUME_NONNULL_END
|
||||
#endif
|
||||
|
||||
#if __has_feature(objc_generics)
|
||||
#define ANS_GENERIC_NSARRAY(type) NSArray<type>
|
||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
|
||||
#else
|
||||
#define ANS_GENERIC_NSARRAY(type) NSArray
|
||||
#define ANS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
|
||||
#endif
|
||||
+210
@@ -0,0 +1,210 @@
|
||||
//
|
||||
// Answers.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "ANSCompatibility.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* This class exposes the Answers Events API, allowing you to track key
|
||||
* user user actions and metrics in your app.
|
||||
*/
|
||||
@interface Answers : NSObject
|
||||
|
||||
/**
|
||||
* Log a Sign Up event to see users signing up for your app in real-time, understand how
|
||||
* many users are signing up with different methods and their success rate signing up.
|
||||
*
|
||||
* @param signUpMethodOrNil The method by which a user logged in, e.g. Twitter or Digits.
|
||||
* @param signUpSucceededOrNil The ultimate success or failure of the login
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logSignUpWithMethod:(nullable NSString *)signUpMethodOrNil
|
||||
success:(nullable NSNumber *)signUpSucceededOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log an Log In event to see users logging into your app in real-time, understand how many
|
||||
* users are logging in with different methods and their success rate logging into your app.
|
||||
*
|
||||
* @param loginMethodOrNil The method by which a user logged in, e.g. email, Twitter or Digits.
|
||||
* @param loginSucceededOrNil The ultimate success or failure of the login
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logLoginWithMethod:(nullable NSString *)loginMethodOrNil
|
||||
success:(nullable NSNumber *)loginSucceededOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Share event to see users sharing from your app in real-time, letting you
|
||||
* understand what content they're sharing from the type or genre down to the specific id.
|
||||
*
|
||||
* @param shareMethodOrNil The method by which a user shared, e.g. email, Twitter, SMS.
|
||||
* @param contentNameOrNil The human readable name for this piece of content.
|
||||
* @param contentTypeOrNil The type of content shared.
|
||||
* @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logShareWithMethod:(nullable NSString *)shareMethodOrNil
|
||||
contentName:(nullable NSString *)contentNameOrNil
|
||||
contentType:(nullable NSString *)contentTypeOrNil
|
||||
contentId:(nullable NSString *)contentIdOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log an Invite Event to track how users are inviting other users into
|
||||
* your application.
|
||||
*
|
||||
* @param inviteMethodOrNil The method of invitation, e.g. GameCenter, Twitter, email.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logInviteWithMethod:(nullable NSString *)inviteMethodOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Purchase event to see your revenue in real-time, understand how many users are making purchases, see which
|
||||
* items are most popular, and track plenty of other important purchase-related metrics.
|
||||
*
|
||||
* @param itemPriceOrNil The purchased item's price.
|
||||
* @param currencyOrNil The ISO4217 currency code. Example: USD
|
||||
* @param purchaseSucceededOrNil Was the purchase successful or unsuccessful
|
||||
* @param itemNameOrNil The human-readable form of the item's name. Example:
|
||||
* @param itemTypeOrNil The type, or genre of the item. Example: Song
|
||||
* @param itemIdOrNil The machine-readable, unique item identifier Example: SKU
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this purchase.
|
||||
*/
|
||||
+ (void)logPurchaseWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
|
||||
currency:(nullable NSString *)currencyOrNil
|
||||
success:(nullable NSNumber *)purchaseSucceededOrNil
|
||||
itemName:(nullable NSString *)itemNameOrNil
|
||||
itemType:(nullable NSString *)itemTypeOrNil
|
||||
itemId:(nullable NSString *)itemIdOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Level Start Event to track where users are in your game.
|
||||
*
|
||||
* @param levelNameOrNil The level name
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this level start event.
|
||||
*/
|
||||
+ (void)logLevelStart:(nullable NSString *)levelNameOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Level End event to track how users are completing levels in your game.
|
||||
*
|
||||
* @param levelNameOrNil The name of the level completed, E.G. "1" or "Training"
|
||||
* @param scoreOrNil The score the user completed the level with.
|
||||
* @param levelCompletedSuccesfullyOrNil A boolean representing whether or not the level was completed successfully.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logLevelEnd:(nullable NSString *)levelNameOrNil
|
||||
score:(nullable NSNumber *)scoreOrNil
|
||||
success:(nullable NSNumber *)levelCompletedSuccesfullyOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log an Add to Cart event to see users adding items to a shopping cart in real-time, understand how
|
||||
* many users start the purchase flow, see which items are most popular, and track plenty of other important
|
||||
* purchase-related metrics.
|
||||
*
|
||||
* @param itemPriceOrNil The purchased item's price.
|
||||
* @param currencyOrNil The ISO4217 currency code. Example: USD
|
||||
* @param itemNameOrNil The human-readable form of the item's name. Example:
|
||||
* @param itemTypeOrNil The type, or genre of the item. Example: Song
|
||||
* @param itemIdOrNil The machine-readable, unique item identifier Example: SKU
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logAddToCartWithPrice:(nullable NSDecimalNumber *)itemPriceOrNil
|
||||
currency:(nullable NSString *)currencyOrNil
|
||||
itemName:(nullable NSString *)itemNameOrNil
|
||||
itemType:(nullable NSString *)itemTypeOrNil
|
||||
itemId:(nullable NSString *)itemIdOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Start Checkout event to see users moving through the purchase funnel in real-time, understand how many
|
||||
* users are doing this and how much they're spending per checkout, and see how it related to other important
|
||||
* purchase-related metrics.
|
||||
*
|
||||
* @param totalPriceOrNil The total price of the cart.
|
||||
* @param currencyOrNil The ISO4217 currency code. Example: USD
|
||||
* @param itemCountOrNil The number of items in the cart.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logStartCheckoutWithPrice:(nullable NSDecimalNumber *)totalPriceOrNil
|
||||
currency:(nullable NSString *)currencyOrNil
|
||||
itemCount:(nullable NSNumber *)itemCountOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Rating event to see users rating content within your app in real-time and understand what
|
||||
* content is most engaging, from the type or genre down to the specific id.
|
||||
*
|
||||
* @param ratingOrNil The integer rating given by the user.
|
||||
* @param contentNameOrNil The human readable name for this piece of content.
|
||||
* @param contentTypeOrNil The type of content shared.
|
||||
* @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logRating:(nullable NSNumber *)ratingOrNil
|
||||
contentName:(nullable NSString *)contentNameOrNil
|
||||
contentType:(nullable NSString *)contentTypeOrNil
|
||||
contentId:(nullable NSString *)contentIdOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Content View event to see users viewing content within your app in real-time and
|
||||
* understand what content is most engaging, from the type or genre down to the specific id.
|
||||
*
|
||||
* @param contentNameOrNil The human readable name for this piece of content.
|
||||
* @param contentTypeOrNil The type of content shared.
|
||||
* @param contentIdOrNil The unique identifier for this piece of content. Useful for finding the top shared item.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logContentViewWithName:(nullable NSString *)contentNameOrNil
|
||||
contentType:(nullable NSString *)contentTypeOrNil
|
||||
contentId:(nullable NSString *)contentIdOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Search event allows you to see users searching within your app in real-time and understand
|
||||
* exactly what they're searching for.
|
||||
*
|
||||
* @param queryOrNil The user's query.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event.
|
||||
*/
|
||||
+ (void)logSearchWithQuery:(nullable NSString *)queryOrNil
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
/**
|
||||
* Log a Custom Event to see user actions that are uniquely important for your app in real-time, to see how often
|
||||
* they're performing these actions with breakdowns by different categories you add. Use a human-readable name for
|
||||
* the name of the event, since this is how the event will appear in Answers.
|
||||
*
|
||||
* @param eventName The human-readable name for the event.
|
||||
* @param customAttributesOrNil A dictionary of custom attributes to associate with this event. Attribute keys
|
||||
* must be <code>NSString</code> and values must be <code>NSNumber</code> or <code>NSString</code>.
|
||||
* @discussion How we treat <code>NSNumbers</code>:
|
||||
* We will provide information about the distribution of values over time.
|
||||
*
|
||||
* How we treat <code>NSStrings</code>:
|
||||
* NSStrings are used as categorical data, allowing comparison across different category values.
|
||||
* Strings are limited to a maximum length of 100 characters, attributes over this length will be
|
||||
* truncated.
|
||||
*
|
||||
* When tracking the Tweet views to better understand user engagement, sending the tweet's length
|
||||
* and the type of media present in the tweet allows you to track how tweet length and the type of media influence
|
||||
* engagement.
|
||||
*/
|
||||
+ (void)logCustomEventWithName:(NSString *)eventName
|
||||
customAttributes:(nullable ANS_GENERIC_NSDICTIONARY(NSString *, id) *)customAttributesOrNil;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// CLSAttributes.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CLS_DEPRECATED(x) __attribute__ ((deprecated(x)))
|
||||
|
||||
#if !__has_feature(nullability)
|
||||
#define nonnull
|
||||
#define nullable
|
||||
#define _Nullable
|
||||
#define _Nonnull
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_BEGIN
|
||||
#define NS_ASSUME_NONNULL_BEGIN
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_END
|
||||
#define NS_ASSUME_NONNULL_END
|
||||
#endif
|
||||
|
||||
#if __has_feature(objc_generics)
|
||||
#define CLS_GENERIC_NSARRAY(type) NSArray<type>
|
||||
#define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary<key_type, object_key>
|
||||
#else
|
||||
#define CLS_GENERIC_NSARRAY(type) NSArray
|
||||
#define CLS_GENERIC_NSDICTIONARY(key_type,object_key) NSDictionary
|
||||
#endif
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// CLSLogging.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
#ifdef __OBJC__
|
||||
#import "CLSAttributes.h"
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* The CLS_LOG macro provides as easy way to gather more information in your log messages that are
|
||||
* sent with your crash data. CLS_LOG prepends your custom log message with the function name and
|
||||
* line number where the macro was used. If your app was built with the DEBUG preprocessor macro
|
||||
* defined CLS_LOG uses the CLSNSLog function which forwards your log message to NSLog and CLSLog.
|
||||
* If the DEBUG preprocessor macro is not defined CLS_LOG uses CLSLog only.
|
||||
*
|
||||
* Example output:
|
||||
* -[AppDelegate login:] line 134 $ login start
|
||||
*
|
||||
* If you would like to change this macro, create a new header file, unset our define and then define
|
||||
* your own version. Make sure this new header file is imported after the Crashlytics header file.
|
||||
*
|
||||
* #undef CLS_LOG
|
||||
* #define CLS_LOG(__FORMAT__, ...) CLSNSLog...
|
||||
*
|
||||
**/
|
||||
#ifdef __OBJC__
|
||||
#ifdef DEBUG
|
||||
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
#else
|
||||
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
*
|
||||
* Add logging that will be sent with your crash data. This logging will not show up in the system.log
|
||||
* and will only be visible in your Crashlytics dashboard.
|
||||
*
|
||||
**/
|
||||
|
||||
#ifdef __OBJC__
|
||||
OBJC_EXTERN void CLSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||
OBJC_EXTERN void CLSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
|
||||
|
||||
/**
|
||||
*
|
||||
* Add logging that will be sent with your crash data. This logging will show up in the system.log
|
||||
* and your Crashlytics dashboard. It is not recommended for Release builds.
|
||||
*
|
||||
**/
|
||||
OBJC_EXTERN void CLSNSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
|
||||
OBJC_EXTERN void CLSNSLogv(NSString *format, va_list ap) NS_FORMAT_FUNCTION(1,0);
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
#endif
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// CLSReport.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "CLSAttributes.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* The CLSCrashReport protocol is deprecated. See the CLSReport class and the CrashyticsDelegate changes for details.
|
||||
**/
|
||||
@protocol CLSCrashReport <NSObject>
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *identifier;
|
||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
|
||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
|
||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
|
||||
@property (nonatomic, readonly, nullable) NSDate *crashedOnDate;
|
||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
|
||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* The CLSReport exposes an interface to the phsyical report that Crashlytics has created. You can
|
||||
* use this class to get information about the event, and can also set some values after the
|
||||
* event has occurred.
|
||||
**/
|
||||
@interface CLSReport : NSObject <CLSCrashReport>
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
+ (instancetype)new NS_UNAVAILABLE;
|
||||
|
||||
/**
|
||||
* Returns the session identifier for the report.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSString *identifier;
|
||||
|
||||
/**
|
||||
* Returns the custom key value data for the report.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSDictionary *customKeys;
|
||||
|
||||
/**
|
||||
* Returns the CFBundleVersion of the application that generated the report.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSString *bundleVersion;
|
||||
|
||||
/**
|
||||
* Returns the CFBundleShortVersionString of the application that generated the report.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSString *bundleShortVersionString;
|
||||
|
||||
/**
|
||||
* Returns the date that the report was created.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSDate *dateCreated;
|
||||
|
||||
/**
|
||||
* Returns the os version that the application crashed on.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSString *OSVersion;
|
||||
|
||||
/**
|
||||
* Returns the os build version that the application crashed on.
|
||||
**/
|
||||
@property (nonatomic, copy, readonly) NSString *OSBuildVersion;
|
||||
|
||||
/**
|
||||
* Returns YES if the report contains any crash information, otherwise returns NO.
|
||||
**/
|
||||
@property (nonatomic, assign, readonly) BOOL isCrash;
|
||||
|
||||
/**
|
||||
* You can use this method to set, after the event, additional custom keys. The rules
|
||||
* and semantics for this method are the same as those documented in Crashlytics.h. Be aware
|
||||
* that the maximum size and count of custom keys is still enforced, and you can overwrite keys
|
||||
* and/or cause excess keys to be deleted by using this method.
|
||||
**/
|
||||
- (void)setObjectValue:(nullable id)value forKey:(NSString *)key;
|
||||
|
||||
/**
|
||||
* Record an application-specific user identifier. See Crashlytics.h for details.
|
||||
**/
|
||||
@property (nonatomic, copy, nullable) NSString * userIdentifier;
|
||||
|
||||
/**
|
||||
* Record a user name. See Crashlytics.h for details.
|
||||
**/
|
||||
@property (nonatomic, copy, nullable) NSString * userName;
|
||||
|
||||
/**
|
||||
* Record a user email. See Crashlytics.h for details.
|
||||
**/
|
||||
@property (nonatomic, copy, nullable) NSString * userEmail;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// CLSStackFrame.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "CLSAttributes.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
*
|
||||
* This class is used in conjunction with -[Crashlytics recordCustomExceptionName:reason:frameArray:] to
|
||||
* record information about non-ObjC/C++ exceptions. All information included here will be displayed
|
||||
* in the Crashlytics UI, and can influence crash grouping. Be particularly careful with the use of the
|
||||
* address property. If set, Crashlytics will attempt symbolication and could overwrite other properities
|
||||
* in the process.
|
||||
*
|
||||
**/
|
||||
@interface CLSStackFrame : NSObject
|
||||
|
||||
+ (instancetype)stackFrame;
|
||||
+ (instancetype)stackFrameWithAddress:(NSUInteger)address;
|
||||
+ (instancetype)stackFrameWithSymbol:(NSString *)symbol;
|
||||
|
||||
@property (nonatomic, copy, nullable) NSString *symbol;
|
||||
@property (nonatomic, copy, nullable) NSString *rawSymbol;
|
||||
@property (nonatomic, copy, nullable) NSString *library;
|
||||
@property (nonatomic, copy, nullable) NSString *fileName;
|
||||
@property (nonatomic, assign) uint32_t lineNumber;
|
||||
@property (nonatomic, assign) uint64_t offset;
|
||||
@property (nonatomic, assign) uint64_t address;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
+288
@@ -0,0 +1,288 @@
|
||||
//
|
||||
// Crashlytics.h
|
||||
// Crashlytics
|
||||
//
|
||||
// Copyright (c) 2015 Crashlytics, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "CLSAttributes.h"
|
||||
#import "CLSLogging.h"
|
||||
#import "CLSReport.h"
|
||||
#import "CLSStackFrame.h"
|
||||
#import "Answers.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol CrashlyticsDelegate;
|
||||
|
||||
/**
|
||||
* Crashlytics. Handles configuration and initialization of Crashlytics.
|
||||
*
|
||||
* Note: The Crashlytics class cannot be subclassed. If this is causing you pain for
|
||||
* testing, we suggest using either a wrapper class or a protocol extension.
|
||||
*/
|
||||
@interface Crashlytics : NSObject
|
||||
|
||||
@property (nonatomic, readonly, copy) NSString *APIKey;
|
||||
@property (nonatomic, readonly, copy) NSString *version;
|
||||
@property (nonatomic, assign) BOOL debugMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* The delegate can be used to influence decisions on reporting and behavior, as well as reacting
|
||||
* to previous crashes.
|
||||
*
|
||||
* Make certain that the delegate is setup before starting Crashlytics with startWithAPIKey:... or
|
||||
* via +[Fabric with:...]. Failure to do will result in missing any delegate callbacks that occur
|
||||
* synchronously during start.
|
||||
*
|
||||
**/
|
||||
@property (nonatomic, assign, nullable) id <CrashlyticsDelegate> delegate;
|
||||
|
||||
/**
|
||||
* The recommended way to install Crashlytics into your application is to place a call to +startWithAPIKey:
|
||||
* in your -application:didFinishLaunchingWithOptions: or -applicationDidFinishLaunching:
|
||||
* method.
|
||||
*
|
||||
* Note: Starting with 3.0, the submission process has been significantly improved. The delay parameter
|
||||
* is no longer required to throttle submissions on launch, performance will be great without it.
|
||||
*
|
||||
* @param apiKey The Crashlytics API Key for this app
|
||||
*
|
||||
* @return The singleton Crashlytics instance
|
||||
*/
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey;
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey: instead.");
|
||||
|
||||
/**
|
||||
* If you need the functionality provided by the CrashlyticsDelegate protocol, you can use
|
||||
* these convenience methods to activate the framework and set the delegate in one call.
|
||||
*
|
||||
* @param apiKey The Crashlytics API Key for this app
|
||||
* @param delegate A delegate object which conforms to CrashlyticsDelegate.
|
||||
*
|
||||
* @return The singleton Crashlytics instance
|
||||
*/
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)delegate;
|
||||
+ (Crashlytics *)startWithAPIKey:(NSString *)apiKey delegate:(nullable id<CrashlyticsDelegate>)delegate afterDelay:(NSTimeInterval)delay CLS_DEPRECATED("Crashlytics no longer needs or uses the delay parameter. Please use +startWithAPIKey:delegate: instead.");
|
||||
|
||||
/**
|
||||
* Access the singleton Crashlytics instance.
|
||||
*
|
||||
* @return The singleton Crashlytics instance
|
||||
*/
|
||||
+ (Crashlytics *)sharedInstance;
|
||||
|
||||
/**
|
||||
* The easiest way to cause a crash - great for testing!
|
||||
*/
|
||||
- (void)crash;
|
||||
|
||||
/**
|
||||
* The easiest way to cause a crash with an exception - great for testing.
|
||||
*/
|
||||
- (void)throwException;
|
||||
|
||||
/**
|
||||
* Specify a user identifier which will be visible in the Crashlytics UI.
|
||||
*
|
||||
* Many of our customers have requested the ability to tie crashes to specific end-users of their
|
||||
* application in order to facilitate responses to support requests or permit the ability to reach
|
||||
* out for more information. We allow you to specify up to three separate values for display within
|
||||
* the Crashlytics UI - but please be mindful of your end-user's privacy.
|
||||
*
|
||||
* We recommend specifying a user identifier - an arbitrary string that ties an end-user to a record
|
||||
* in your system. This could be a database id, hash, or other value that is meaningless to a
|
||||
* third-party observer but can be indexed and queried by you.
|
||||
*
|
||||
* Optionally, you may also specify the end-user's name or username, as well as email address if you
|
||||
* do not have a system that works well with obscured identifiers.
|
||||
*
|
||||
* Pursuant to our EULA, this data is transferred securely throughout our system and we will not
|
||||
* disseminate end-user data unless required to by law. That said, if you choose to provide end-user
|
||||
* contact information, we strongly recommend that you disclose this in your application's privacy
|
||||
* policy. Data privacy is of our utmost concern.
|
||||
*
|
||||
* @param identifier An arbitrary user identifier string which ties an end-user to a record in your system.
|
||||
*/
|
||||
- (void)setUserIdentifier:(nullable NSString *)identifier;
|
||||
|
||||
/**
|
||||
* Specify a user name which will be visible in the Crashlytics UI.
|
||||
* Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs.
|
||||
* @see setUserIdentifier:
|
||||
*
|
||||
* @param name An end user's name.
|
||||
*/
|
||||
- (void)setUserName:(nullable NSString *)name;
|
||||
|
||||
/**
|
||||
* Specify a user email which will be visible in the Crashlytics UI.
|
||||
* Please be mindful of your end-user's privacy and see if setUserIdentifier: can fulfil your needs.
|
||||
*
|
||||
* @see setUserIdentifier:
|
||||
*
|
||||
* @param email An end user's email address.
|
||||
*/
|
||||
- (void)setUserEmail:(nullable NSString *)email;
|
||||
|
||||
+ (void)setUserIdentifier:(nullable NSString *)identifier CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
+ (void)setUserName:(nullable NSString *)name CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
+ (void)setUserEmail:(nullable NSString *)email CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
|
||||
/**
|
||||
* Set a value for a for a key to be associated with your crash data which will be visible in the Crashlytics UI.
|
||||
* When setting an object value, the object is converted to a string. This is typically done by calling
|
||||
* -[NSObject description].
|
||||
*
|
||||
* @param value The object to be associated with the key
|
||||
* @param key The key with which to associate the value
|
||||
*/
|
||||
- (void)setObjectValue:(nullable id)value forKey:(NSString *)key;
|
||||
|
||||
/**
|
||||
* Set an int value for a key to be associated with your crash data which will be visible in the Crashlytics UI.
|
||||
*
|
||||
* @param value The integer value to be set
|
||||
* @param key The key with which to associate the value
|
||||
*/
|
||||
- (void)setIntValue:(int)value forKey:(NSString *)key;
|
||||
|
||||
/**
|
||||
* Set an BOOL value for a key to be associated with your crash data which will be visible in the Crashlytics UI.
|
||||
*
|
||||
* @param value The BOOL value to be set
|
||||
* @param key The key with which to associate the value
|
||||
*/
|
||||
- (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
|
||||
|
||||
/**
|
||||
* Set an float value for a key to be associated with your crash data which will be visible in the Crashlytics UI.
|
||||
*
|
||||
* @param value The float value to be set
|
||||
* @param key The key with which to associate the value
|
||||
*/
|
||||
- (void)setFloatValue:(float)value forKey:(NSString *)key;
|
||||
|
||||
+ (void)setObjectValue:(nullable id)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
+ (void)setIntValue:(int)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
+ (void)setBoolValue:(BOOL)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
+ (void)setFloatValue:(float)value forKey:(NSString *)key CLS_DEPRECATED("Please access this method via +sharedInstance");
|
||||
|
||||
/**
|
||||
* This method can be used to record a single exception structure in a report. This is particularly useful
|
||||
* when your code interacts with non-native languages like Lua, C#, or Javascript. This call can be
|
||||
* expensive and should only be used shortly before process termination. This API is not intended be to used
|
||||
* to log NSException objects. All safely-reportable NSExceptions are automatically captured by
|
||||
* Crashlytics.
|
||||
*
|
||||
* @param name The name of the custom exception
|
||||
* @param reason The reason this exception occurred
|
||||
* @param frameArray An array of CLSStackFrame objects
|
||||
*/
|
||||
- (void)recordCustomExceptionName:(NSString *)name reason:(nullable NSString *)reason frameArray:(CLS_GENERIC_NSARRAY(CLSStackFrame *) *)frameArray;
|
||||
|
||||
/**
|
||||
*
|
||||
* This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and
|
||||
* displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of
|
||||
* NSErrors that can be recorded during your app's life-cycle is limited by a fixed-size circular buffer. If the
|
||||
* buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch
|
||||
* of your application.
|
||||
*
|
||||
* You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented
|
||||
* by the NSError instance itself.
|
||||
*
|
||||
**/
|
||||
- (void)recordError:(NSError *)error;
|
||||
- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo;
|
||||
|
||||
- (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:");
|
||||
- (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:");
|
||||
+ (void)logEvent:(NSString *)eventName CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:");
|
||||
+ (void)logEvent:(NSString *)eventName attributes:(nullable NSDictionary *) attributes CLS_DEPRECATED("Please refer to Answers +logCustomEventWithName:");
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
*
|
||||
* The CrashlyticsDelegate protocol provides a mechanism for your application to take
|
||||
* action on events that occur in the Crashlytics crash reporting system. You can make
|
||||
* use of these calls by assigning an object to the Crashlytics' delegate property directly,
|
||||
* or through the convenience +startWithAPIKey:delegate: method.
|
||||
*
|
||||
*/
|
||||
@protocol CrashlyticsDelegate <NSObject>
|
||||
@optional
|
||||
|
||||
|
||||
- (void)crashlyticsDidDetectCrashDuringPreviousExecution:(Crashlytics *)crashlytics CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:");
|
||||
- (void)crashlytics:(Crashlytics *)crashlytics didDetectCrashDuringPreviousExecution:(id <CLSCrashReport>)crash CLS_DEPRECATED("Please refer to -crashlyticsDidDetectReportForLastExecution:");
|
||||
|
||||
/**
|
||||
*
|
||||
* Called when a Crashlytics instance has determined that the last execution of the
|
||||
* application resulted in a saved report. This is called synchronously on Crashlytics
|
||||
* initialization. Your delegate must invoke the completionHandler, but does not need to do so
|
||||
* synchronously, or even on the main thread. Invoking completionHandler with NO will cause the
|
||||
* detected report to be deleted and not submitted to Crashlytics. This is useful for
|
||||
* implementing permission prompts, or other more-complex forms of logic around submitting crashes.
|
||||
*
|
||||
* Instead of using this method, you should try to make use of -crashlyticsDidDetectReportForLastExecution:
|
||||
* if you can.
|
||||
*
|
||||
* @warning Failure to invoke the completionHandler will prevent submissions from being reported. Watch out.
|
||||
*
|
||||
* @warning Just implementing this delegate method will disable all forms of synchronous report submission. This can
|
||||
* impact the reliability of reporting crashes very early in application launch.
|
||||
*
|
||||
* @param report The CLSReport object representing the last detected report
|
||||
* @param completionHandler The completion handler to call when your logic has completed.
|
||||
*
|
||||
*/
|
||||
- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report completionHandler:(void (^)(BOOL submit))completionHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
* Called when a Crashlytics instance has determined that the last execution of the
|
||||
* application resulted in a saved report. This method differs from
|
||||
* -crashlyticsDidDetectReportForLastExecution:completionHandler: in three important ways:
|
||||
*
|
||||
* - it is not called synchronously during initialization
|
||||
* - it does not give you the ability to prevent the report from being submitted
|
||||
* - the report object itself is immutable
|
||||
*
|
||||
* Thanks to these limitations, making use of this method does not impact reporting
|
||||
* reliabilty in any way.
|
||||
*
|
||||
* @param report The read-only CLSReport object representing the last detected report
|
||||
*
|
||||
*/
|
||||
|
||||
- (void)crashlyticsDidDetectReportForLastExecution:(CLSReport *)report;
|
||||
|
||||
/**
|
||||
* If your app is running on an OS that supports it (OS X 10.9+, iOS 7.0+), Crashlytics will submit
|
||||
* most reports using out-of-process background networking operations. This results in a significant
|
||||
* improvement in reliability of reporting, as well as power and performance wins for your users.
|
||||
* If you don't want this functionality, you can disable by returning NO from this method.
|
||||
*
|
||||
* @warning Background submission is not supported for extensions on iOS or OS X.
|
||||
*
|
||||
* @param crashlytics The Crashlytics singleton instance
|
||||
*
|
||||
* @return Return NO if you don't want out-of-process background network operations.
|
||||
*
|
||||
*/
|
||||
- (BOOL)crashlyticsCanUseBackgroundSessions:(Crashlytics *)crashlytics;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* `CrashlyticsKit` can be used as a parameter to `[Fabric with:@[CrashlyticsKit]];` in Objective-C. In Swift, use Crashlytics.sharedInstance()
|
||||
*/
|
||||
#define CrashlyticsKit [Crashlytics sharedInstance]
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
BIN
Binary file not shown.
+14
@@ -0,0 +1,14 @@
|
||||
framework module Crashlytics {
|
||||
header "Crashlytics.h"
|
||||
header "Answers.h"
|
||||
header "ANSCompatibility.h"
|
||||
header "CLSLogging.h"
|
||||
header "CLSReport.h"
|
||||
header "CLSStackFrame.h"
|
||||
header "CLSAttributes.h"
|
||||
|
||||
export *
|
||||
|
||||
link "z"
|
||||
link "c++"
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
# run
|
||||
#
|
||||
# Copyright (c) 2015 Crashlytics. All rights reserved.
|
||||
#
|
||||
#
|
||||
# This script is meant to be run as a Run Script in the "Build Phases" section
|
||||
# of your Xcode project. It sends debug symbols to symbolicate stacktraces,
|
||||
# sends build events to track versions, and onboard apps for Crashlytics.
|
||||
#
|
||||
# This script calls upload-symbols twice:
|
||||
#
|
||||
# 1) First it calls upload-symbols synchronously in "validation" mode. If the
|
||||
# script finds issues with the build environment, it will report errors to Xcode.
|
||||
# In validation mode it exits before doing any time consuming work.
|
||||
#
|
||||
# 2) Then it calls upload-symbols in the background to actually send the build
|
||||
# event and upload symbols. It does this in the background so that it doesn't
|
||||
# slow down your builds. If an error happens here, you won't see it in Xcode.
|
||||
#
|
||||
# You can find the output for the background execution in Console.app, by
|
||||
# searching for "upload-symbols".
|
||||
#
|
||||
# If you want verbose output, you can pass the --debug flag to this script
|
||||
#
|
||||
|
||||
# Figure out where we're being called from
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# If the first argument is specified without a dash, treat it as the Fabric API
|
||||
# Key and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
API_KEY_ARG=""
|
||||
else
|
||||
API_KEY_ARG="-a $1"; shift
|
||||
fi
|
||||
|
||||
# If a second argument is specified without a dash, treat it as the Build Secret
|
||||
# and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
BUILD_SECRET_ARG=""
|
||||
else
|
||||
BUILD_SECRET_ARG="-bs $1"; shift
|
||||
fi
|
||||
|
||||
# Build up the arguments list, passing through any flags added after the
|
||||
# API Key and Build Secret
|
||||
ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@"
|
||||
VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate"
|
||||
UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase"
|
||||
|
||||
# Quote the path to handle folders with special characters
|
||||
COMMAND_PATH="\"$DIR/upload-symbols\" "
|
||||
|
||||
# Ensure params are as expected, run in sync mode to validate,
|
||||
# and cause a build error if validation fails
|
||||
eval $COMMAND_PATH$VALIDATE_ARGUMENTS
|
||||
return_code=$?
|
||||
|
||||
if [[ $return_code != 0 ]]; then
|
||||
exit $return_code
|
||||
fi
|
||||
|
||||
# Verification passed, convert and upload cSYMs in the background to prevent
|
||||
# build delays
|
||||
#
|
||||
# Note: Validation is performed again at this step before upload
|
||||
#
|
||||
# Note: Output can still be found in Console.app, by searching for
|
||||
# "upload-symbols"
|
||||
#
|
||||
eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 &
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
We've now combined all our supported platforms into a single podspec. As a result, we moved our run script to a new location for Cocoapods projects: ${PODS_ROOT}/Fabric/run. To avoid breaking builds that reference the old location of the run script, we've placed this dummy script that calls to the correct location, while providing a helpful warning in Xcode if it is invoked. This bridge for backwards compatibility will be removed in a future release, so please heed the warning!
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
if [[ -z $PODS_ROOT ]]; then
|
||||
echo "error: The run binary delivered by cocoapods is in a new location, under '$"{"PODS_ROOT"}"/Fabric/run'. This script was put in place for backwards compatibility, but it relies on PODS_ROOT, which does not have a value in your current setup. Please update the path to the run binary to fix this issue."
|
||||
else
|
||||
echo "warning: The run script is now located at '$"{"PODS_ROOT"}"/Fabric/run'. To remove this warning, update your Run Script Build Phase to point to this new location."
|
||||
sh "${PODS_ROOT}/Fabric/run" "$@"
|
||||
fi
|
||||
Generated
+27
@@ -0,0 +1,27 @@
|
||||
|
||||
# Fabric
|
||||
|
||||
## Overview
|
||||
|
||||
[Fabric](https://get.fabric.io) provides developers with the tools they need to build the best apps. Developed and maintained by Google and the team that built Crashlytics.
|
||||
|
||||
For a full list of SDKs provided through Fabric visit [https://fabric.io/kits](https://fabric.io/kits).
|
||||
|
||||
To follow the migration to Firebase, check out the [Fabric Roadmap](https://get.fabric.io/roadmap).
|
||||
|
||||
|
||||
## Setup
|
||||
|
||||
Fabric is a dependency for the Crashlytics SDK. To start using Crashlytics, there are two options:
|
||||
|
||||
1) The recommended way is to go to the [Firebase Crashlytics Docs](https://firebase.google.com/docs/crashlytics/get-started?platform=ios) and follow the directions there.
|
||||
|
||||
2) If you aren't using Firebase yet, go to [Fabric Kits](https://fabric.io/kits), and follow the directions for Crashlytics.
|
||||
|
||||
|
||||
## Resources
|
||||
|
||||
* [Documentation](https://docs.fabric.io/)
|
||||
* [Forums](https://stackoverflow.com/questions/tagged/google-fabric)
|
||||
* [Website](https://get.fabric.io)
|
||||
* Follow us on Twitter: [@fabric](https://twitter.com/fabric)
|
||||
BIN
Binary file not shown.
+51
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// FABAttributes.h
|
||||
// Fabric
|
||||
//
|
||||
// Copyright (C) 2015 Twitter, 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.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#define FAB_UNAVAILABLE(x) __attribute__((unavailable(x)))
|
||||
|
||||
#if !__has_feature(nullability)
|
||||
#define nonnull
|
||||
#define nullable
|
||||
#define _Nullable
|
||||
#define _Nonnull
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_BEGIN
|
||||
#define NS_ASSUME_NONNULL_BEGIN
|
||||
#endif
|
||||
|
||||
#ifndef NS_ASSUME_NONNULL_END
|
||||
#define NS_ASSUME_NONNULL_END
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* The following macros are defined here to provide
|
||||
* backwards compatability. If you are still using
|
||||
* them you should migrate to the native nullability
|
||||
* macros.
|
||||
*/
|
||||
#define fab_nullable nullable
|
||||
#define fab_nonnull nonnull
|
||||
#define FAB_NONNULL __fab_nonnull
|
||||
#define FAB_NULLABLE __fab_nullable
|
||||
#define FAB_START_NONNULL NS_ASSUME_NONNULL_BEGIN
|
||||
#define FAB_END_NONNULL NS_ASSUME_NONNULL_END
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// Fabric.h
|
||||
// Fabric
|
||||
//
|
||||
// Copyright (C) 2015 Twitter, 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 "FABAttributes.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
|
||||
#error "Fabric's minimum iOS version is 6.0"
|
||||
#endif
|
||||
#else
|
||||
#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
|
||||
#error "Fabric's minimum OS X version is 10.7"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Fabric Base. Coordinates configuration and starts all provided kits.
|
||||
*/
|
||||
@interface Fabric : NSObject
|
||||
|
||||
/**
|
||||
* Initialize Fabric and all provided kits. Call this method within your App Delegate's `application:didFinishLaunchingWithOptions:` and provide the kits you wish to use.
|
||||
*
|
||||
* For example, in Objective-C:
|
||||
*
|
||||
* `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];`
|
||||
*
|
||||
* Swift:
|
||||
*
|
||||
* `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])`
|
||||
*
|
||||
* Only the first call to this method is honored. Subsequent calls are no-ops.
|
||||
*
|
||||
* @param kitClasses An array of kit Class objects
|
||||
*
|
||||
* @return Returns the shared Fabric instance. In most cases this can be ignored.
|
||||
*/
|
||||
+ (instancetype)with:(NSArray *)kitClasses;
|
||||
|
||||
/**
|
||||
* Returns the Fabric singleton object.
|
||||
*/
|
||||
+ (instancetype)sharedSDK;
|
||||
|
||||
/**
|
||||
* This BOOL enables or disables debug logging, such as kit version information. The default value is NO.
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL debug;
|
||||
|
||||
/**
|
||||
* Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance.
|
||||
*/
|
||||
- (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance.");
|
||||
|
||||
/**
|
||||
* Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance.
|
||||
*/
|
||||
+ (instancetype)new FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance.");
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
BIN
Binary file not shown.
+6
@@ -0,0 +1,6 @@
|
||||
framework module Fabric {
|
||||
umbrella header "Fabric.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
# run
|
||||
#
|
||||
# Copyright (c) 2015 Crashlytics. All rights reserved.
|
||||
#
|
||||
#
|
||||
# This script is meant to be run as a Run Script in the "Build Phases" section
|
||||
# of your Xcode project. It sends debug symbols to symbolicate stacktraces,
|
||||
# sends build events to track versions, and onboard apps for Crashlytics.
|
||||
#
|
||||
# This script calls upload-symbols twice:
|
||||
#
|
||||
# 1) First it calls upload-symbols synchronously in "validation" mode. If the
|
||||
# script finds issues with the build environment, it will report errors to Xcode.
|
||||
# In validation mode it exits before doing any time consuming work.
|
||||
#
|
||||
# 2) Then it calls upload-symbols in the background to actually send the build
|
||||
# event and upload symbols. It does this in the background so that it doesn't
|
||||
# slow down your builds. If an error happens here, you won't see it in Xcode.
|
||||
#
|
||||
# You can find the output for the background execution in Console.app, by
|
||||
# searching for "upload-symbols".
|
||||
#
|
||||
# If you want verbose output, you can pass the --debug flag to this script
|
||||
#
|
||||
|
||||
# Figure out where we're being called from
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# If the first argument is specified without a dash, treat it as the Fabric API
|
||||
# Key and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
API_KEY_ARG=""
|
||||
else
|
||||
API_KEY_ARG="-a $1"; shift
|
||||
fi
|
||||
|
||||
# If a second argument is specified without a dash, treat it as the Build Secret
|
||||
# and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
BUILD_SECRET_ARG=""
|
||||
else
|
||||
BUILD_SECRET_ARG="-bs $1"; shift
|
||||
fi
|
||||
|
||||
# Build up the arguments list, passing through any flags added after the
|
||||
# API Key and Build Secret
|
||||
ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@"
|
||||
VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate"
|
||||
UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase"
|
||||
|
||||
# Quote the path to handle folders with special characters
|
||||
COMMAND_PATH="\"$DIR/upload-symbols\" "
|
||||
|
||||
# Ensure params are as expected, run in sync mode to validate,
|
||||
# and cause a build error if validation fails
|
||||
eval $COMMAND_PATH$VALIDATE_ARGUMENTS
|
||||
return_code=$?
|
||||
|
||||
if [[ $return_code != 0 ]]; then
|
||||
exit $return_code
|
||||
fi
|
||||
|
||||
# Verification passed, convert and upload cSYMs in the background to prevent
|
||||
# build delays
|
||||
#
|
||||
# Note: Validation is performed again at this step before upload
|
||||
#
|
||||
# Note: Output can still be found in Console.app, by searching for
|
||||
# "upload-symbols"
|
||||
#
|
||||
eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 &
|
||||
BIN
Binary file not shown.
+73
@@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
# run
|
||||
#
|
||||
# Copyright (c) 2015 Crashlytics. All rights reserved.
|
||||
#
|
||||
#
|
||||
# This script is meant to be run as a Run Script in the "Build Phases" section
|
||||
# of your Xcode project. It sends debug symbols to symbolicate stacktraces,
|
||||
# sends build events to track versions, and onboard apps for Crashlytics.
|
||||
#
|
||||
# This script calls upload-symbols twice:
|
||||
#
|
||||
# 1) First it calls upload-symbols synchronously in "validation" mode. If the
|
||||
# script finds issues with the build environment, it will report errors to Xcode.
|
||||
# In validation mode it exits before doing any time consuming work.
|
||||
#
|
||||
# 2) Then it calls upload-symbols in the background to actually send the build
|
||||
# event and upload symbols. It does this in the background so that it doesn't
|
||||
# slow down your builds. If an error happens here, you won't see it in Xcode.
|
||||
#
|
||||
# You can find the output for the background execution in Console.app, by
|
||||
# searching for "upload-symbols".
|
||||
#
|
||||
# If you want verbose output, you can pass the --debug flag to this script
|
||||
#
|
||||
|
||||
# Figure out where we're being called from
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
# If the first argument is specified without a dash, treat it as the Fabric API
|
||||
# Key and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
API_KEY_ARG=""
|
||||
else
|
||||
API_KEY_ARG="-a $1"; shift
|
||||
fi
|
||||
|
||||
# If a second argument is specified without a dash, treat it as the Build Secret
|
||||
# and add it as an argument
|
||||
if [ -z "$1" ] || [[ $1 == -* ]]; then
|
||||
BUILD_SECRET_ARG=""
|
||||
else
|
||||
BUILD_SECRET_ARG="-bs $1"; shift
|
||||
fi
|
||||
|
||||
# Build up the arguments list, passing through any flags added after the
|
||||
# API Key and Build Secret
|
||||
ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@"
|
||||
VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate"
|
||||
UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase"
|
||||
|
||||
# Quote the path to handle folders with special characters
|
||||
COMMAND_PATH="\"$DIR/upload-symbols\" "
|
||||
|
||||
# Ensure params are as expected, run in sync mode to validate,
|
||||
# and cause a build error if validation fails
|
||||
eval $COMMAND_PATH$VALIDATE_ARGUMENTS
|
||||
return_code=$?
|
||||
|
||||
if [[ $return_code != 0 ]]; then
|
||||
exit $return_code
|
||||
fi
|
||||
|
||||
# Verification passed, convert and upload cSYMs in the background to prevent
|
||||
# build delays
|
||||
#
|
||||
# Note: Validation is performed again at this step before upload
|
||||
#
|
||||
# Note: Output can still be found in Console.app, by searching for
|
||||
# "upload-symbols"
|
||||
#
|
||||
eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 &
|
||||
BIN
Binary file not shown.
Generated
Executable
BIN
Binary file not shown.
Generated
Executable
+11
@@ -0,0 +1,11 @@
|
||||
framework module FIRAnalyticsConnector {
|
||||
export *
|
||||
module * { export * }
|
||||
link "sqlite3"
|
||||
link "z"
|
||||
link framework "CoreData"
|
||||
link framework "Security"
|
||||
link framework "StoreKit"
|
||||
link framework "SystemConfiguration"
|
||||
link framework "UIKit"
|
||||
}
|
||||
Generated
Executable
BIN
Binary file not shown.
Generated
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "FIRAnalytics.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* Provides App Delegate handlers to be used in your App Delegate.
|
||||
*
|
||||
* To save time integrating Firebase Analytics in an application, Firebase Analytics does not
|
||||
* require delegation implementation from the AppDelegate. Instead this is automatically done by
|
||||
* Firebase Analytics. Should you choose instead to delegate manually, you can turn off the App
|
||||
* Delegate Proxy by adding FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting
|
||||
* it to NO, and adding the methods in this category to corresponding delegation handlers.
|
||||
*
|
||||
* To handle Universal Links, you must return YES in
|
||||
* [UIApplicationDelegate application:didFinishLaunchingWithOptions:].
|
||||
*/
|
||||
@interface FIRAnalytics (AppDelegate)
|
||||
|
||||
/**
|
||||
* Handles events related to a URL session that are waiting to be processed.
|
||||
*
|
||||
* For optimal use of Firebase Analytics, call this method from the
|
||||
* [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler]
|
||||
* method of the app delegate in your app.
|
||||
*
|
||||
* @param identifier The identifier of the URL session requiring attention.
|
||||
* @param completionHandler The completion handler to call when you finish processing the events.
|
||||
* Calling this completion handler lets the system know that your app's user interface is
|
||||
* updated and a new snapshot can be taken.
|
||||
*/
|
||||
+ (void)handleEventsForBackgroundURLSession:(NSString *)identifier
|
||||
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.
|
||||
*
|
||||
* @param url The URL resource to open. This resource can be a network resource or a file.
|
||||
*/
|
||||
+ (void)handleOpenURL:(NSURL *)url;
|
||||
|
||||
/**
|
||||
* Handles the event when the app receives data associated with user activity that includes a
|
||||
* Universal Link (on iOS 9.0 and above).
|
||||
*
|
||||
* Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app
|
||||
* delegate (on iOS 9.0 and above).
|
||||
*
|
||||
* @param userActivity The activity object containing the data associated with the task the user
|
||||
* was performing.
|
||||
*/
|
||||
+ (void)handleUserActivity:(id)userActivity;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
Generated
Executable
+132
@@ -0,0 +1,132 @@
|
||||
#import <Foundation/Foundation.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.
|
||||
NS_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
|
||||
/// the same parameters. Up to 500 event names are supported. Using predefined events and/or
|
||||
/// parameters is recommended for optimal reporting.
|
||||
///
|
||||
/// 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>
|
||||
/// <li>error</li>
|
||||
/// <li>first_open</li>
|
||||
/// <li>in_app_purchase</li>
|
||||
/// <li>notification_dismiss</li>
|
||||
/// <li>notification_foreground</li>
|
||||
/// <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_",
|
||||
/// "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_",
|
||||
/// "google_", and "ga_" prefixes are reserved and should not be used for parameter names.
|
||||
+ (void)logEventWithName:(NSString *)name
|
||||
parameters:(nullable NSDictionary<NSString *, id> *)parameters
|
||||
NS_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.
|
||||
///
|
||||
/// The following user property names are reserved and cannot be used:
|
||||
/// <ul>
|
||||
/// <li>first_open_time</li>
|
||||
/// <li>last_deep_link_referrer</li>
|
||||
/// <li>user_id</li>
|
||||
/// </ul>
|
||||
///
|
||||
/// @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_", "google_", and
|
||||
/// "ga_" prefixes are reserved and should not be used for user property names.
|
||||
+ (void)setUserPropertyString:(nullable NSString *)value forName:(NSString *)name
|
||||
NS_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>
|
||||
///
|
||||
/// @param userID The user ID to ascribe to the user of this app on this device, which must be
|
||||
/// non-empty and no more than 256 characters long. Setting userID to nil removes the user ID.
|
||||
+ (void)setUserID:(nullable NSString *)userID;
|
||||
|
||||
/// Sets the current screen name, which specifies the current visual context in your app. This helps
|
||||
/// identify the areas in your app where users spend their time and how they interact with your app.
|
||||
/// Must be called on the main thread.
|
||||
///
|
||||
/// Note that screen reporting is enabled automatically and records the class name of the current
|
||||
/// UIViewController for you without requiring you to call this method. If you implement
|
||||
/// viewDidAppear in your UIViewController but do not call [super viewDidAppear:], that screen class
|
||||
/// will not be automatically tracked. The class name can optionally be overridden by calling this
|
||||
/// method in the viewDidAppear callback of your UIViewController and specifying the
|
||||
/// screenClassOverride parameter. setScreenName:screenClass: must be called after
|
||||
/// [super viewDidAppear:].
|
||||
///
|
||||
/// If your app does not use a distinct UIViewController for each screen, you should call this
|
||||
/// method and specify a distinct screenName each time a new screen is presented to the user.
|
||||
///
|
||||
/// The screen name and screen class remain in effect until the current UIViewController changes or
|
||||
/// a new call to setScreenName:screenClass: is made.
|
||||
///
|
||||
/// @param screenName The name of the current screen. Should contain 1 to 100 characters. Set to nil
|
||||
/// to clear the current screen name.
|
||||
/// @param screenClassOverride The name of the screen class. Should contain 1 to 100 characters. By
|
||||
/// default this is the class name of the current UIViewController. Set to nil to revert to the
|
||||
/// default class name.
|
||||
+ (void)setScreenName:(nullable NSString *)screenName
|
||||
screenClass:(nullable NSString *)screenClassOverride;
|
||||
|
||||
/// Sets whether analytics collection is enabled for this app on this device. This setting is
|
||||
/// persisted across app sessions. By default it is enabled.
|
||||
///
|
||||
/// @param analyticsCollectionEnabled A flag that enables or disables Analytics collection.
|
||||
+ (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled;
|
||||
|
||||
/// Sets the interval of inactivity in seconds that terminates the current session. The default
|
||||
/// value is 1800 seconds (30 minutes).
|
||||
///
|
||||
/// @param sessionTimeoutInterval The custom time of inactivity in seconds before the current
|
||||
/// session terminates.
|
||||
+ (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval;
|
||||
|
||||
/// The unique ID for this instance of the application.
|
||||
+ (NSString *)appInstanceID;
|
||||
|
||||
/// Clears all analytics data for this instance from the device and resets the app instance ID.
|
||||
/// FIRAnalyticsConfiguration values will be reset to the default values.
|
||||
+ (void)resetAnalyticsData;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
Generated
Executable
+407
@@ -0,0 +1,407 @@
|
||||
/// @file FIREventNames.h
|
||||
///
|
||||
/// Predefined event names.
|
||||
///
|
||||
/// An Event is an important occurrence in your app that you want to measure. You can report up to
|
||||
/// 500 different types of Events per app and you can associate up to 25 unique parameters with each
|
||||
/// Event type. Some common events are suggested below, but you may also choose to specify custom
|
||||
/// Event types that are associated with your specific app. Each event type is identified by a
|
||||
/// unique name. Event names can be up to 40 characters long, may only contain alphanumeric
|
||||
/// characters and underscores ("_"), and must start with an alphabetic character. The "firebase_",
|
||||
/// "google_", and "ga_" prefixes are reserved and should not be used.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/// Add Payment Info event. This event signifies that a user has submitted their payment information
|
||||
/// to your app.
|
||||
static NSString *const kFIREventAddPaymentInfo NS_SWIFT_NAME(AnalyticsEventAddPaymentInfo) =
|
||||
@"add_payment_info";
|
||||
|
||||
/// E-Commerce Add To Cart event. This event signifies that an item was added to a cart for
|
||||
/// purchase. Add this event to a funnel with kFIREventEcommercePurchase to gauge the effectiveness
|
||||
/// of your checkout process. Note: If you supply the @c kFIRParameterValue parameter, you must
|
||||
/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed
|
||||
/// accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventAddToCart NS_SWIFT_NAME(AnalyticsEventAddToCart) = @"add_to_cart";
|
||||
|
||||
/// E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist.
|
||||
/// Use this event to identify popular gift items in your app. Note: If you supply the
|
||||
/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency
|
||||
/// parameter so that revenue metrics can be computed accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventAddToWishlist NS_SWIFT_NAME(AnalyticsEventAddToWishlist) =
|
||||
@"add_to_wishlist";
|
||||
|
||||
/// App Open event. By logging this event when an App becomes active, developers can understand how
|
||||
/// often users leave and return during the course of a Session. Although Sessions are automatically
|
||||
/// reported, this event can provide further clarification around the continuous engagement of
|
||||
/// app-users.
|
||||
static NSString *const kFIREventAppOpen NS_SWIFT_NAME(AnalyticsEventAppOpen) = @"app_open";
|
||||
|
||||
/// E-Commerce Begin Checkout event. This event signifies that a user has begun the process of
|
||||
/// checking out. Add this event to a funnel with your kFIREventEcommercePurchase event to gauge the
|
||||
/// effectiveness of your checkout process. Note: If you supply the @c kFIRParameterValue
|
||||
/// parameter, you must also supply the @c kFIRParameterCurrency parameter so that revenue
|
||||
/// metrics can be computed accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional)
|
||||
/// for travel bookings</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventBeginCheckout NS_SWIFT_NAME(AnalyticsEventBeginCheckout) =
|
||||
@"begin_checkout";
|
||||
|
||||
/// Campaign Detail event. Log this event to supply the referral details of a re-engagement
|
||||
/// campaign. Note: you must supply at least one of the required parameters kFIRParameterSource,
|
||||
/// kFIRParameterMedium or kFIRParameterCampaign. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterSource (NSString)</li>
|
||||
/// <li>@c kFIRParameterMedium (NSString)</li>
|
||||
/// <li>@c kFIRParameterCampaign (NSString)</li>
|
||||
/// <li>@c kFIRParameterTerm (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterContent (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterAdNetworkClickID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterCP1 (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventCampaignDetails NS_SWIFT_NAME(AnalyticsEventCampaignDetails) =
|
||||
@"campaign_details";
|
||||
|
||||
/// Checkout progress. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterCheckoutOption (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventCheckoutProgress NS_SWIFT_NAME(AnalyticsEventCheckoutProgress) =
|
||||
@"checkout_progress";
|
||||
|
||||
/// Earn Virtual Currency event. This event tracks the awarding of virtual currency in your app. Log
|
||||
/// this along with @c kFIREventSpendVirtualCurrency to better understand your virtual economy.
|
||||
/// Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterVirtualCurrencyName (NSString)</li>
|
||||
/// <li>@c kFIRParameterValue (signed 64-bit integer or double as NSNumber)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventEarnVirtualCurrency
|
||||
NS_SWIFT_NAME(AnalyticsEventEarnVirtualCurrency) = @"earn_virtual_currency";
|
||||
|
||||
/// E-Commerce Purchase event. This event signifies that an item was purchased by a user. Note:
|
||||
/// This is different from the in-app purchase event, which is reported automatically for App
|
||||
/// Store-based apps. Note: If you supply the @c kFIRParameterValue parameter, you must also
|
||||
/// supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed
|
||||
/// accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterTax (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterShipping (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCoupon (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterLocation (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional)
|
||||
/// for travel bookings</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventEcommercePurchase NS_SWIFT_NAME(AnalyticsEventEcommercePurchase) =
|
||||
@"ecommerce_purchase";
|
||||
|
||||
/// Generate Lead event. Log this event when a lead has been generated in the app to understand the
|
||||
/// efficacy of your install and re-engagement campaigns. Note: If you supply the
|
||||
/// @c kFIRParameterValue parameter, you must also supply the @c kFIRParameterCurrency
|
||||
/// parameter so that revenue metrics can be computed accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventGenerateLead NS_SWIFT_NAME(AnalyticsEventGenerateLead) =
|
||||
@"generate_lead";
|
||||
|
||||
/// Join Group event. Log this event when a user joins a group such as a guild, team or family. Use
|
||||
/// this event to analyze how popular certain groups or social features are in your app. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterGroupID (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventJoinGroup NS_SWIFT_NAME(AnalyticsEventJoinGroup) = @"join_group";
|
||||
|
||||
/// Level Up event. This event signifies that a player has leveled up in your gaming app. It can
|
||||
/// help you gauge the level distribution of your userbase and help you identify certain levels that
|
||||
/// are difficult to pass. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterLevel (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterCharacter (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventLevelUp NS_SWIFT_NAME(AnalyticsEventLevelUp) = @"level_up";
|
||||
|
||||
/// Login event. Apps with a login feature can report this event to signify that a user has logged
|
||||
/// in.
|
||||
static NSString *const kFIREventLogin NS_SWIFT_NAME(AnalyticsEventLogin) = @"login";
|
||||
|
||||
/// Post Score event. Log this event when the user posts a score in your gaming app. This event can
|
||||
/// help you understand how users are actually performing in your game and it can help you correlate
|
||||
/// high scores with certain audiences or behaviors. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterScore (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterLevel (signed 64-bit integer as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCharacter (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventPostScore NS_SWIFT_NAME(AnalyticsEventPostScore) = @"post_score";
|
||||
|
||||
/// Present Offer event. This event signifies that the app has presented a purchase offer to a user.
|
||||
/// Add this event to a funnel with the kFIREventAddToCart and kFIREventEcommercePurchase to gauge
|
||||
/// your conversion process. Note: If you supply the @c kFIRParameterValue parameter, you must
|
||||
/// also supply the @c kFIRParameterCurrency parameter so that revenue metrics can be computed
|
||||
/// accurately. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventPresentOffer NS_SWIFT_NAME(AnalyticsEventPresentOffer) =
|
||||
@"present_offer";
|
||||
|
||||
/// E-Commerce Purchase Refund event. This event signifies that an item purchase was refunded.
|
||||
/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the
|
||||
/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately.
|
||||
/// Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterTransactionID (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventPurchaseRefund NS_SWIFT_NAME(AnalyticsEventPurchaseRefund) =
|
||||
@"purchase_refund";
|
||||
|
||||
/// Remove from cart event. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventRemoveFromCart NS_SWIFT_NAME(AnalyticsEventRemoveFromCart) =
|
||||
@"remove_from_cart";
|
||||
|
||||
/// Search event. Apps that support search features can use this event to contextualize search
|
||||
/// operations by supplying the appropriate, corresponding parameters. This event can help you
|
||||
/// identify the most popular content in your app. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterSearchTerm (NSString)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// hotel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional)
|
||||
/// for travel bookings</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventSearch NS_SWIFT_NAME(AnalyticsEventSearch) = @"search";
|
||||
|
||||
/// Select Content event. This general purpose event signifies that a user has selected some content
|
||||
/// of a certain type in an app. The content can be any object in your app. This event can help you
|
||||
/// identify popular content and categories of content in your app. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterContentType (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventSelectContent NS_SWIFT_NAME(AnalyticsEventSelectContent) =
|
||||
@"select_content";
|
||||
|
||||
/// Set checkout option. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterCheckoutStep (unsigned 64-bit integer as NSNumber)</li>
|
||||
/// <li>@c kFIRParameterCheckoutOption (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventSetCheckoutOption NS_SWIFT_NAME(AnalyticsEventSetCheckoutOption) =
|
||||
@"set_checkout_option";
|
||||
|
||||
/// Share event. Apps with social features can log the Share event to identify the most viral
|
||||
/// content. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterContentType (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventShare NS_SWIFT_NAME(AnalyticsEventShare) = @"share";
|
||||
|
||||
/// Sign Up event. This event indicates that a user has signed up for an account in your app. The
|
||||
/// parameter signifies the method by which the user signed up. Use this event to understand the
|
||||
/// different behaviors between logged in and logged out users. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterSignUpMethod (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventSignUp NS_SWIFT_NAME(AnalyticsEventSignUp) = @"sign_up";
|
||||
|
||||
/// Spend Virtual Currency event. This event tracks the sale of virtual goods in your app and can
|
||||
/// help you identify which virtual goods are the most popular objects of purchase. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterVirtualCurrencyName (NSString)</li>
|
||||
/// <li>@c kFIRParameterValue (signed 64-bit integer or double as NSNumber)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventSpendVirtualCurrency
|
||||
NS_SWIFT_NAME(AnalyticsEventSpendVirtualCurrency) = @"spend_virtual_currency";
|
||||
|
||||
/// Tutorial Begin event. This event signifies the start of the on-boarding process in your app. Use
|
||||
/// this in a funnel with kFIREventTutorialComplete to understand how many users complete this
|
||||
/// process and move on to the full app experience.
|
||||
static NSString *const kFIREventTutorialBegin NS_SWIFT_NAME(AnalyticsEventTutorialBegin) =
|
||||
@"tutorial_begin";
|
||||
|
||||
/// Tutorial End event. Use this event to signify the user's completion of your app's on-boarding
|
||||
/// process. Add this to a funnel with kFIREventTutorialBegin to gauge the completion rate of your
|
||||
/// on-boarding process.
|
||||
static NSString *const kFIREventTutorialComplete NS_SWIFT_NAME(AnalyticsEventTutorialComplete) =
|
||||
@"tutorial_complete";
|
||||
|
||||
/// Unlock Achievement event. Log this event when the user has unlocked an achievement in your
|
||||
/// game. Since achievements generally represent the breadth of a gaming experience, this event can
|
||||
/// help you understand how many users are experiencing all that your game has to offer. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterAchievementID (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventUnlockAchievement NS_SWIFT_NAME(AnalyticsEventUnlockAchievement) =
|
||||
@"unlock_achievement";
|
||||
|
||||
/// View Item event. This event signifies that some content was shown to the user. This content may
|
||||
/// be a product, a webpage or just a simple image or text. Use the appropriate parameters to
|
||||
/// contextualize the event. Use this event to discover the most popular items viewed in your app.
|
||||
/// Note: If you supply the @c kFIRParameterValue parameter, you must also supply the
|
||||
/// @c kFIRParameterCurrency parameter so that revenue metrics can be computed accurately.
|
||||
/// Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterItemID (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemName (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// <li>@c kFIRParameterItemLocationID (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterPrice (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterQuantity (signed 64-bit integer as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterCurrency (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterValue (double as NSNumber) (optional)</li>
|
||||
/// <li>@c kFIRParameterStartDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterEndDate (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterFlightNumber (NSString) (optional) for travel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfPassengers (signed 64-bit integer as NSNumber) (optional)
|
||||
/// for travel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfNights (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// travel bookings</li>
|
||||
/// <li>@c kFIRParameterNumberOfRooms (signed 64-bit integer as NSNumber) (optional) for
|
||||
/// travel bookings</li>
|
||||
/// <li>@c kFIRParameterOrigin (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterDestination (NSString) (optional)</li>
|
||||
/// <li>@c kFIRParameterSearchTerm (NSString) (optional) for travel bookings</li>
|
||||
/// <li>@c kFIRParameterTravelClass (NSString) (optional) for travel bookings</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventViewItem NS_SWIFT_NAME(AnalyticsEventViewItem) = @"view_item";
|
||||
|
||||
/// View Item List event. Log this event when the user has been presented with a list of items of a
|
||||
/// certain category. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterItemCategory (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventViewItemList NS_SWIFT_NAME(AnalyticsEventViewItemList) =
|
||||
@"view_item_list";
|
||||
|
||||
/// View Search Results event. Log this event when the user has been presented with the results of a
|
||||
/// search. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterSearchTerm (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventViewSearchResults NS_SWIFT_NAME(AnalyticsEventViewSearchResults) =
|
||||
@"view_search_results";
|
||||
|
||||
/// Level Start event. Log this event when the user starts a new level. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterLevelName (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventLevelStart NS_SWIFT_NAME(AnalyticsEventLevelStart) =
|
||||
@"level_start";
|
||||
|
||||
/// Level End event. Log this event when the user finishes a level. Params:
|
||||
///
|
||||
/// <ul>
|
||||
/// <li>@c kFIRParameterLevelName (NSString)</li>
|
||||
/// <li>@c kFIRParameterSuccess (NSString)</li>
|
||||
/// </ul>
|
||||
static NSString *const kFIREventLevelEnd NS_SWIFT_NAME(AnalyticsEventLevelEnd) = @"level_end";
|
||||
Generated
Executable
+532
@@ -0,0 +1,532 @@
|
||||
/// @file FIRParameterNames.h
|
||||
///
|
||||
/// Predefined event parameter names.
|
||||
///
|
||||
/// Params supply information that contextualize Events. You can associate up to 25 unique Params
|
||||
/// with each Event type. Some Params are suggested below for certain common Events, but you are
|
||||
/// not limited to these. You may supply extra Params for suggested Events or custom Params for
|
||||
/// Custom events. Param names can be up to 40 characters long, may only contain alphanumeric
|
||||
/// characters and underscores ("_"), and must start with an alphabetic character. Param values can
|
||||
/// be up to 100 characters long. The "firebase_", "google_", and "ga_" prefixes are reserved and
|
||||
/// should not be used.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/// Game achievement ID (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterAchievementID : @"10_matches_won",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterAchievementID NS_SWIFT_NAME(AnalyticsParameterAchievementID) =
|
||||
@"achievement_id";
|
||||
|
||||
/// Ad Network Click ID (NSString). Used for network-specific click IDs which vary in format.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterAdNetworkClickID : @"1234567",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterAdNetworkClickID
|
||||
NS_SWIFT_NAME(AnalyticsParameterAdNetworkClickID) = @"aclid";
|
||||
|
||||
/// The store or affiliation from which this transaction occurred (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterAffiliation : @"Google Store",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterAffiliation NS_SWIFT_NAME(AnalyticsParameterAffiliation) =
|
||||
@"affiliation";
|
||||
|
||||
/// The individual campaign name, slogan, promo code, etc. Some networks have pre-defined macro to
|
||||
/// capture campaign information, otherwise can be populated by developer. Highly Recommended
|
||||
/// (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCampaign : @"winter_promotion",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCampaign NS_SWIFT_NAME(AnalyticsParameterCampaign) =
|
||||
@"campaign";
|
||||
|
||||
/// Character used in game (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCharacter : @"beat_boss",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCharacter NS_SWIFT_NAME(AnalyticsParameterCharacter) =
|
||||
@"character";
|
||||
|
||||
/// The checkout step (1..N) (unsigned 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCheckoutStep : @"1",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCheckoutStep NS_SWIFT_NAME(AnalyticsParameterCheckoutStep) =
|
||||
@"checkout_step";
|
||||
|
||||
/// Some option on a step in an ecommerce flow (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCheckoutOption : @"Visa",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCheckoutOption
|
||||
NS_SWIFT_NAME(AnalyticsParameterCheckoutOption) = @"checkout_option";
|
||||
|
||||
/// Campaign content (NSString).
|
||||
static NSString *const kFIRParameterContent NS_SWIFT_NAME(AnalyticsParameterContent) = @"content";
|
||||
|
||||
/// Type of content selected (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterContentType : @"news article",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterContentType NS_SWIFT_NAME(AnalyticsParameterContentType) =
|
||||
@"content_type";
|
||||
|
||||
/// Coupon code for a purchasable item (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCoupon : @"zz123",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCoupon NS_SWIFT_NAME(AnalyticsParameterCoupon) = @"coupon";
|
||||
|
||||
/// Campaign custom parameter (NSString). Used as a method of capturing custom data in a campaign.
|
||||
/// Use varies by network.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCP1 : @"custom_data",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCP1 NS_SWIFT_NAME(AnalyticsParameterCP1) = @"cp1";
|
||||
|
||||
/// The name of a creative used in a promotional spot (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCreativeName : @"Summer Sale",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCreativeName NS_SWIFT_NAME(AnalyticsParameterCreativeName) =
|
||||
@"creative_name";
|
||||
|
||||
/// The name of a creative slot (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCreativeSlot : @"summer_banner2",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCreativeSlot NS_SWIFT_NAME(AnalyticsParameterCreativeSlot) =
|
||||
@"creative_slot";
|
||||
|
||||
/// Purchase currency in 3-letter <a href="http://en.wikipedia.org/wiki/ISO_4217#Active_codes">
|
||||
/// ISO_4217</a> format (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterCurrency : @"USD",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterCurrency NS_SWIFT_NAME(AnalyticsParameterCurrency) =
|
||||
@"currency";
|
||||
|
||||
/// Flight or Travel destination (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterDestination : @"Mountain View, CA",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterDestination NS_SWIFT_NAME(AnalyticsParameterDestination) =
|
||||
@"destination";
|
||||
|
||||
/// The arrival date, check-out date or rental end date for the item. This should be in
|
||||
/// YYYY-MM-DD format (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterEndDate : @"2015-09-14",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterEndDate NS_SWIFT_NAME(AnalyticsParameterEndDate) = @"end_date";
|
||||
|
||||
/// Flight number for travel events (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterFlightNumber : @"ZZ800",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterFlightNumber NS_SWIFT_NAME(AnalyticsParameterFlightNumber) =
|
||||
@"flight_number";
|
||||
|
||||
/// Group/clan/guild ID (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterGroupID : @"g1",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterGroupID NS_SWIFT_NAME(AnalyticsParameterGroupID) = @"group_id";
|
||||
|
||||
/// Index of an item in a list (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterIndex : @(1),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterIndex NS_SWIFT_NAME(AnalyticsParameterIndex) = @"index";
|
||||
|
||||
/// Item brand (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemBrand : @"Google",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemBrand NS_SWIFT_NAME(AnalyticsParameterItemBrand) =
|
||||
@"item_brand";
|
||||
|
||||
/// Item category (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemCategory : @"t-shirts",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemCategory NS_SWIFT_NAME(AnalyticsParameterItemCategory) =
|
||||
@"item_category";
|
||||
|
||||
/// Item ID (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemID : @"p7654",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemID NS_SWIFT_NAME(AnalyticsParameterItemID) = @"item_id";
|
||||
|
||||
/// The Google <a href="https://developers.google.com/places/place-id">Place ID</a> (NSString) that
|
||||
/// corresponds to the associated item. Alternatively, you can supply your own custom Location ID.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemLocationID : @"ChIJiyj437sx3YAR9kUWC8QkLzQ",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemLocationID
|
||||
NS_SWIFT_NAME(AnalyticsParameterItemLocationID) = @"item_location_id";
|
||||
|
||||
/// Item name (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemName : @"abc",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemName NS_SWIFT_NAME(AnalyticsParameterItemName) =
|
||||
@"item_name";
|
||||
|
||||
/// The list in which the item was presented to the user (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemList : @"Search Results",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemList NS_SWIFT_NAME(AnalyticsParameterItemList) =
|
||||
@"item_list";
|
||||
|
||||
/// Item variant (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterItemVariant : @"Red",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterItemVariant NS_SWIFT_NAME(AnalyticsParameterItemVariant) =
|
||||
@"item_variant";
|
||||
|
||||
/// Level in game (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterLevel : @(42),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterLevel NS_SWIFT_NAME(AnalyticsParameterLevel) = @"level";
|
||||
|
||||
/// Location (NSString). The Google <a href="https://developers.google.com/places/place-id">Place ID
|
||||
/// </a> that corresponds to the associated event. Alternatively, you can supply your own custom
|
||||
/// Location ID.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterLocation : @"ChIJiyj437sx3YAR9kUWC8QkLzQ",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterLocation NS_SWIFT_NAME(AnalyticsParameterLocation) =
|
||||
@"location";
|
||||
|
||||
/// The advertising or marketing medium, for example: cpc, banner, email, push. Highly recommended
|
||||
/// (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterMedium : @"email",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterMedium NS_SWIFT_NAME(AnalyticsParameterMedium) = @"medium";
|
||||
|
||||
/// Number of nights staying at hotel (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterNumberOfNights : @(3),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterNumberOfNights
|
||||
NS_SWIFT_NAME(AnalyticsParameterNumberOfNights) = @"number_of_nights";
|
||||
|
||||
/// Number of passengers traveling (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterNumberOfPassengers : @(11),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterNumberOfPassengers
|
||||
NS_SWIFT_NAME(AnalyticsParameterNumberOfPassengers) = @"number_of_passengers";
|
||||
|
||||
/// Number of rooms for travel events (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterNumberOfRooms : @(2),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterNumberOfRooms NS_SWIFT_NAME(AnalyticsParameterNumberOfRooms) =
|
||||
@"number_of_rooms";
|
||||
|
||||
/// Flight or Travel origin (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterOrigin : @"Mountain View, CA",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterOrigin NS_SWIFT_NAME(AnalyticsParameterOrigin) = @"origin";
|
||||
|
||||
/// Purchase price (double as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterPrice : @(1.0),
|
||||
/// kFIRParameterCurrency : @"USD", // e.g. $1.00 USD
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterPrice NS_SWIFT_NAME(AnalyticsParameterPrice) = @"price";
|
||||
|
||||
/// Purchase quantity (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterQuantity : @(1),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterQuantity NS_SWIFT_NAME(AnalyticsParameterQuantity) =
|
||||
@"quantity";
|
||||
|
||||
/// Score in game (signed 64-bit integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterScore : @(4200),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterScore NS_SWIFT_NAME(AnalyticsParameterScore) = @"score";
|
||||
|
||||
/// The search string/keywords used (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterSearchTerm : @"periodic table",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterSearchTerm NS_SWIFT_NAME(AnalyticsParameterSearchTerm) =
|
||||
@"search_term";
|
||||
|
||||
/// Shipping cost (double as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterShipping : @(9.50),
|
||||
/// kFIRParameterCurrency : @"USD", // e.g. $9.50 USD
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterShipping NS_SWIFT_NAME(AnalyticsParameterShipping) =
|
||||
@"shipping";
|
||||
|
||||
/// Sign up method (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterSignUpMethod : @"google",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
///
|
||||
/// <b>This constant has been deprecated. Use Method constant instead.</b>
|
||||
static NSString *const kFIRParameterSignUpMethod NS_SWIFT_NAME(AnalyticsParameterSignUpMethod) =
|
||||
@"sign_up_method";
|
||||
|
||||
/// A particular approach used in an operation; for example, "facebook" or "email" in the context
|
||||
/// of a sign_up or login event. (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterMethod : @"google",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterMethod NS_SWIFT_NAME(AnalyticsParameterMethod) = @"method";
|
||||
|
||||
/// The origin of your traffic, such as an Ad network (for example, google) or partner (urban
|
||||
/// airship). Identify the advertiser, site, publication, etc. that is sending traffic to your
|
||||
/// property. Highly recommended (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterSource : @"InMobi",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterSource NS_SWIFT_NAME(AnalyticsParameterSource) = @"source";
|
||||
|
||||
/// The departure date, check-in date or rental start date for the item. This should be in
|
||||
/// YYYY-MM-DD format (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterStartDate : @"2015-09-14",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterStartDate NS_SWIFT_NAME(AnalyticsParameterStartDate) =
|
||||
@"start_date";
|
||||
|
||||
/// Tax amount (double as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterTax : @(1.0),
|
||||
/// kFIRParameterCurrency : @"USD", // e.g. $1.00 USD
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterTax NS_SWIFT_NAME(AnalyticsParameterTax) = @"tax";
|
||||
|
||||
/// If you're manually tagging keyword campaigns, you should use utm_term to specify the keyword
|
||||
/// (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterTerm : @"game",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterTerm NS_SWIFT_NAME(AnalyticsParameterTerm) = @"term";
|
||||
|
||||
/// A single ID for a ecommerce group transaction (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterTransactionID : @"ab7236dd9823",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterTransactionID NS_SWIFT_NAME(AnalyticsParameterTransactionID) =
|
||||
@"transaction_id";
|
||||
|
||||
/// Travel class (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterTravelClass : @"business",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterTravelClass NS_SWIFT_NAME(AnalyticsParameterTravelClass) =
|
||||
@"travel_class";
|
||||
|
||||
/// A context-specific numeric value which is accumulated automatically for each event type. This is
|
||||
/// a general purpose parameter that is useful for accumulating a key metric that pertains to an
|
||||
/// event. Examples include revenue, distance, time and points. Value should be specified as signed
|
||||
/// 64-bit integer or double as NSNumber. Notes: Values for pre-defined currency-related events
|
||||
/// (such as @c kFIREventAddToCart) should be supplied using double as NSNumber and must be
|
||||
/// accompanied by a @c kFIRParameterCurrency parameter. The valid range of accumulated values is
|
||||
/// [-9,223,372,036,854.77, 9,223,372,036,854.77]. Supplying a non-numeric value, omitting the
|
||||
/// corresponding @c kFIRParameterCurrency parameter, or supplying an invalid
|
||||
/// <a href="https://goo.gl/qqX3J2">currency code</a> for conversion events will cause that
|
||||
/// conversion to be omitted from reporting.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterValue : @(3.99),
|
||||
/// kFIRParameterCurrency : @"USD", // e.g. $3.99 USD
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterValue NS_SWIFT_NAME(AnalyticsParameterValue) = @"value";
|
||||
|
||||
/// Name of virtual currency type (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterVirtualCurrencyName : @"virtual_currency_name",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterVirtualCurrencyName
|
||||
NS_SWIFT_NAME(AnalyticsParameterVirtualCurrencyName) = @"virtual_currency_name";
|
||||
|
||||
/// The name of a level in a game (NSString).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterLevelName : @"room_1",
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterLevelName NS_SWIFT_NAME(AnalyticsParameterLevelName) =
|
||||
@"level_name";
|
||||
|
||||
/// The result of an operation. Specify 1 to indicate success and 0 to indicate failure (unsigned
|
||||
/// integer as NSNumber).
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterSuccess : @(1),
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterSuccess NS_SWIFT_NAME(AnalyticsParameterSuccess) = @"success";
|
||||
|
||||
/// Indicates that the associated event should either extend the current session
|
||||
/// or start a new session if no session was active when the event was logged.
|
||||
/// Specify YES to extend the current session or to start a new session; any
|
||||
/// other value will not extend or start a session.
|
||||
/// <pre>
|
||||
/// NSDictionary *params = @{
|
||||
/// kFIRParameterExtendSession : @YES,
|
||||
/// // ...
|
||||
/// };
|
||||
/// </pre>
|
||||
static NSString *const kFIRParameterExtendSession NS_SWIFT_NAME(AnalyticsParameterExtendSession) =
|
||||
@"extend_session";
|
||||
Generated
Executable
+29
@@ -0,0 +1,29 @@
|
||||
/// @file FIRUserPropertyNames.h
|
||||
///
|
||||
/// Predefined user property names.
|
||||
///
|
||||
/// A UserProperty is an attribute that describes the app-user. By supplying UserProperties, you can
|
||||
/// later analyze different behaviors of various segments of your userbase. You may supply up to 25
|
||||
/// 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_", "google_", and "ga_" prefixes are reserved and should not
|
||||
/// be used.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/// The method used to sign in. For example, "google", "facebook" or "twitter".
|
||||
static NSString *const kFIRUserPropertySignUpMethod
|
||||
NS_SWIFT_NAME(AnalyticsUserPropertySignUpMethod) = @"sign_up_method";
|
||||
|
||||
/// Indicates whether events logged by Google Analytics can be used to personalize ads for the user.
|
||||
/// Set to "YES" to enable, or "NO" to disable. Default is enabled. See the
|
||||
/// <a href="https://firebase.google.com/support/guides/disable-analytics">documentation</a> for
|
||||
/// more details and information about related settings.
|
||||
///
|
||||
/// <pre>
|
||||
/// [FIRAnalytics setUserPropertyString:@"NO"
|
||||
/// forName:kFIRUserPropertyAllowAdPersonalizationSignals];
|
||||
/// </pre>
|
||||
static NSString *const kFIRUserPropertyAllowAdPersonalizationSignals
|
||||
NS_SWIFT_NAME(AnalyticsUserPropertyAllowAdPersonalizationSignals) = @"allow_personalized_ads";
|
||||
Generated
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#import "FIRAnalytics+AppDelegate.h"
|
||||
#import "FIRAnalytics.h"
|
||||
#import "FIREventNames.h"
|
||||
#import "FIRParameterNames.h"
|
||||
#import "FIRUserPropertyNames.h"
|
||||
Generated
Executable
+12
@@ -0,0 +1,12 @@
|
||||
framework module FirebaseAnalytics {
|
||||
umbrella header "FirebaseAnalytics.h"
|
||||
export *
|
||||
module * { export * }
|
||||
link "sqlite3"
|
||||
link "z"
|
||||
link framework "CoreData"
|
||||
link framework "Security"
|
||||
link framework "StoreKit"
|
||||
link framework "SystemConfiguration"
|
||||
link framework "UIKit"
|
||||
}
|
||||
Generated
Executable
BIN
Binary file not shown.
Generated
Executable
+11
@@ -0,0 +1,11 @@
|
||||
framework module GoogleAppMeasurement {
|
||||
export *
|
||||
module * { export * }
|
||||
link "sqlite3"
|
||||
link "z"
|
||||
link framework "CoreData"
|
||||
link framework "Security"
|
||||
link framework "StoreKit"
|
||||
link framework "SystemConfiguration"
|
||||
link framework "UIKit"
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
// Copyright 2018 Google LLC
|
||||
//
|
||||
// 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 "Private/GULSwizzler.h"
|
||||
|
||||
#import <objc/runtime.h>
|
||||
|
||||
#ifdef DEBUG
|
||||
#import <GoogleUtilities/GULLogger.h>
|
||||
#import "../Common/GULLoggerCodes.h"
|
||||
|
||||
static GULLoggerService kGULLoggerSwizzler = @"[GoogleUtilities/MethodSwizzler]";
|
||||
#endif
|
||||
|
||||
dispatch_queue_t GetGULSwizzlingQueue(void) {
|
||||
static dispatch_queue_t queue;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
queue = dispatch_queue_create("com.google.GULSwizzler", DISPATCH_QUEUE_SERIAL);
|
||||
});
|
||||
return queue;
|
||||
}
|
||||
|
||||
@implementation GULSwizzler
|
||||
|
||||
+ (void)swizzleClass:(Class)aClass
|
||||
selector:(SEL)selector
|
||||
isClassSelector:(BOOL)isClassSelector
|
||||
withBlock:(nullable id)block {
|
||||
dispatch_sync(GetGULSwizzlingQueue(), ^{
|
||||
NSAssert(selector, @"The selector cannot be NULL");
|
||||
NSAssert(aClass, @"The class cannot be Nil");
|
||||
Class resolvedClass = aClass;
|
||||
Method method = nil;
|
||||
if (isClassSelector) {
|
||||
method = class_getClassMethod(aClass, selector);
|
||||
resolvedClass = object_getClass(aClass);
|
||||
} else {
|
||||
method = class_getInstanceMethod(aClass, selector);
|
||||
}
|
||||
NSAssert(method, @"You're attempting to swizzle a method that doesn't exist. (%@, %@)",
|
||||
NSStringFromClass(resolvedClass), NSStringFromSelector(selector));
|
||||
IMP newImp = imp_implementationWithBlock(block);
|
||||
#ifdef DEBUG
|
||||
IMP currentImp = class_getMethodImplementation(resolvedClass, selector);
|
||||
Class class = NSClassFromString(@"GULSwizzlingCache");
|
||||
if (class) {
|
||||
SEL cacheSelector = NSSelectorFromString(@"cacheCurrentIMP:forNewIMP:forClass:withSelector:");
|
||||
NSMethodSignature *methodSignature = [class methodSignatureForSelector:cacheSelector];
|
||||
if (methodSignature != nil) {
|
||||
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSignature];
|
||||
[inv setSelector:cacheSelector];
|
||||
[inv setTarget:class];
|
||||
[inv setArgument:&(currentImp) atIndex:2];
|
||||
[inv setArgument:&(newImp) atIndex:3];
|
||||
[inv setArgument:&(resolvedClass) atIndex:4];
|
||||
[inv setArgument:(void *_Nonnull) & (selector) atIndex:5];
|
||||
[inv invoke];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
const char *typeEncoding = method_getTypeEncoding(method);
|
||||
__unused IMP originalImpOfClass =
|
||||
class_replaceMethod(resolvedClass, selector, newImp, typeEncoding);
|
||||
|
||||
#ifdef DEBUG
|
||||
// If !originalImpOfClass, then the IMP came from a superclass.
|
||||
if (originalImpOfClass) {
|
||||
SEL selector = NSSelectorFromString(@"originalIMPOfCurrentIMP:");
|
||||
NSMethodSignature *methodSignature = [class methodSignatureForSelector:selector];
|
||||
if (methodSignature != nil) {
|
||||
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:methodSignature];
|
||||
[inv setSelector:selector];
|
||||
[inv setTarget:class];
|
||||
[inv setArgument:&(currentImp) atIndex:2];
|
||||
[inv invoke];
|
||||
IMP testOriginal;
|
||||
[inv getReturnValue:&testOriginal];
|
||||
if (originalImpOfClass != testOriginal) {
|
||||
GULLogWarning(kGULLoggerSwizzler, NO,
|
||||
[NSString stringWithFormat:@"I-SWZ%06ld",
|
||||
(long)kGULSwizzlerMessageCodeMethodSwizzling000],
|
||||
@"Swizzling class: %@ SEL:%@ after it has been previously been swizzled.",
|
||||
NSStringFromClass(resolvedClass), NSStringFromSelector(selector));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
});
|
||||
}
|
||||
|
||||
+ (nullable IMP)currentImplementationForClass:(Class)aClass
|
||||
selector:(SEL)selector
|
||||
isClassSelector:(BOOL)isClassSelector {
|
||||
NSAssert(selector, @"The selector cannot be NULL");
|
||||
NSAssert(aClass, @"The class cannot be Nil");
|
||||
if (selector == NULL || aClass == nil) {
|
||||
return nil;
|
||||
}
|
||||
__block IMP currentIMP = nil;
|
||||
dispatch_sync(GetGULSwizzlingQueue(), ^{
|
||||
Method method = nil;
|
||||
if (isClassSelector) {
|
||||
method = class_getClassMethod(aClass, selector);
|
||||
} else {
|
||||
method = class_getInstanceMethod(aClass, selector);
|
||||
}
|
||||
NSAssert(method, @"The Method for this class/selector combo doesn't exist (%@, %@).",
|
||||
NSStringFromClass(aClass), NSStringFromSelector(selector));
|
||||
if (method == nil) {
|
||||
return;
|
||||
}
|
||||
currentIMP = method_getImplementation(method);
|
||||
NSAssert(currentIMP, @"The IMP for this class/selector combo doesn't exist (%@, %@).",
|
||||
NSStringFromClass(aClass), NSStringFromSelector(selector));
|
||||
});
|
||||
return currentIMP;
|
||||
}
|
||||
|
||||
+ (BOOL)selector:(SEL)selector existsInClass:(Class)aClass isClassSelector:(BOOL)isClassSelector {
|
||||
Method method = isClassSelector ? class_getClassMethod(aClass, selector)
|
||||
: class_getInstanceMethod(aClass, selector);
|
||||
return method != nil;
|
||||
}
|
||||
|
||||
+ (NSArray<id> *)ivarObjectsForObject:(id)object {
|
||||
NSMutableArray *array = [NSMutableArray array];
|
||||
unsigned int count;
|
||||
Ivar *vars = class_copyIvarList([object class], &count);
|
||||
for (NSUInteger i = 0; i < count; i++) {
|
||||
const char *typeEncoding = ivar_getTypeEncoding(vars[i]);
|
||||
// Check to see if the ivar is an object.
|
||||
if (strncmp(typeEncoding, "@", 1) == 0) {
|
||||
id ivarObject = object_getIvar(object, vars[i]);
|
||||
[array addObject:ivarObject];
|
||||
}
|
||||
}
|
||||
free(vars);
|
||||
return array;
|
||||
}
|
||||
@end
|
||||
Generated
+207
@@ -0,0 +1,207 @@
|
||||
/*
|
||||
* Copyright 2018 Google LLC
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* GULOriginalIMPConvenienceMacros.h
|
||||
*
|
||||
* This header contains convenience macros for invoking the original IMP of a swizzled method.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes no arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP0(__receivingObject, __swizzledSEL, __returnType, __originalIMP) \
|
||||
((__returnType(*)(id, SEL))__originalIMP)(__receivingObject, __swizzledSEL)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 1 argument.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP1(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1)))__originalIMP)(__receivingObject, __swizzledSEL, \
|
||||
__arg1)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 2 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP2(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 3 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP3(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), \
|
||||
__typeof__(__arg3)))__originalIMP)(__receivingObject, __swizzledSEL, __arg1, \
|
||||
__arg2, __arg3)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 4 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP4(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4)))__originalIMP)(__receivingObject, __swizzledSEL, __arg1, \
|
||||
__arg2, __arg3, __arg4)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 5 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
* @param __arg5 The fifth argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP5(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4, __arg5) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4), __typeof__(__arg5)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 6 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
* @param __arg5 The fifth argument.
|
||||
* @param __arg6 The sixth argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP6(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 7 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
* @param __arg5 The fifth argument.
|
||||
* @param __arg6 The sixth argument.
|
||||
* @param __arg7 The seventh argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP7(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \
|
||||
__typeof__(__arg7)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 8 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
* @param __arg5 The fifth argument.
|
||||
* @param __arg6 The sixth argument.
|
||||
* @param __arg7 The seventh argument.
|
||||
* @param __arg8 The eighth argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP8(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, __arg8) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \
|
||||
__typeof__(__arg7), __typeof__(__arg8)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, \
|
||||
__arg8)
|
||||
|
||||
/**
|
||||
* Invokes original IMP when the original selector takes 9 arguments.
|
||||
*
|
||||
* @param __receivingObject The object on which the IMP is invoked.
|
||||
* @param __swizzledSEL The selector used for swizzling.
|
||||
* @param __returnType The return type of the original implementation.
|
||||
* @param __originalIMP The original IMP.
|
||||
* @param __arg1 The first argument.
|
||||
* @param __arg2 The second argument.
|
||||
* @param __arg3 The third argument.
|
||||
* @param __arg4 The fourth argument.
|
||||
* @param __arg5 The fifth argument.
|
||||
* @param __arg6 The sixth argument.
|
||||
* @param __arg7 The seventh argument.
|
||||
* @param __arg8 The eighth argument.
|
||||
* @param __arg9 The ninth argument.
|
||||
*/
|
||||
#define GUL_INVOKE_ORIGINAL_IMP9(__receivingObject, __swizzledSEL, __returnType, __originalIMP, \
|
||||
__arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, __arg8, \
|
||||
__arg9) \
|
||||
((__returnType(*)(id, SEL, __typeof__(__arg1), __typeof__(__arg2), __typeof__(__arg3), \
|
||||
__typeof__(__arg4), __typeof__(__arg5), __typeof__(__arg6), \
|
||||
__typeof__(__arg7), __typeof__(__arg8), __typeof__(__arg9)))__originalIMP)( \
|
||||
__receivingObject, __swizzledSEL, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6, __arg7, \
|
||||
__arg8, __arg9)
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright 2018 Google LLC
|
||||
*
|
||||
* 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_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** This class handles the runtime manipulation necessary to instrument selectors. It stores the
|
||||
* classes and selectors that have been swizzled, and runs all operations on its own queue.
|
||||
*/
|
||||
@interface GULSwizzler : NSObject
|
||||
|
||||
/** Manipulates the Objective-C runtime to replace the original IMP with the supplied block.
|
||||
*
|
||||
* @param aClass The class to swizzle.
|
||||
* @param selector The selector of the class to swizzle.
|
||||
* @param isClassSelector A BOOL specifying whether the selector is a class or instance selector.
|
||||
* @param block The block that replaces the original IMP.
|
||||
*/
|
||||
+ (void)swizzleClass:(Class)aClass
|
||||
selector:(SEL)selector
|
||||
isClassSelector:(BOOL)isClassSelector
|
||||
withBlock:(nullable id)block;
|
||||
|
||||
/** Returns the current IMP for the given class and selector.
|
||||
*
|
||||
* @param aClass The class to use.
|
||||
* @param selector The selector to find the implementation of.
|
||||
* @param isClassSelector A BOOL specifying whether the selector is a class or instance selector.
|
||||
* @return The implementation of the selector in the runtime.
|
||||
*/
|
||||
+ (nullable IMP)currentImplementationForClass:(Class)aClass
|
||||
selector:(SEL)selector
|
||||
isClassSelector:(BOOL)isClassSelector;
|
||||
|
||||
/** Checks the runtime to see if a selector exists on a class. If a property is declared as
|
||||
* @dynamic, we have a reverse swizzling situation, where the implementation of a method exists
|
||||
* only in concrete subclasses, and NOT in the superclass. We can detect that situation using
|
||||
* this helper method. Similarly, we can detect situations where a class doesn't implement a
|
||||
* protocol method.
|
||||
*
|
||||
* @param selector The selector to check for.
|
||||
* @param aClass The class to check.
|
||||
* @param isClassSelector A BOOL specifying whether the selector is a class or instance selector.
|
||||
* @return YES if the method was found in this selector/class combination, NO otherwise.
|
||||
*/
|
||||
+ (BOOL)selector:(SEL)selector existsInClass:(Class)aClass isClassSelector:(BOOL)isClassSelector;
|
||||
|
||||
/** Returns a list of all Objective-C (and not primitive) ivars contained by the given object.
|
||||
*
|
||||
* @param object The object whose ivars will be iterated.
|
||||
* @return The list of ivar objects.
|
||||
*/
|
||||
+ (NSArray<id> *)ivarObjectsForObject:(id)object;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
Generated
+37
-1
@@ -1,10 +1,27 @@
|
||||
PODS:
|
||||
- Alamofire (4.8.2)
|
||||
- Crashlytics (3.13.4):
|
||||
- Fabric (~> 1.10.2)
|
||||
- Fabric (1.10.2)
|
||||
- Firebase/Analytics (6.6.0):
|
||||
- Firebase/Core
|
||||
- Firebase/Core (6.6.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 6.1.0)
|
||||
- Firebase/CoreOnly (6.6.0):
|
||||
- FirebaseCore (= 6.2.0)
|
||||
- Firebase/Messaging (6.6.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (~> 4.1.2)
|
||||
- FirebaseAnalytics (6.1.0):
|
||||
- FirebaseCore (~> 6.2)
|
||||
- FirebaseInstanceID (~> 4.2)
|
||||
- GoogleAppMeasurement (= 6.1.0)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||
- GoogleUtilities/Network (~> 6.0)
|
||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseAnalyticsInterop (1.3.0)
|
||||
- FirebaseCore (6.2.0):
|
||||
- FirebaseCoreDiagnostics (~> 1.0)
|
||||
@@ -30,6 +47,12 @@ PODS:
|
||||
- GoogleUtilities/Reachability (~> 6.2)
|
||||
- GoogleUtilities/UserDefaults (~> 6.2)
|
||||
- Protobuf (~> 3.1)
|
||||
- GoogleAppMeasurement (6.1.0):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||
- GoogleUtilities/Network (~> 6.0)
|
||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||
- nanopb (~> 0.3)
|
||||
- GoogleDataTransport (1.1.0)
|
||||
- GoogleDataTransportCCTSupport (1.0.1):
|
||||
- GoogleDataTransport (~> 1.1)
|
||||
@@ -41,6 +64,8 @@ PODS:
|
||||
- GoogleUtilities/Environment (6.2.4)
|
||||
- GoogleUtilities/Logger (6.2.4):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (6.2.4):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (6.2.4):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
@@ -64,6 +89,9 @@ PODS:
|
||||
|
||||
DEPENDENCIES:
|
||||
- Alamofire
|
||||
- Crashlytics (~> 3.13.4)
|
||||
- Fabric (~> 1.10.2)
|
||||
- Firebase/Analytics
|
||||
- Firebase/Messaging
|
||||
- MagazineLayout
|
||||
- SQLite.swift
|
||||
@@ -72,13 +100,17 @@ DEPENDENCIES:
|
||||
SPEC REPOS:
|
||||
https://github.com/cocoapods/specs.git:
|
||||
- Alamofire
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase
|
||||
- FirebaseAnalytics
|
||||
- FirebaseAnalyticsInterop
|
||||
- FirebaseCore
|
||||
- FirebaseCoreDiagnostics
|
||||
- FirebaseCoreDiagnosticsInterop
|
||||
- FirebaseInstanceID
|
||||
- FirebaseMessaging
|
||||
- GoogleAppMeasurement
|
||||
- GoogleDataTransport
|
||||
- GoogleDataTransportCCTSupport
|
||||
- GoogleUtilities
|
||||
@@ -90,13 +122,17 @@ SPEC REPOS:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Alamofire: ae5c501addb7afdbb13687d7f2f722c78734c2d3
|
||||
Crashlytics: 2dfd686bcb918dc10ee0e76f7f853fe42c7bd552
|
||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||
Firebase: a2b5951f30ff38fd3b3bdae9c7d340f940fd3c51
|
||||
FirebaseAnalytics: 48414ae5cbf6976d8a2f7177e0466540e5ab33ce
|
||||
FirebaseAnalyticsInterop: 0f250d71e8741352407a8db351e6de78c5c56d35
|
||||
FirebaseCore: 8c9e08bce0c72a3affd83927d8184cf244918bc8
|
||||
FirebaseCoreDiagnostics: 4c04ae09d0ab027c30179828c6bb47764df1bd13
|
||||
FirebaseCoreDiagnosticsInterop: 6829da2b8d1fc795ff1bd99df751d3788035d2cb
|
||||
FirebaseInstanceID: 8b42755db950682e7de0d167bc6fb26a57b244af
|
||||
FirebaseMessaging: ddd74d13644ef24cc4e2d95cabd1cf408e99b7b0
|
||||
GoogleAppMeasurement: 47285fa897e5a125df56b9ef8750a1d81e4598a8
|
||||
GoogleDataTransport: b0115dbdf1943c998628dca30800ddd263aaa166
|
||||
GoogleDataTransportCCTSupport: 3451e7d8ba19093e533362a6d78d6d9014c6a037
|
||||
GoogleUtilities: 64b5e3982b1b01bda26712affd5c523ef32563cf
|
||||
@@ -106,6 +142,6 @@ SPEC CHECKSUMS:
|
||||
SQLite.swift: d2b4642190917051ce6bd1d49aab565fe794eea3
|
||||
SwiftSoup: 92f5b348c131aed8af04f4326db1579ab19fa08c
|
||||
|
||||
PODFILE CHECKSUM: cc18f1bd84bd3b240d35a016b860932470b4d4a1
|
||||
PODFILE CHECKSUM: 7f6326ef14655be23fc36338b9e0cfd25cc76666
|
||||
|
||||
COCOAPODS: 1.6.1
|
||||
|
||||
Generated
+3978
-3428
File diff suppressed because it is too large
Load Diff
+60
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0930"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "ABA9A411BB5A359862E5F1AA6238278E"
|
||||
BuildableName = "Crashlytics"
|
||||
BlueprintName = "Crashlytics"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0930"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D35E9EC86D36A4C8BC1704199FDB3552"
|
||||
BuildableName = "Fabric"
|
||||
BlueprintName = "Fabric"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D5CB6E59451FD18965C8F33EB68CA764"
|
||||
BlueprintIdentifier = "2072FEB22BA74067C2FD1EA5004E7D5D"
|
||||
BuildableName = "Firebase"
|
||||
BlueprintName = "Firebase"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0930"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9065CC5E0DF8E06B140486867E0332D7"
|
||||
BuildableName = "FirebaseAnalytics"
|
||||
BlueprintName = "FirebaseAnalytics"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
Generated
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "5362D9190F9FA24D9A9CAEA6270561CC"
|
||||
BlueprintIdentifier = "DB6383C0CABFADF2AFF73FEA4B805935"
|
||||
BuildableName = "FirebaseAnalyticsInterop"
|
||||
BlueprintName = "FirebaseAnalyticsInterop"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "428FD5645155BBD3C406DC325993183C"
|
||||
BlueprintIdentifier = "2D89F776216C0CC4E10BB9C84581E50A"
|
||||
BuildableName = "FirebaseCore.framework"
|
||||
BlueprintName = "FirebaseCore"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
Generated
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EF4560F1635BAC33F70EC6AF45178ED4"
|
||||
BlueprintIdentifier = "4424751AFC9EBE1D2509F6A7A99E2EA9"
|
||||
BuildableName = "FirebaseCoreDiagnostics.framework"
|
||||
BlueprintName = "FirebaseCoreDiagnostics"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
Generated
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "DF0C8ED280749A6C840E3B17A9930D1F"
|
||||
BlueprintIdentifier = "318D4B503C47BE8ED8E91C572D903937"
|
||||
BuildableName = "FirebaseCoreDiagnosticsInterop"
|
||||
BlueprintName = "FirebaseCoreDiagnosticsInterop"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "40EFD2FE98482D42ED132A8C5A6AE39A"
|
||||
BlueprintIdentifier = "46AA7D096286234A5AA053332DCBC876"
|
||||
BuildableName = "FirebaseInstanceID.framework"
|
||||
BlueprintName = "FirebaseInstanceID"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "DDBB2787645FF0772AAEF77C91958C63"
|
||||
BlueprintIdentifier = "59FFFE3336249C2569B911E5A05C3E34"
|
||||
BuildableName = "FirebaseMessaging.framework"
|
||||
BlueprintName = "FirebaseMessaging"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0930"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "AE3829FFCE73BC1E7A52AAE7603E5C50"
|
||||
BuildableName = "GoogleAppMeasurement"
|
||||
BlueprintName = "GoogleAppMeasurement"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CFB4D7502EA3D627FEEA4037B84DF708"
|
||||
BlueprintIdentifier = "5856E5045616E11AA7DD55D5E74D7206"
|
||||
BuildableName = "GoogleDataTransport.framework"
|
||||
BlueprintName = "GoogleDataTransport"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
Generated
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D21A861739C3E0D05407C95E0682978"
|
||||
BlueprintIdentifier = "0F7BA82FD2CEBB5AC4F9676699B2CC38"
|
||||
BuildableName = "GoogleDataTransportCCTSupport.framework"
|
||||
BlueprintName = "GoogleDataTransportCCTSupport"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0E8E057198E5E24DF46BC5966C8E46B"
|
||||
BlueprintIdentifier = "A3AEEEDC379967B82F184079A0AB9E82"
|
||||
BuildableName = "GoogleUtilities.framework"
|
||||
BlueprintName = "GoogleUtilities"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "1531EB622656B32C687526554D06B552"
|
||||
BlueprintIdentifier = "0CF6B7C3FED31C508438B142645D5B80"
|
||||
BuildableName = "Pods_AvH_Plan.framework"
|
||||
BlueprintName = "Pods-AvH Plan"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
@@ -45,7 +45,7 @@
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "1531EB622656B32C687526554D06B552"
|
||||
BlueprintIdentifier = "0CF6B7C3FED31C508438B142645D5B80"
|
||||
BuildableName = "Pods_AvH_Plan.framework"
|
||||
BlueprintName = "Pods-AvH Plan"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "E1728C732F78E096899723A0FABCC0E3"
|
||||
BlueprintIdentifier = "E33E7D5DA887A832441082919E5AA0F4"
|
||||
BuildableName = "Protobuf.framework"
|
||||
BlueprintName = "Protobuf"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "4CE06F410780800E20FAA214C9287D37"
|
||||
BlueprintIdentifier = "7D97379D3703B5EC23DAEBAE378AAA49"
|
||||
BuildableName = "SQLite.framework"
|
||||
BlueprintName = "SQLite.swift"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
@@ -45,7 +45,7 @@
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "4CE06F410780800E20FAA214C9287D37"
|
||||
BlueprintIdentifier = "7D97379D3703B5EC23DAEBAE378AAA49"
|
||||
BuildableName = "SQLite.framework"
|
||||
BlueprintName = "SQLite.swift"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "E0B3286D453882CB2ED1C149E292E6F5"
|
||||
BlueprintIdentifier = "77A4B5FAFBA3EEC64EB51A3F0482178F"
|
||||
BuildableName = "SwiftSoup.framework"
|
||||
BlueprintName = "SwiftSoup"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "B5BD29EFC331C173D7041FB95BF07B94"
|
||||
BlueprintIdentifier = "0EA641F6599AA46CF6A09E5C23A4F07D"
|
||||
BuildableName = "nanopb.framework"
|
||||
BlueprintName = "nanopb"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
|
||||
+20
@@ -9,11 +9,26 @@
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Crashlytics.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Fabric.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Firebase.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>FirebaseAnalytics.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>FirebaseAnalyticsInterop.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
@@ -44,6 +59,11 @@
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>GoogleAppMeasurement.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>GoogleDataTransport.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Crashlytics
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Security" -framework "SystemConfiguration"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/Crashlytics
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Fabric
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Fabric/iOS"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_LDFLAGS = $(inherited) -framework "UIKit"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/Fabric
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Firebase
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Firebase" "${PODS_ROOT}/Headers/Public"
|
||||
OTHER_LDFLAGS = $(inherited) -weak_framework "UserNotifications"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FirebaseAnalytics
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public"
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "StoreKit"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/FirebaseAnalytics
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GoogleAppMeasurement
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "StoreKit"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleAppMeasurement
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
@@ -11,6 +11,7 @@
|
||||
#endif
|
||||
|
||||
#import "GULLoggerLevel.h"
|
||||
#import "GULLoggerCodes.h"
|
||||
#import "GULNSData+zlib.h"
|
||||
|
||||
FOUNDATION_EXPORT double GoogleUtilitiesVersionNumber;
|
||||
|
||||
+16
@@ -24,10 +24,22 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
## Crashlytics
|
||||
|
||||
Fabric: Copyright 2018 Google, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Fabric Software and Services Agreement located at https://fabric.io/terms. Crashlytics Kit: Copyright 2018 Crashlytics, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Crashlytics Terms of Service located at http://try.crashlytics.com/terms/terms-of-service.pdf and the Crashlytics Privacy Policy located at http://try.crashlytics.com/terms/privacy-policy.pdf. OSS: http://get.fabric.io/terms/opensource.txt
|
||||
|
||||
## Fabric
|
||||
|
||||
Fabric: Copyright 2018 Google, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Fabric Software and Services Agreement located at https://fabric.io/terms. OSS: http://get.fabric.io/terms/opensource.txt
|
||||
|
||||
## Firebase
|
||||
|
||||
Copyright 2019 Google
|
||||
|
||||
## FirebaseAnalytics
|
||||
|
||||
Copyright 2019 Google
|
||||
|
||||
## FirebaseAnalyticsInterop
|
||||
|
||||
|
||||
@@ -1264,6 +1276,10 @@ Copyright 2019 Google
|
||||
limitations under the License.
|
||||
|
||||
|
||||
## GoogleAppMeasurement
|
||||
|
||||
Copyright 2019 Google
|
||||
|
||||
## GoogleDataTransport
|
||||
|
||||
|
||||
|
||||
+40
@@ -41,6 +41,26 @@ THE SOFTWARE.
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Fabric: Copyright 2018 Google, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Fabric Software and Services Agreement located at https://fabric.io/terms. Crashlytics Kit: Copyright 2018 Crashlytics, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Crashlytics Terms of Service located at http://try.crashlytics.com/terms/terms-of-service.pdf and the Crashlytics Privacy Policy located at http://try.crashlytics.com/terms/privacy-policy.pdf. OSS: http://get.fabric.io/terms/opensource.txt</string>
|
||||
<key>License</key>
|
||||
<string>Commercial</string>
|
||||
<key>Title</key>
|
||||
<string>Crashlytics</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Fabric: Copyright 2018 Google, Inc. All Rights Reserved. Use of this software is subject to the terms and conditions of the Fabric Software and Services Agreement located at https://fabric.io/terms. OSS: http://get.fabric.io/terms/opensource.txt</string>
|
||||
<key>License</key>
|
||||
<string>Commercial</string>
|
||||
<key>Title</key>
|
||||
<string>Fabric</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Copyright 2019 Google</string>
|
||||
@@ -51,6 +71,16 @@ THE SOFTWARE.
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Copyright 2019 Google</string>
|
||||
<key>License</key>
|
||||
<string>Copyright</string>
|
||||
<key>Title</key>
|
||||
<string>FirebaseAnalytics</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>
|
||||
@@ -1323,6 +1353,16 @@ THE SOFTWARE.
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Copyright 2019 Google</string>
|
||||
<key>License</key>
|
||||
<string>Copyright</string>
|
||||
<key>Title</key>
|
||||
<string>GoogleAppMeasurement</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"sqlite3" -l"z" -framework "Alamofire" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "Foundation" -framework "GoogleDataTransport" -framework "GoogleDataTransportCCTSupport" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "GoogleDataTransport" -framework "GoogleDataTransportCCTSupport" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"sqlite3" -l"z" -framework "Alamofire" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "Foundation" -framework "GoogleDataTransport" -framework "GoogleDataTransportCCTSupport" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "FirebaseCore" -framework "FirebaseCoreDiagnostics" -framework "FirebaseInstanceID" -framework "FirebaseMessaging" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "GoogleDataTransport" -framework "GoogleDataTransportCCTSupport" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb"
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore/FirebaseCore.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics/FirebaseCoreDiagnostics.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID/FirebaseInstanceID.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseMessaging/FirebaseMessaging.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport/GoogleDataTransportCCTSupport.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MagazineLayout/MagazineLayout.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftSoup/SwiftSoup.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalyticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
OTHER_LDFLAGS = $(inherited) -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
OTHER_LDFLAGS = $(inherited) -l"c++" -l"sqlite3" -l"z" -framework "Alamofire" -framework "Foundation" -framework "GoogleUtilities" -framework "MagazineLayout" -framework "Protobuf" -framework "SQLite" -framework "Security" -framework "StoreKit" -framework "SwiftSoup" -framework "SystemConfiguration" -framework "UIKit" -framework "nanopb" -weak_framework "UserNotifications"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
||||
Reference in New Issue
Block a user