diff options
Diffstat (limited to 'StoneIsland/platforms/ios/Pods/GGLInstanceID')
7 files changed, 360 insertions, 0 deletions
diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md b/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md new file mode 100644 index 00000000..755828e3 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/CHANGELOG.md @@ -0,0 +1,28 @@ +# 2016-02-25 -- v1.2.1 +- Fix incorrect caching during library updates. + +# 2016-02-17 -- v1.2.0 +- Add Bitcode markers. + +# 2016-01-25 -- v1.1.7 +- Fix bug in InstanceID generation + +# 2016-01-25 -- v1.1.6 +- Greatly reduce IID library size. +- Bug fixes. + +# 2015-12-08 -- v1.1.4 +- Bug fixes. +- Fix dSYM warnings. + +# 2015-11-09 -- v1.1.3 +- Bug fixes. + +# 2015-10-28 -- v1.1.2 +- Bug fixes. + +# 2015-10-8 -- v1.1.1 + +- Resets InstanceID tokens on app delete and reinstall. +- Adds better error reporting. +- Bug fixes. diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h new file mode 100644 index 00000000..e3fd3c64 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceID.h @@ -0,0 +1,273 @@ +#import <Foundation/Foundation.h> + +@class GGLInstanceIDConfig; + +/** + * @memberof GGLInstanceID + * + * The key for APNS token to be included in the options dictionary when + * registering for GCM (Google Cloud Messaging). The value should be a + * NSData object that represents the APNS token for the app. This + * key is required to get a GCM token. + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDRegisterAPNSOption; + +/** + * @memberof GGLInstanceID + * + * The key to specify if the APNS token type is sandbox or production. Set + * to YES if the app was built with Sandbox certificate else NO for production. + * At any point of time InstanceID library will support only one type of token. + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDAPNSServerTypeSandboxOption; + +/** + * @memberof GGLInstanceID + * + * The scope to be used when fetching/deleting a token for + * GCM (Google Cloud Messaging). + */ +FOUNDATION_EXPORT NSString *const kGGLInstanceIDScopeGCM; + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID token returns. If + * the call fails we return the appropriate `error code` as described below. + * + * @param token The valid token as returned by InstanceID backend. + * + * @param error The error describing why generating a new token + * failed. See the error codes below for a more detailed + * description. + */ +typedef void(^GGLInstanceIDTokenHandler)(NSString *token, NSError *error); + + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the InstanceID `deleteToken` returns. If + * the call fails we return the appropriate `error code` as described below + * + * @param error The error describing why deleting the token failed. + * See the error codes below for a more detailed description. + */ +typedef void(^GGLInstanceIDDeleteTokenHandler)(NSError *error); + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the app identity is created. If the + * identity wasn't created for some reason we return the appropriate error code. + * + * @param identity A valid identity for the app instance, nil if there was an error + * while creating an identity. + * @param error The error if fetching the identity fails else nil. + */ +typedef void(^GGLInstanceIDHandler)(NSString *identity, NSError *error); + +/** + * @related GGLInstanceID + * + * The completion handler invoked when the app identity and all the tokens associated + * with it are deleted. Returns a valid error object in case of failure else nil. + * + * @param error The error if deleting the identity and all the tokens associated with + * it fails else nil. + */ +typedef void(^GGLInstanceIDDeleteHandler)(NSError *error); + +/** + * @enum GGLInstanceIDOperationErrorCode + * Description of error codes + */ +typedef NS_ENUM(NSUInteger, GGLInstanceIDOperationErrorCode) { + // Http related errors. + + /// InvalidRequest -- Some parameters of the request were invalid. + kGGLInstanceIDOperationErrorCodeInvalidRequest = 0, + + /// Auth Error -- GCM couldn't validate request from this client. + kGGLInstanceIDOperationErrorCodeAuthentication = 1, + + /// NoAccess -- InstanceID service cannot be accessed. + kGGLInstanceIDOperationErrorCodeNoAccess = 2, + + /// Timeout -- Request to InstanceID backend timed out. + kGGLInstanceIDOperationErrorCodeTimeout = 3, + + + /// Network -- No network available to reach the servers. + kGGLInstanceIDOperationErrorCodeNetwork = 4, + + /// OperationInProgress -- Another similar operation in progress, + /// bailing this one. + kGGLInstanceIDOperationErrorCodeOperationInProgress = 5, + + /// Unknown error. + kGGLInstanceIDOperationErrorCodeUnknown = 7, + + // InstanceID specific errors + + /* + * Generic errors. + */ + + // Device seems to be missing a valid deviceID. Cannot + // authenticate device requests. + kGGLInstanceIDOperationErrorCodeMissingDeviceID = 501, + + /** + * Token specific errors. + */ + + /// GCM token request is missing APNS token. + kGGLInstanceIDOperationErrorCodeMissingAPNSToken = 1001, + + /// GCM token request is missing server type. + kGGLInstanceIDOperationErrorCodeMissingAPNSServerType = 1002, + + /// Token request has invalid authorizedEntity. + kGGLInstanceIDOperationErrorCodeInvalidAuthorizedEntity = 1003, + + /// Token request has invalid scope. + kGGLInstanceIDOperationErrorCodeInvalidScope = 1004, + + /// Should call `startWithConfig:` before requesting token. + kGGLInstanceIDOperationErrorCodeInvalidStart = 1005, + + /// KeyPair access error. + kGGLInstanceIDOperationErrorCodeInvalidKeyPair = 1006, + + /** + * Identity specific errors. + */ + + /// Missing KeyPair. + kGGLInstanceIDOperationErrorCodeMissingKeyPair = 2001, +}; + +/** + * Instance ID provides a unique identifier for each app instance and a mechanism + * to authenticate and authorize actions (for example, sending a GCM message). + * + * Instance ID is long lived but, may be reset if the device is not used for + * a long time or the Instance ID service detects a problem. + * If Instance ID is reset, the app will be notified with a callback to + * [GGLInstanceIDDelegate onTokenRefresh] + * + * If the Instance ID has become invalid, the app can request a new one and + * send it to the app server. + * To prove ownership of Instance ID and to allow servers to access data or + * services associated with the app, call + * `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + */ +@interface GGLInstanceID : NSObject + +/** + * GGLInstanceID. + * + * @return A shared instance of GGLInstanceID. + */ ++ (instancetype)sharedInstance; + +/** + * Start `GGLInstanceID` with the specified config. + * + * @see GGLInstanceIDConfig + * + * @param config The `GGLInstanceIDConfig` used to build the service. + */ +- (void)startWithConfig:(GGLInstanceIDConfig *)config; + +/** + * Stop any network requests started by the client and release any handlers + * associated with it. + */ +- (void)stopAllRequests; + +#pragma mark - Tokens + +/** + * Returns a token that authorizes an Entity (example: cloud service) to perform + * an action on behalf of the application identified by Instance ID. + * + * This is similar to an OAuth2 token except, it applies to the + * application instance instead of a user. + * + * This is an asynchronous call. If the token fetching fails for some reason + * we invoke the completion callback with nil `token` and the appropriate + * error. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at any point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an + * error with code `OperationInProgress`. + * + * @see GGLInstanceID deleteTokenWithAuthorizedEntity:scope:handler: + * + * @param authorizedEntity Entity authorized by the token. + * @param scope Action authorized for authorizedEntity. + * @param options The extra options to be sent with your token request. The + * value for the `apns_token` should be the NSData object + * passed to UIApplication's + * `didRegisterForRemoteNotificationsWithDeviceToken` method. + * All other keys and values in the options dict need to be + * instances of NSString or else they will be discarded. Bundle + * keys starting with 'GCM.' and 'GOOGLE.' are reserved. + * @param handler The callback handler which is invoked when the token is + * successfully fetched. In case of success a valid `token` and + * `nil` error are returned. In case of any error the `token` + * is nil and a valid `error` is returned. The valid error + * codes have been documented above. + */ +- (void)tokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + options:(NSDictionary *)options + handler:(GGLInstanceIDTokenHandler)handler; + +/** + * Revokes access to a scope (action) for an entity previously + * authorized by `[GGLInstanceID tokenWithAuthorizedEntity:scope:options:handler]`. + * + * This is an asynchronous call. Call this on the main thread since InstanceID lib + * is not thread safe. In case token deletion fails for some reason we invoke the + * `handler` callback passed in with the appropriate error code. + * + * Note, you can only have one `token` or `deleteToken` call for a given + * authorizedEntity and scope at a point of time. Making another such call with the + * same authorizedEntity and scope before the last one finishes will result in an error + * with code `OperationInProgress`. + * + * @param authorizedEntity Entity that must no longer have access. + * @param scope Action that entity is no longer authorized to perform. + * @param handler The handler that is invoked once the unsubscribe call ends. + * In case of error an appropriate error object is returned + * else error is nil. + */ +- (void)deleteTokenWithAuthorizedEntity:(NSString *)authorizedEntity + scope:(NSString *)scope + handler:(GGLInstanceIDDeleteTokenHandler)handler; + +#pragma mark - Identity + +/** + * Asynchronously fetch a stable identifier that uniquely identifies the app + * instance. If the identifier has been revoked or has expired, this method will + * return a new identifier. + * + * + * @param handler The handler to invoke once the identifier has been fetched. + * In case of error an appropriate error object is returned else + * a valid identifier is returned and a valid identifier for the + * application instance. + */ +- (void)getIDWithHandler:(GGLInstanceIDHandler)handler; + +/** + * Resets Instance ID and revokes all tokens. + */ +- (void)deleteIDWithHandler:(GGLInstanceIDDeleteHandler)handler; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h new file mode 100644 index 00000000..da885569 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDConfig.h @@ -0,0 +1,32 @@ +@protocol GGLInstanceIDDelegate; + +typedef NS_ENUM(int8_t, GGLInstanceIDLogLevel) { + kGGLInstanceIDLogLevelDebug, + kGGLInstanceIDLogLevelInfo, + kGGLInstanceIDLogLevelError, + kGGLInstanceIDLogLevelAssert, +}; + +/** + * The config used to configure different options in GGLInstanceID library. + */ +@interface GGLInstanceIDConfig : NSObject <NSCopying, NSMutableCopying> + +/** + * Set the GGLInstanceIDDelegate to receive callbacks. + * + * @see GGLInstanceIDDelegate + */ +@property(nonatomic, readwrite, weak) id<GGLInstanceIDDelegate> delegate; + +// the log level for the GGLInstanceID library. +@property(nonatomic, readwrite, assign) GGLInstanceIDLogLevel logLevel; + +/** + * Initialize a default config with logLevel set to `kGGLInstanceIDLogLevelError`. + * + * @return A default config for GGLInstanceID. + */ ++ (instancetype)defaultConfig; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h new file mode 100644 index 00000000..dc706a2d --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDDelegate.h @@ -0,0 +1,13 @@ +@protocol GGLInstanceIDDelegate <NSObject> + +/** + * Called when the system determines that tokens need to be refreshed. + * This method is also called if Instance ID has been reset in which + * case, tokens and `GcmPubSub` subscriptions also need to be refreshed. + * + * Instance ID service will throttle the refresh event across all devices + * to control the rate of token updates on application servers. + */ +- (void)onTokenRefresh; + +@end diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h new file mode 100644 index 00000000..2aa4eddd --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Headers/Public/GGLInstanceIDHeaders.h @@ -0,0 +1,4 @@ +#import "GGLInstanceID.h" +#import "GGLInstanceIDConfig.h" +#import "GGLInstanceIDDelegate.h" + diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a Binary files differnew file mode 100755 index 00000000..d5e6b3a4 --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a diff --git a/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md new file mode 100644 index 00000000..e6fb90db --- /dev/null +++ b/StoneIsland/platforms/ios/Pods/GGLInstanceID/README.md @@ -0,0 +1,10 @@ +# InstanceID SDK for iOS + +Instance ID provides a unique ID per instance of your apps and also provides a +mechanism to authenticate and authorize actions, like sending messages via +Google Cloud Messaging (GCM). + + +Please visit [our developer +site](https://developers.google.com/instance-id/) for integration instructions, +documentation, support information, and terms of service. |
