Skip to content

Commit

Permalink
Updating Appboy SDK
Browse files Browse the repository at this point in the history
  • Loading branch information
briancaw committed Apr 1, 2016
1 parent 4c4c994 commit ce547bf
Show file tree
Hide file tree
Showing 415 changed files with 830 additions and 12,922 deletions.
Binary file modified .DS_Store
Binary file not shown.
Binary file removed Appboy-WatchKit/.DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion Appboy-iOS-SDK.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "Appboy-iOS-SDK"
s.version = "2.19.1"
s.version = "2.19.2"
s.summary = "This is the Appboy iOS SDK for Mobile Marketing Automation"
s.homepage = "http://www.appboy.com"
s.license = { :type => 'Commercial', :text => 'Please refer to https://github.com/Appboy/appboy-ios-sdk/blob/master/LICENSE'}
Expand Down
22 changes: 22 additions & 0 deletions Appboy-iOS-SDK.podspec~
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Pod::Spec.new do |s|
s.name = "Appboy-iOS-SDK"
s.version = "2.19.1"
s.summary = "This is the Appboy iOS SDK for Mobile Marketing Automation"
s.homepage = "http://www.appboy.com"
s.license = { :type => 'Commercial', :text => 'Please refer to https://github.com/Appboy/appboy-ios-sdk/blob/master/LICENSE'}
s.author = { "Appboy" => "http://www.appboy.com" }
s.source = { :git => 'https://github.com/Appboy/appboy-ios-sdk.git', :tag => s.version.to_s}
s.platform = :ios
s.ios.deployment_target = '6.0'
s.requires_arc = true
s.documentation_url = 'http://documentation.appboy.com/'
s.library = 'z'
s.frameworks = 'SystemConfiguration', 'QuartzCore', 'CoreImage', 'CoreText'
s.weak_framework = 'CoreTelephony', 'Social', 'Accounts', 'AdSupport', 'StoreKit'
s.source_files = 'AppboyKit/headers/AppboyKitLibrary/*.h', 'AppboyKit/*.m'
s.exclude_files = 'AppboyKit/**/*.txt'
s.resource = 'AppboyKit/Appboy.bundle'
s.preserve_paths = 'AppboyKit/**/*.*'
s.vendored_libraries = 'AppboyKit/libAppboyKitLibrary.a'
s.dependency 'SDWebImage', '~>3.7.0'
end
Binary file modified AppboyKit/Appboy.bundle/ABKBannerCardCell.nib/objects.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKBannerCardCell.nib/runtime.nib
Binary file not shown.
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKCrossPromotionCardCell.nib/runtime.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedNoConnectionView.nib/objects.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedNoConnectionView.nib/runtime.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedbackContentView.nib/objects.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedbackContentView.nib/runtime.nib
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedbackNavBar.nib/objects.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKFeedbackNavBar.nib/runtime.nib
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKSpinnerView.nib/objects.nib
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/ABKSpinnerView.nib/runtime.nib
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified AppboyKit/Appboy.bundle/Info.plist
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
@class ABKInAppMessageImmersive;
@class ABKInAppMessageHTML;

NS_ASSUME_NONNULL_BEGIN
/*!
* Possible values for in-app message handling after a in-app message is offered to an ABKInAppMessageControllerDelegate
* ABKDisplayInAppMessageNow - The in-app message will be displayed immediately.
Expand Down Expand Up @@ -36,7 +37,6 @@ typedef NS_ENUM(NSInteger, ABKInAppMessageDisplayChoice) {
/*
* Appboy Public API: ABKInAppMessageControllerDelegate
*/
NS_ASSUME_NONNULL_BEGIN
@protocol ABKInAppMessageControllerDelegate <NSObject>
@optional

Expand Down
52 changes: 26 additions & 26 deletions AppboyKit/headers/AppboyKitLibrary/ABKUser.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,32 @@
@class ABKTwitterUser;
@class ABKAttributionData;

NS_ASSUME_NONNULL_BEGIN
/* ------------------------------------------------------------------------------------------------------
* Enums
*/

/*!
* Values representing the gender recognized by the SDK.
*/
typedef NS_ENUM(NSInteger , ABKUserGenderType) {
ABKUserGenderMale,
ABKUserGenderFemale
};

/*!
* Convenience enum to represent notification status, for email and push notifications.
*
* OPTED_IN: subscribed, and explicitly opted in.
* SUBSCRIBED: subscribed, but not explicitly opted in.
* UNSUBSCRIBED: unsubscribed and/or explicitly opted out.
*/
typedef NS_ENUM(NSInteger, ABKNotificationSubscriptionType) {
ABKOptedIn,
ABKSubscribed,
ABKUnsubscribed
};

/*!
* When setting the custom attributes with custom keys:
*
Expand Down Expand Up @@ -41,7 +67,6 @@
/*
* Appboy Public API: ABKUser
*/
NS_ASSUME_NONNULL_BEGIN
@interface ABKUser : NSObject

/*!
Expand Down Expand Up @@ -113,31 +138,6 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable) ABKAttributionData *attributionData;

/* ------------------------------------------------------------------------------------------------------
* Enums
*/

/*!
* Values representing the gender recognized by the SDK.
*/
typedef NS_ENUM(NSInteger , ABKUserGenderType) {
ABKUserGenderMale,
ABKUserGenderFemale
};

/*!
* Convenience enum to represent notification status, for email and push notifications.
*
* OPTED_IN: subscribed, and explicitly opted in.
* SUBSCRIBED: subscribed, but not explicitly opted in.
* UNSUBSCRIBED: unsubscribed and/or explicitly opted out.
*/
typedef NS_ENUM(NSInteger, ABKNotificationSubscriptionType) {
ABKOptedIn,
ABKSubscribed,
ABKUnsubscribed
};

/*!
* @param gender ABKUserGender enum representing the user's gender.
* @return YES if the user gender is set properly
Expand Down
152 changes: 76 additions & 76 deletions AppboyKit/headers/AppboyKitLibrary/Appboy.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#import <UIKit/UIKit.h>

#ifndef APPBOY_SDK_VERSION
#define APPBOY_SDK_VERSION @"2.19.1"
#define APPBOY_SDK_VERSION @"2.19.2"
#endif

@class ABKInAppMessageController;
Expand All @@ -27,63 +27,17 @@
@protocol ABKAppboyEndpointDelegate;
@protocol ABKPushURIDelegate;

/*
* Appboy Public API: Appboy
*/
NS_ASSUME_NONNULL_BEGIN
@interface Appboy : NSObject

/* ------------------------------------------------------------------------------------------------------
* Initialization
*/

/*!
* Get the Appboy singleton. Returns nil if accessed before startWithApiKey: called.
*/
+ (nullable Appboy *) sharedInstance;

/*!
* @param apiKey The app's API key
* @param inApplication The current app
* @param withLaunchOptions The options NSDictionary that you get from application:didFinishLaunchingWithOptions
*
* @discussion Starts up Appboy and tells it that your app is done launching. You should call this
* method in your App Delegate application:didFinishLaunchingWithOptions method before calling makeKeyAndVisible,
* accessing [Appboy sharedInstance] or otherwise rendering Appboy view controllers. Your apiKey comes from
* the appboy.com dashboard where you registered your app.
*/
+ (void) startWithApiKey:(NSString *)apiKey
inApplication:(UIApplication *)application
withLaunchOptions:(nullable NSDictionary *)launchOptions;

/*!
* @param apiKey The app's API key
* @param inApplication The current app
* @param withLaunchOptions The options NSDictionary that you get from application:didFinishLaunchingWithOptions
* @param appboyOptions An optional NSDictionary with startup configuration values for Appboy. This currently supports
* ABKRequestProcessingPolicyOptionKey, ABKSocialAccountAcquisitionPolicyOptionKey and ABKFlushIntervalOptionKey. See below
* for more information.
*
* @discussion Starts up Appboy and tells it that your app is done launching. You should call this
* method in your App Delegate application:didFinishLaunchingWithOptions method before calling makeKeyAndVisible,
* accessing [Appboy sharedInstance] or otherwise rendering Appboy view controllers. Your apiKey comes from
* the appboy.com dashboard where you registered your app.
*/
+ (void) startWithApiKey:(NSString *)apiKey
inApplication:(UIApplication *)application
withLaunchOptions:(nullable NSDictionary *)launchOptions
withAppboyOptions:(nullable NSDictionary *)appboyOptions;

/* ------------------------------------------------------------------------------------------------------
* Keys for Appboy startup options
*/

/*!
* If you want to set the request policy at app startup time (useful for avoiding any automatic data requests made by
* Appboy at startup if you're looking to have full manual control). You can include one of the
* ABKRequestProcessingPolicy enum values as the value for the ABKRequestProcessingPolicyOptionKey in the appboyOptions
* dictionary.
*/
* If you want to set the request policy at app startup time (useful for avoiding any automatic data requests made by
* Appboy at startup if you're looking to have full manual control). You can include one of the
* ABKRequestProcessingPolicy enum values as the value for the ABKRequestProcessingPolicyOptionKey in the appboyOptions
* dictionary.
*/
extern NSString *const ABKRequestProcessingPolicyOptionKey;

/*!
Expand Down Expand Up @@ -116,7 +70,7 @@ extern NSString *const ABKSignificantChangeCollectionEnabledOptionKey;
extern NSString *const ABKSignificantChangeCollectionDistanceFilterOptionKey;

/*!
* This key can be set to an integer value that represents the minimum time in seconds between location events logged to Appboy.
* This key can be set to an integer value that represents the minimum time in seconds between location events logged to Appboy.
* If this value is set and significant change location is enabled, this value will be used to filter locations that are received from the significant
* change location provider. The default value is 3600 (1 hour); the minimum is 300 (5 minutes).
*/
Expand Down Expand Up @@ -147,29 +101,29 @@ extern NSString *const ABKMinimumTriggerTimeIntervalKey;
*/

/*!
* Possible values for the SDK's request processing policies:
* ABKAutomaticRequestProcessing (default) - All server communication is handled automatically. This includes flushing
* analytics data to the server, updating the feed, requesting new in-app messages and posting feedback. Appboy's
* communication policy is to perform immediate server requests when user facing data is required (new in-app messages,
* feed refreshes, etc.), and to otherwise perform periodic flushes of new analytics data every few seconds.
* The interval between periodic flushes can be set explicitly using the ABKFlushInterval startup option.
* ABKAutomaticRequestProcessingExceptForDataFlush - The same as ABKAutomaticRequestProcessing, except that updates to
* custom attributes and triggering of custom events will not automatically flush to the server. Instead, you
* must call flushDataAndProcessRequestQueue when you want to synchronize newly updated user data with Appboy.
* ABKManualRequestProcessing - Appboy will automatically add appropriate network requests (feed updates, user
* attribute flushes, feedback posts, etc.) to its network queue, but doesn't process
* network requests except when feedback requests are made via a FeedbackViewController, or a feed request is made
* via a FeedViewController. The latter typically occurs when a ABKFeedViewController is loaded and displayed on
* the screen, for example, in response to a user click.
* You can direct Appboy to perform an immediate data flush as well as process any other
* requests on its queue by calling <pre>[[Appboy sharedInstance] flushDataAndProcessRequestQueue];</pre>
* This mode is only recommended for advanced use cases. If you're merely trying to
* control the background flush behavior, consider using ABKAutomaticRequestProcessing
* with a custom flush interval or ABKAutomaticRequestProcessingExceptForDataFlush.
*
* Regardless of policy, Appboy will intelligently combine requests on the queue to minimize the total number of
* requests and their combined payload.
*/
* Possible values for the SDK's request processing policies:
* ABKAutomaticRequestProcessing (default) - All server communication is handled automatically. This includes flushing
* analytics data to the server, updating the feed, requesting new in-app messages and posting feedback. Appboy's
* communication policy is to perform immediate server requests when user facing data is required (new in-app messages,
* feed refreshes, etc.), and to otherwise perform periodic flushes of new analytics data every few seconds.
* The interval between periodic flushes can be set explicitly using the ABKFlushInterval startup option.
* ABKAutomaticRequestProcessingExceptForDataFlush - The same as ABKAutomaticRequestProcessing, except that updates to
* custom attributes and triggering of custom events will not automatically flush to the server. Instead, you
* must call flushDataAndProcessRequestQueue when you want to synchronize newly updated user data with Appboy.
* ABKManualRequestProcessing - Appboy will automatically add appropriate network requests (feed updates, user
* attribute flushes, feedback posts, etc.) to its network queue, but doesn't process
* network requests except when feedback requests are made via a FeedbackViewController, or a feed request is made
* via a FeedViewController. The latter typically occurs when a ABKFeedViewController is loaded and displayed on
* the screen, for example, in response to a user click.
* You can direct Appboy to perform an immediate data flush as well as process any other
* requests on its queue by calling <pre>[[Appboy sharedInstance] flushDataAndProcessRequestQueue];</pre>
* This mode is only recommended for advanced use cases. If you're merely trying to
* control the background flush behavior, consider using ABKAutomaticRequestProcessing
* with a custom flush interval or ABKAutomaticRequestProcessingExceptForDataFlush.
*
* Regardless of policy, Appboy will intelligently combine requests on the queue to minimize the total number of
* requests and their combined payload.
*/
typedef NS_ENUM(NSInteger, ABKRequestProcessingPolicy) {
ABKAutomaticRequestProcessing,
ABKAutomaticRequestProcessingExceptForDataFlush,
Expand All @@ -184,6 +138,52 @@ typedef NS_OPTIONS(NSUInteger, ABKSocialNetwork) {
ABKSocialNetworkTwitter = 1 << 1
};

/*
* Appboy Public API: Appboy
*/
@interface Appboy : NSObject

/* ------------------------------------------------------------------------------------------------------
* Initialization
*/

/*!
* Get the Appboy singleton. Returns nil if accessed before startWithApiKey: called.
*/
+ (nullable Appboy *) sharedInstance;

/*!
* @param apiKey The app's API key
* @param inApplication The current app
* @param withLaunchOptions The options NSDictionary that you get from application:didFinishLaunchingWithOptions
*
* @discussion Starts up Appboy and tells it that your app is done launching. You should call this
* method in your App Delegate application:didFinishLaunchingWithOptions method before calling makeKeyAndVisible,
* accessing [Appboy sharedInstance] or otherwise rendering Appboy view controllers. Your apiKey comes from
* the appboy.com dashboard where you registered your app.
*/
+ (void) startWithApiKey:(NSString *)apiKey
inApplication:(UIApplication *)application
withLaunchOptions:(nullable NSDictionary *)launchOptions;

/*!
* @param apiKey The app's API key
* @param inApplication The current app
* @param withLaunchOptions The options NSDictionary that you get from application:didFinishLaunchingWithOptions
* @param appboyOptions An optional NSDictionary with startup configuration values for Appboy. This currently supports
* ABKRequestProcessingPolicyOptionKey, ABKSocialAccountAcquisitionPolicyOptionKey and ABKFlushIntervalOptionKey. See below
* for more information.
*
* @discussion Starts up Appboy and tells it that your app is done launching. You should call this
* method in your App Delegate application:didFinishLaunchingWithOptions method before calling makeKeyAndVisible,
* accessing [Appboy sharedInstance] or otherwise rendering Appboy view controllers. Your apiKey comes from
* the appboy.com dashboard where you registered your app.
*/
+ (void) startWithApiKey:(NSString *)apiKey
inApplication:(UIApplication *)application
withLaunchOptions:(nullable NSDictionary *)launchOptions
withAppboyOptions:(nullable NSDictionary *)appboyOptions;

/* ------------------------------------------------------------------------------------------------------
* Properties
*/
Expand Down
Binary file modified AppboyKit/libAppboyKitLibrary.a
Binary file not shown.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2.19.2
- Fixes a bug where users who went from being eligible for triggered messages to not being eligible for any triggered messages didn't see their local triggers configuration get updated. This has already been fixed with a server-side update for affected versions; this update fixes the issue client-side.
- Updates headers to be compatible with Swift 2.2.
- Adds warning when messaging doesn't succeed because SDWebImage is not integrated.

## 2.19.1
- Analytics are now logged for in-app messages and in-app message buttons with 'ABKInAppMessageNoneClickAction' click actions. `ABKInAppMessageNoneClickAction` is set when an in-app message on the dashboard has a click action that only closes the in-app message; formerly this did not count as a click.
- Fixes the benign issue that caused the log message `*** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL`.
Expand Down
Loading

0 comments on commit ce547bf

Please sign in to comment.