static framework without apple pay

This commit is contained in:
Jack Flintermann 2015-01-13 19:28:16 -05:00
parent 3c3388abab
commit 731da63929
42 changed files with 3047 additions and 1123 deletions

View File

@ -400,8 +400,8 @@
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(TARGET_BUILD_DIR)/**",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../Stripe/**",
);
INFOPLIST_FILE = "StripeExample/Stripe iOS Example-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@ -429,8 +429,8 @@
GCC_PREPROCESSOR_DEFINITIONS = STRIPE_ENABLE_APPLEPAY;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(TARGET_BUILD_DIR)/**",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../Stripe/**",
);
INFOPLIST_FILE = "StripeExample/Stripe iOS Example-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;

View File

@ -0,0 +1,24 @@
//
// STPAPIClient+ApplePay.h
// Stripe
//
// Created by Jack Flintermann on 12/19/14.
//
#import "STPAPIClient.h"
#import <PassKit/PassKit.h>
@interface STPAPIClient (ApplePay)
/**
* Converts a PKPayment object into a Stripe token using the Stripe API.
*
* @param payment The user's encrypted payment information as returned from a PKPaymentAuthorizationViewController. Cannot be nil.
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithPayment:(PKPayment *)payment completion:(STPCompletionBlock)completion;
// Form-encodes a PKPayment object for POSTing to the Stripe API. This method is used internally by STPAPIClient; you should not use it in your own code.
+ (NSData *)formEncodedDataForPayment:(PKPayment *)payment;
@end

View File

@ -0,0 +1,200 @@
//
// STPAPIClient.h
// StripeExample
//
// Created by Jack Flintermann on 12/18/14.
// Copyright (c) 2014 Stripe. All rights reserved.
//
#import <Foundation/Foundation.h>
static NSString *const STPSDKVersion = @"3.0.0";
@class STPBankAccount, STPCard, STPToken;
/**
* A callback to be run with the response from the Stripe API.
*
* @param token The Stripe token from the response. Will be nil if an error occurs. @see STPToken
* @param error The error returned from the response, or nil in one occurs. @see StripeError.h for possible values.
*/
typedef void (^STPCompletionBlock)(STPToken *token, NSError *error);
/**
A top-level class that imports the rest of the Stripe SDK. This class used to contain several methods to create Stripe tokens, but those are now deprecated in
favor of STPAPIClient.
*/
@interface Stripe : NSObject
/**
* Set your Stripe API key with this method. New instances of STPAPIClient will be initialized with this value. You should call this method as early as
* possible in your application's lifecycle, preferably in your AppDelegate.
*
* @param publishableKey Your publishable key, obtained from https://stripe.com/account/apikeys
* @warning Make sure not to ship your test API keys to the App Store! This will log a warning if you use your test key in a release build.
*/
+ (void)setDefaultPublishableKey:(NSString *)publishableKey;
/// The current default publishable key.
+ (NSString *)defaultPublishableKey;
@end
/// A client for making connections to the Stripe API.
@interface STPAPIClient : NSObject
/**
* A shared singleton API client. Its API key will be initially equal to [Stripe defaultPublishableKey].
*/
+ (instancetype)sharedClient;
- (instancetype)initWithPublishableKey:(NSString *)publishableKey NS_DESIGNATED_INITIALIZER;
/**
* @see [Stripe setDefaultPublishableKey:]
*/
@property (nonatomic, copy) NSString *publishableKey;
/**
* The operation queue on which to run the url connection and delegate methods. Cannot be nil. @see NSURLConnection
*/
@property (nonatomic) NSOperationQueue *operationQueue;
@end
#pragma mark Bank Accounts
@interface STPAPIClient (BankAccounts)
/**
* Converts an STPBankAccount object into a Stripe token using the Stripe API.
*
* @param bankAccount The user's bank account details. Cannot be nil. @see https://stripe.com/docs/api#create_bank_account_token
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount completion:(STPCompletionBlock)completion;
@end
#pragma mark Credit Cards
@interface STPAPIClient (CreditCards)
/**
* Converts an STPCard object into a Stripe token using the Stripe API.
*
* @param card The user's card details. Cannot be nil. @see https://stripe.com/docs/api#create_card_token
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithCard:(STPCard *)card completion:(STPCompletionBlock)completion;
@end
// These methods are used internally and exposed here only for the sake of writing tests more easily. You should not use them in your own application.
@interface STPAPIClient (PrivateMethods)
- (void)createTokenWithData:(NSData *)data completion:(STPCompletionBlock)completion;
@end
#pragma mark - Deprecated Methods
// These methods are deprecated. You should instead use STPAPIClient to create tokens.
// Example: [Stripe createTokenWithCard:card completion:completion];
// becomes [[STPAPIClient sharedClient] createTokenWithCard:card completion:completion];
@interface Stripe (Deprecated)
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param card The user's card details. @see STPCard
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue.
*
* @param card The user's card details. @see STPCard
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card publishableKey:(NSString *)publishableKey completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user.
*
* @param card The user's card details. @see STPCard
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card operationQueue:(NSOperationQueue *)queue completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user.
*
* @param card The user's card details. @see STPCard
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card
publishableKey:(NSString *)publishableKey
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
publishableKey:(NSString *)publishableKey
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
publishableKey:(NSString *)publishableKey
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
@end

View File

@ -0,0 +1,76 @@
//
// STPBankAccount.h
// Stripe
//
// Created by Charles Scalesse on 10/1/14.
//
//
#import <Foundation/Foundation.h>
/**
* Representation of a user's credit card details. You can assemble these with information that your user enters and
* then create Stripe tokens with them using an STPAPIClient. @see https://stripe.com/docs/api#create_bank_account_token
*/
@interface STPBankAccount : NSObject
/**
* The account number for the bank account. Currently must be a checking account.
*/
@property (nonatomic, copy) NSString *accountNumber;
/**
* The routing number for the bank account. This should be the ACH routing number, not the wire routing number.
*/
@property (nonatomic, copy) NSString *routingNumber;
/**
* The country the bank account is in. Currently, only US is supported.
*/
@property (nonatomic, copy) NSString *country;
#pragma mark - These fields are only present on objects returned from the Stripe API.
/**
* The Stripe ID for the bank account.
*/
@property (nonatomic, readonly) NSString *bankAccountId;
/**
* The last 4 digits of the account number.
*/
@property (nonatomic, readonly) NSString *last4;
/**
* The name of the bank that owns the account.
*/
@property (nonatomic, readonly) NSString *bankName;
/**
* A proxy for the account number, this uniquely identifies the account and can be used to compare equality of different bank accounts.
*/
@property (nonatomic, readonly) NSString *fingerprint;
/**
* The default currency for the bank account.
*/
@property (nonatomic, readonly) NSString *currency;
/**
* Whether or not the bank account has been validated via microdeposits or other means.
*/
@property (nonatomic, readonly) BOOL validated;
/**
* Whether or not the bank account is currently disabled.
*/
@property (nonatomic, readonly) BOOL disabled;
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in your own code.
@interface STPBankAccount (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,133 @@
//
// STPCard.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/2/12.
//
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, STPCardFundingType) {
STPCardFundingTypeDebit,
STPCardFundingTypeCredit,
STPCardFundingTypePrepaid,
STPCardFundingTypeOther,
};
typedef NS_ENUM(NSInteger, STPCardBrand) {
STPCardBrandVisa,
STPCardBrandAmex,
STPCardBrandMasterCard,
STPCardBrandDiscover,
STPCardBrandJCB,
STPCardBrandDinersClub,
STPCardBrandUnknown,
};
/**
* Representation of a user's credit card details. You can assemble these with information that your user enters and
* then create Stripe tokens with them using an STPAPIClient. @see https://stripe.com/docs/api#cards
*/
@interface STPCard : NSObject
/**
* The card's number. This will be nil for cards retrieved from the Stripe API.
*/
@property (nonatomic, copy) NSString *number;
/**
* The last 4 digits of the card. Unlike number, this will be present on cards retrieved from the Stripe API.
*/
@property (nonatomic, readonly) NSString *last4;
/**
* The card's expiration month.
*/
@property (nonatomic) NSUInteger expMonth;
/**
* The card's expiration month.
*/
@property (nonatomic) NSUInteger expYear;
/**
* The card's security code, found on the back. This will be nil for cards retrieved from the Stripe API.
*/
@property (nonatomic, copy) NSString *cvc;
/**
* The cardholder's name.
*/
@property (nonatomic, copy) NSString *name;
/**
* The cardholder's address.
*/
@property (nonatomic, copy) NSString *addressLine1;
@property (nonatomic, copy) NSString *addressLine2;
@property (nonatomic, copy) NSString *addressCity;
@property (nonatomic, copy) NSString *addressState;
@property (nonatomic, copy) NSString *addressZip;
@property (nonatomic, copy) NSString *addressCountry;
/**
* The Stripe ID for the card.
*/
@property (nonatomic, readonly) NSString *cardId;
/**
* The issuer of the card.
*/
@property (nonatomic, readonly) STPCardBrand brand;
/**
* The issuer of the card.
* Can be one of "Visa", "American Express", "MasterCard", "Discover", "JCB", "Diners Club", or "Unknown"
* @deprecated use "brand" instead.
*/
@property (nonatomic, readonly) NSString *type __attribute__((deprecated));
/**
* The funding source for the card (credit, debit, prepaid, or other)
*/
@property (nonatomic, readonly) STPCardFundingType funding;
/**
* A proxy for the card's number, this uniquely identifies the credit card and can be used to compare different cards.
*/
@property (nonatomic, readonly) NSString *fingerprint;
/**
* Two-letter ISO code representing the issuing country of the card.
*/
@property (nonatomic, readonly) NSString *country;
// These validation methods work as described in
// http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Validation.html#//apple_ref/doc/uid/20002173-CJBDBHCB
- (BOOL)validateNumber:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateCvc:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateExpMonth:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateExpYear:(id *)ioValue error:(NSError **)outError;
/**
* This validates a fully populated card to check for all errors, including ones that come about
* from the interaction of more than one property. It will also do all the validations on individual
* properties, so if you only want to call one method on your card to validate it after setting all the
* properties, call this one
*
* @param outError a pointer to an NSError that, after calling this method, will be populated with an error if the card is not valid. See StripeError.h for
possible values
*
* @return whether or not the card is valid.
*/
- (BOOL)validateCardReturningError:(NSError **)outError;
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in
// your own code.
@interface STPCard (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,118 @@
//
// STPCheckoutOptions.h
// StripeExample
//
// Created by Jack Flintermann on 10/6/14.
//
#import <Foundation/Foundation.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <AppKit/AppKit.h>
#endif
/**
* This class represents a configurable set of options that you can pass to an STPCheckoutViewController or an STPPaymentPresenter to control the appearance of
* Stripe Checkout. For more information on how these properties behave, see https://stripe.com/docs/checkout#integration-custom
*/
@interface STPCheckoutOptions : NSObject<NSCopying>
#pragma mark - Required options
/**
* The Stripe publishable key to use for your Checkout requests. Defaults to [Stripe defaultPublishableKey]. Required.
*/
@property (nonatomic, copy) NSString *publishableKey;
#pragma mark - Strongly recommended options
/**
* The merchant ID that you've obtained from Apple while creating your Apple Pay certificate. If you haven't done this, you can learn how at
* https://stripe.com/docs/mobile/apple-pay . This property needs to be set in order to use Apple Pay with STPPaymentPresenter.
*/
@property (nonatomic, copy) NSString *appleMerchantId;
/**
* This can be an external image URL that will load in the header of Stripe Checkout. This takes precedent over the logoImage property. The recommended minimum
* size for this image is 128x128px.
*/
@property (nonatomic, copy) NSURL *logoURL;
/**
* You can also specify a local UIImage to be used as the Checkout logo header (see logoURL).
*/
#if TARGET_OS_IPHONE
@property (nonatomic) UIImage *logoImage;
#else
@property (nonatomic) NSImage *logoImage;
#endif
/**
* This specifies the color of the header shown in Stripe Checkout. If you specify a logoURL (but not a logoImage) and leave this property nil, Checkout will
* auto-detect the background color of the image you point to and use that as the header color.
*/
#if TARGET_OS_IPHONE
@property (nonatomic, copy) UIColor *logoColor;
#else
@property (nonatomic, copy) NSColor *logoColor;
#endif
/**
* The name of your company or website. Displayed in the header. Defaults to your app's name. This property needs to be set in order to use Apple Pay with
* STPPaymentPresenter.
*/
@property (nonatomic, copy) NSString *companyName;
/**
* A description of the product or service being purchased. Appears in the header.
*/
@property (nonatomic, copy) NSString *purchaseDescription;
/**
* The amount (in cents) that's shown to the user. Note that this is for display purposes only; you will still have to explicitly specify the amount when you
* create a charge using the Stripe API. This property needs to be set in order to use Apple Pay with STPPaymentPresenter.
*/
@property (nonatomic, copy) NSNumber *purchaseAmount;
/**
* If you already know the email address of your user, you can provide it to Checkout to be pre-filled.
*/
@property (nonatomic, copy) NSString *customerEmail;
#pragma mark - Additional options
/**
* The label of the payment button in the Checkout form (e.g. Subscribe, Pay {{amount}}, etc.). If you include {{amount}}, it will be replaced by the
* provided amount. Otherwise, the amount will be appended to the end of your label. Defaults to "Pay {{amount}}".
*/
@property (nonatomic, copy) NSString *purchaseLabel;
/**
* The currency of the amount (3-letter ISO code). The default is "USD".
*/
@property (nonatomic, copy) NSString *purchaseCurrency;
/**
* Specify whether to include the option to "Remember Me" for future purchases (true or false). The default is true.
*/
@property (nonatomic, copy) NSNumber *enableRememberMe;
/**
* Specify whether Checkout should validate your user's billing ZIP code (true or false). The default is false.
*/
@property (nonatomic, copy) NSNumber *enablePostalCode;
/**
* Specify whether Checkout should require the user to enter their billing address. The default is false.
*/
@property (nonatomic, copy) NSNumber *requireBillingAddress;
/**
* Used internally by Stripe Checkout.
*
* @return a JSON string representing the options.
*/
- (NSString *)stringifiedJSONRepresentation;
@end

View File

@ -0,0 +1,88 @@
//
// STPCheckoutViewController.h
// StripeExample
//
// Created by Jack Flintermann on 9/15/14.
//
#import <Foundation/Foundation.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <AppKit/AppKit.h>
#endif
@class STPCheckoutOptions, STPToken;
@protocol STPCheckoutViewControllerDelegate;
/**
Controls a UIWebView that loads an iOS-optimized version of Stripe Checkout that you can present modally. Note
that if you're using an STPPaymentPresenter to collect your user's payment details (highly recommended), you do not have to use this class directly.
*/
#if TARGET_OS_IPHONE
@interface STPCheckoutViewController : UINavigationController
#else
@interface STPCheckoutViewController : NSViewController
#endif
/**
* Creates an STPCheckoutViewController with the desired options. The options are copied at this step, so changing any of their values after instantiating an
*STPCheckoutViewController will have no effect.
*
* @param options A configuration object that describes how to display Stripe Checkout.
*
*/
- (instancetype)initWithOptions:(STPCheckoutOptions *)options NS_DESIGNATED_INITIALIZER;
@property (nonatomic, readonly, copy) STPCheckoutOptions *options;
/**
* Note: you must set a delegate before showing an STPViewController.
*/
@property (nonatomic, weak) id<STPCheckoutViewControllerDelegate> checkoutDelegate;
@end
@protocol STPCheckoutViewControllerDelegate<NSObject>
/**
* Called when the user taps the cancel button inside the Checkout web view.
*
* @param controller the controller that was canceled.
*/
- (void)checkoutControllerDidCancel:(STPCheckoutViewController *)controller;
/**
* Called when the checkout view controller has finished displaying the "success" or "error" animation. At this point, the controller is done with its work.
*You should dismiss the view controller at this point, probably by calling `dismissViewControllerAnimated:completion:`.
*
* @param controller the controller that has finished.
*/
- (void)checkoutControllerDidFinish:(STPCheckoutViewController *)controller;
/**
* Use these options to inform Stripe Checkout of the success or failure of your backend charge.
*/
typedef NS_ENUM(NSInteger, STPBackendChargeResult) {
STPBackendChargeResultSuccess, // Passing this value will display a "success" animation in the payment button.
STPBackendChargeResultFailure, // Passing this value will display an "error" animation in the payment button.
};
typedef void (^STPTokenSubmissionHandler)(STPBackendChargeResult status, NSError *error);
/**
* After the user has provided valid credit card information and pressed the "pay" button, Checkout will communicate with Stripe and obtain a tokenized version
of their credit card.
At this point, you should submit this token to your backend, which should use this token to create a charge. For more information on this, see
// The delegate must call completion with an appropriate authorization status, as may be determined
// by submitting the payment credential to a processing gateway for payment authorization.
*
* @param controller the checkout controller being presented
* @param token a Stripe token
* @param completion call this function with STPBackendChargeResultSuccess/Failure when you're done charging your user
*/
- (void)checkoutController:(STPCheckoutViewController *)controller didCreateToken:(STPToken *)token completion:(STPTokenSubmissionHandler)completion;
- (void)checkoutController:(STPCheckoutViewController *)controller didFailWithError:(NSError *)error;
@end

View File

@ -0,0 +1,119 @@
//
// STPPaymentPresenter.h
// Stripe
//
// Created by Jack Flintermann on 11/25/14.
//
#import <Foundation/Foundation.h>
#import "STPCheckoutOptions.h"
#import "STPToken.h"
#import "STPCheckoutViewController.h"
typedef NS_ENUM(NSInteger, STPPaymentStatus) {
STPPaymentStatusSuccess, // The transaction was a success.
STPPaymentStatusError, // The transaction failed.
STPPaymentStatusUserCanceled, // The user canceled the payment sheet.
};
@class PKPaymentRequest, PKPayment, STPPaymentPresenter;
@protocol STPPaymentPresenterDelegate;
/**
* This class allows you to request your user's payment details in the form of a Stripe token. If you give it a PKPaymentRequest and the user's device is
capable of using Apple Pay, it'll automatically use that. If not, it will fall back to use Stripe Checkout. For both methods, it'll automatically turn the
user's credit card into a Stripe token and give the token to its delegate.
You'll need to add STRIPE_ENABLE_APPLEPAY to your app's build settings under "Preprocessor Macros" before using this class. For more information,
see https://stripe.com/docs/mobile/ios#applepay
Example use:
// In your view controller
STPCheckoutOptions *options = ...;
STPPaymentPresenter *presenter = [[STPPaymentPresenter alloc] initWithCheckoutOptions:options
delegate:self];
[presenter requestPaymentFromPresentingViewController:self];
For more context, see ViewController.m in the StripeExample app (which uses STPPaymentPresenter).
*/
@interface STPPaymentPresenter : NSObject
/**
* Initializes a payment presenter.
*
* @param checkoutOptions These options will configure the appearance of Apple Pay and Stripe Checkout. Cannot be nil.
* @param delegate A delegate to receive callbacks around payment creation events. Cannot be nil. For more information see STPPaymentPresenterDelegate
*below.
*
* @return The presenter. After initialization, one cannot modify the checkoutOptions or delegate properties.
*/
- (instancetype)initWithCheckoutOptions:(STPCheckoutOptions *)checkoutOptions delegate:(id<STPPaymentPresenterDelegate>)delegate;
@property (nonatomic, weak, readonly) id<STPPaymentPresenterDelegate> delegate;
@property (nonatomic, copy, readonly) STPCheckoutOptions *checkoutOptions;
/**
* @param presentingViewController Calling this method will tell this view controller to present an appropriate payment view controller (either a
* PKPaymentViewController or STPCheckoutViewController, depending on what the user's device supports) and collect payment details.
*/
- (void)requestPaymentFromPresentingViewController:(UIViewController *)presentingViewController;
@end
@protocol STPPaymentPresenterDelegate<NSObject>
/**
* This method will be called after the user successfully enters their payment information and it's turned into a Stripe token.
Here, you should connect to your backend and use that token to charge the user. When your API call is finished, invoke the completion handler with either
STPBackendChargeResultSuccess or STPBackendChargeResultFailure (optionally, including the NSError that caused the failure) depending on the results of your API
call.
*
* @param presenter The payment presenter that has returned a token
* @param token The returned Stripe token. See https://stripe.com/docs/tutorials/charges for more information on what to do with this on your backend. If
the user used Apple Pay to purchase, the returned PKPayment will be attached to the token. Otherwise, it will be nil.
* @param completion call this block when you're done talking to your backend.
*/
- (void)paymentPresenter:(STPPaymentPresenter *)presenter didCreateStripeToken:(STPToken *)token completion:(STPTokenSubmissionHandler)completion;
/**
* Here, you should respond to the results of the payment request. IMPORTANT: you are responsible for dismissing the payment view controller here. This gives
you time to set up your UI depending on the results of the payment.
Example use:
[self dismissViewControllerAnimated:YES completion:^{
if (error) {
// alert the user to the error
} else if (status == STPPaymentStatusSuccess) {
// yay!
} else {
do nothing, as this means the user cancelled the request.
}
}];
*
* @param presenter The payment presenter that has finished.
* @param status This will be one of STPPaymentStatusSuccess, STPPaymentStatusError, or STPPaymentStatusUserCanceled depending on what happened with the
user's transaction.
* @param error This will only be set if status == STPPaymentStatusError. If you returned STPBackendChargeResultFailure from your API call above, this will
be the error you (optionally) included there. If not, see StripeError.h for the possible values it may contain.
*/
- (void)paymentPresenter:(STPPaymentPresenter *)presenter didFinishWithStatus:(STPPaymentStatus)status error:(NSError *)error;
@optional
/**
* When the user's device is capable of using Apple Pay, STPPaymentPresenter will automatically generate a PKPaymentRequest object based on the
*STPCheckoutOptions you initialized it with. The default is for the request to have 2 PKPaymentSummaryItems: one for the item being purchased (e.g. "BEATS
*HEADPHONES - $200"), followed one with the name of your company for the total amount (e.g. "PAY APPLE $200"). If you'd like to change this (for example, to
*display a more itemized receipt that breaks down the sales tax, etc), you can modify the
*paymentSummaryItems property of the paymentRequest here.
*
* @param presenter the presenter that is deciding which payment UI to display.
* @param request the payment request that has been generated from the presenters checkoutOptions
* @return the modified payment request to display.
*/
- (PKPaymentRequest *)paymentPresenter:(STPPaymentPresenter *)presenter didPreparePaymentRequest:(PKPaymentRequest *)request;
@end

View File

@ -0,0 +1,66 @@
//
// STPToken.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/5/12.
//
//
#import <Foundation/Foundation.h>
@class STPCard;
@class STPBankAccount;
/**
* A token returned from submitting payment details to the Stripe API. You should not have to instantiate one of these directly.
*/
@interface STPToken : NSObject
/**
* The value of the token. You can store this value on your server and use it to make charges and customers. @see
* https://stripe.com/docs/mobile/ios#sending-tokens
*/
@property (nonatomic, readonly) NSString *tokenId;
/**
* Whether or not this token was created in livemode. Will be YES if you used your Live Publishable Key, and NO if you used your Test Publishable Key.
*/
@property (nonatomic, readonly) BOOL livemode;
/**
* The credit card details that were used to create the token. Will only be set if the token was created via a credit card or Apple Pay, otherwise it will be
* nil.
*/
@property (nonatomic, readonly) STPCard *card;
/**
* The bank account details that were used to create the token. Will only be set if the token was created with a bank account, otherwise it will be nil.
*/
@property (nonatomic, readonly) STPBankAccount *bankAccount;
/**
* When the token was created.
*/
@property (nonatomic, readonly) NSDate *created;
typedef void (^STPCardServerResponseCallback)(NSURLResponse *response, NSData *data, NSError *error);
/**
* Form-encode the token and post those parameters to your backend URL.
*
* @param url the URL to upload the token details to
* @param params optional parameters to additionally include in the POST body
* @param handler code to execute with your server's response
* @deprecated you should write your own networking code to talk to your server.
*/
- (void)postToURL:(NSURL *)url withParams:(NSDictionary *)params completion:(STPCardServerResponseCallback)handler __attribute((deprecated));
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in
// your own code.
@interface STPToken (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,61 @@
//
// Stripe+ApplePay.h
// Stripe
//
// Created by Jack Flintermann on 9/17/14.
//
#import <PassKit/PassKit.h>
#import "Stripe.h"
#import "STPAPIClient+ApplePay.h"
@class Stripe;
@interface Stripe (ApplePay)
/**
* Whether or not this device is capable of using Apple Pay. This checks both whether the user is running an iPhone 6/6+ or later, iPad Air 2 or later, or iPad
*mini 3 or later, as well as whether or not they have stored any cards in Apple Pay on their device.
*
* @param paymentRequest The return value of this method depends on the supportedNetworks property of this payment request, which by default should be
*@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa].
*
* @return whether or not the user is currently able to pay with Apple Pay.
*/
+ (BOOL)canSubmitPaymentRequest:(PKPaymentRequest *)paymentRequest;
/**
* A convenience method to return a PKPaymentRequest with sane default values. You will still need to configure the paymentSummaryItems property to indicate
*what the user is purchasing, as well as the optional requiredShippingAddressFields, requiredBillingAddressFields, and shippingMethods properties to indicate
*what contact information your application requires.
*
* @param merchantIdentifier Your Apple Merchant ID, as obtained at https://developer.apple.com/account/ios/identifiers/merchant/merchantCreate.action
*
* @return a PKPaymentRequest with proper default values.
*/
+ (PKPaymentRequest *)paymentRequestWithMerchantIdentifier:(NSString *)merchantIdentifier;
#pragma mark - deprecated methods
/**
* Securely convert your user's Apple Pay payment information into a Stripe token, which you can then safely store on your server and use to charge the user.
* The URL connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param payment The PKPayment instance to convert, as returned from a PKPaymentAuthorizationViewController
* @param handler Code to run when the token has been returned (along with any errors encountered).
* @deprecated use [[STPAPIClient sharedClient] createTokenWithPayment:completion:] instead.
*/
+ (void)createTokenWithPayment:(PKPayment *)payment completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's Apple Pay payment information into a Stripe token, which you can then safely store on your server and use to charge the user.
* The URL connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param payment The PKPayment instance to convert, as returned from a PKPaymentAuthorizationViewController
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the token has been returned (along with any errors encountered).
* @deprecated use [[STPAPIClient sharedClient] createTokenWithPayment:completion:] instead.
*/
+ (void)createTokenWithPayment:(PKPayment *)payment operationQueue:(NSOperationQueue *)queue completion:(STPCompletionBlock)handler __attribute__((deprecated));
@end

View File

@ -0,0 +1,25 @@
//
// Stripe.h
// Stripe
//
// Created by Saikat Chakrabarti on 10/30/12.
// Copyright (c) 2012 Stripe. All rights reserved.
//
#import "STPAPIClient.h"
#import "StripeError.h"
#import "STPBankAccount.h"
#import "STPCard.h"
#import "STPToken.h"
#import "STPCheckoutOptions.h"
#import "STPCheckoutViewController.h"
#if TARGET_OS_IPHONE
#import "STPPaymentPresenter.h"
#endif
//! Project version number for Stripe.
FOUNDATION_EXPORT double StripeVersionNumber;
//! Project version string for Stripe.
FOUNDATION_EXPORT const unsigned char StripeVersionString[];

View File

@ -0,0 +1,65 @@
//
// StripeError.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/4/12.
//
//
#import <Foundation/Foundation.h>
/**
* All Stripe iOS errors will be under this domain.
*/
FOUNDATION_EXPORT NSString *const StripeDomain;
typedef enum STPErrorCode {
STPConnectionError = 40, // Trouble connecting to Stripe.
STPInvalidRequestError = 50, // Your request had invalid parameters.
STPAPIError = 60, // General-purpose API error (should be rare).
STPCardError = 70, // Something was wrong with the given card (most common).
STPCheckoutError = 80, // Stripe Checkout encountered an error.
} STPErrorCode;
#pragma mark userInfo keys
// A developer-friendly error message that explains what went wrong. You probably
// shouldn't show this to your users, but might want to use it yourself.
FOUNDATION_EXPORT NSString *const STPErrorMessageKey;
// What went wrong with your STPCard (e.g., STPInvalidCVC. See below for full list).
FOUNDATION_EXPORT NSString *const STPCardErrorCodeKey;
// Which parameter on the STPCard had an error (e.g., "cvc"). Useful for marking up the
// right UI element.
FOUNDATION_EXPORT NSString *const STPErrorParameterKey;
#pragma mark STPCardErrorCodeKeys
// (Usually determined locally:)
FOUNDATION_EXPORT NSString *const STPInvalidNumber;
FOUNDATION_EXPORT NSString *const STPInvalidExpMonth;
FOUNDATION_EXPORT NSString *const STPInvalidExpYear;
FOUNDATION_EXPORT NSString *const STPInvalidCVC;
// (Usually sent from the server:)
FOUNDATION_EXPORT NSString *const STPIncorrectNumber;
FOUNDATION_EXPORT NSString *const STPExpiredCard;
FOUNDATION_EXPORT NSString *const STPCardDeclined;
FOUNDATION_EXPORT NSString *const STPProcessingError;
FOUNDATION_EXPORT NSString *const STPIncorrectCVC;
#pragma mark Strings
#define STPCardErrorInvalidNumberUserMessage NSLocalizedString(@"Your card's number is invalid", @"Error when the card number is not valid")
#define STPCardErrorInvalidCVCUserMessage NSLocalizedString(@"Your card's security code is invalid", @"Error when the card's CVC is not valid")
#define STPCardErrorInvalidExpMonthUserMessage \
NSLocalizedString(@"Your card's expiration month is invalid", @"Error when the card's expiration month is not valid")
#define STPCardErrorInvalidExpYearUserMessage \
NSLocalizedString(@"Your card's expiration year is invalid", @"Error when the card's expiration year is not valid")
#define STPCardErrorExpiredCardUserMessage NSLocalizedString(@"Your card has expired", @"Error when the card has already expired")
#define STPCardErrorDeclinedUserMessage NSLocalizedString(@"Your card was declined", @"Error when the card was declined by the credit card networks")
#define STPUnexpectedError \
NSLocalizedString(@"There was an unexpected error -- try again in a few seconds", @"Unexpected error, such as a 500 from Stripe or a JSON parse error")
#define STPCardErrorProcessingErrorUserMessage \
NSLocalizedString(@"There was an error processing your card -- try again in a few seconds", @"Error when there is a problem processing the credit card")

View File

@ -0,0 +1,24 @@
//
// STPAPIClient+ApplePay.h
// Stripe
//
// Created by Jack Flintermann on 12/19/14.
//
#import "STPAPIClient.h"
#import <PassKit/PassKit.h>
@interface STPAPIClient (ApplePay)
/**
* Converts a PKPayment object into a Stripe token using the Stripe API.
*
* @param payment The user's encrypted payment information as returned from a PKPaymentAuthorizationViewController. Cannot be nil.
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithPayment:(PKPayment *)payment completion:(STPCompletionBlock)completion;
// Form-encodes a PKPayment object for POSTing to the Stripe API. This method is used internally by STPAPIClient; you should not use it in your own code.
+ (NSData *)formEncodedDataForPayment:(PKPayment *)payment;
@end

View File

@ -0,0 +1,200 @@
//
// STPAPIClient.h
// StripeExample
//
// Created by Jack Flintermann on 12/18/14.
// Copyright (c) 2014 Stripe. All rights reserved.
//
#import <Foundation/Foundation.h>
static NSString *const STPSDKVersion = @"3.0.0";
@class STPBankAccount, STPCard, STPToken;
/**
* A callback to be run with the response from the Stripe API.
*
* @param token The Stripe token from the response. Will be nil if an error occurs. @see STPToken
* @param error The error returned from the response, or nil in one occurs. @see StripeError.h for possible values.
*/
typedef void (^STPCompletionBlock)(STPToken *token, NSError *error);
/**
A top-level class that imports the rest of the Stripe SDK. This class used to contain several methods to create Stripe tokens, but those are now deprecated in
favor of STPAPIClient.
*/
@interface Stripe : NSObject
/**
* Set your Stripe API key with this method. New instances of STPAPIClient will be initialized with this value. You should call this method as early as
* possible in your application's lifecycle, preferably in your AppDelegate.
*
* @param publishableKey Your publishable key, obtained from https://stripe.com/account/apikeys
* @warning Make sure not to ship your test API keys to the App Store! This will log a warning if you use your test key in a release build.
*/
+ (void)setDefaultPublishableKey:(NSString *)publishableKey;
/// The current default publishable key.
+ (NSString *)defaultPublishableKey;
@end
/// A client for making connections to the Stripe API.
@interface STPAPIClient : NSObject
/**
* A shared singleton API client. Its API key will be initially equal to [Stripe defaultPublishableKey].
*/
+ (instancetype)sharedClient;
- (instancetype)initWithPublishableKey:(NSString *)publishableKey NS_DESIGNATED_INITIALIZER;
/**
* @see [Stripe setDefaultPublishableKey:]
*/
@property (nonatomic, copy) NSString *publishableKey;
/**
* The operation queue on which to run the url connection and delegate methods. Cannot be nil. @see NSURLConnection
*/
@property (nonatomic) NSOperationQueue *operationQueue;
@end
#pragma mark Bank Accounts
@interface STPAPIClient (BankAccounts)
/**
* Converts an STPBankAccount object into a Stripe token using the Stripe API.
*
* @param bankAccount The user's bank account details. Cannot be nil. @see https://stripe.com/docs/api#create_bank_account_token
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount completion:(STPCompletionBlock)completion;
@end
#pragma mark Credit Cards
@interface STPAPIClient (CreditCards)
/**
* Converts an STPCard object into a Stripe token using the Stripe API.
*
* @param card The user's card details. Cannot be nil. @see https://stripe.com/docs/api#create_card_token
* @param completion The callback to run with the returned Stripe token (and any errors that may have occurred).
*/
- (void)createTokenWithCard:(STPCard *)card completion:(STPCompletionBlock)completion;
@end
// These methods are used internally and exposed here only for the sake of writing tests more easily. You should not use them in your own application.
@interface STPAPIClient (PrivateMethods)
- (void)createTokenWithData:(NSData *)data completion:(STPCompletionBlock)completion;
@end
#pragma mark - Deprecated Methods
// These methods are deprecated. You should instead use STPAPIClient to create tokens.
// Example: [Stripe createTokenWithCard:card completion:completion];
// becomes [[STPAPIClient sharedClient] createTokenWithCard:card completion:completion];
@interface Stripe (Deprecated)
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param card The user's card details. @see STPCard
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue.
*
* @param card The user's card details. @see STPCard
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card publishableKey:(NSString *)publishableKey completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user.
*
* @param card The user's card details. @see STPCard
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card operationQueue:(NSOperationQueue *)queue completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user.
*
* @param card The user's card details. @see STPCard
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithCard:(STPCard *)card
publishableKey:(NSString *)publishableKey
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
publishableKey:(NSString *)publishableKey
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's credit card details into a Stripe token, which you can then safely store on your server and use to charge the user. The URL
*connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param bankAccount The user's bank account details. @see STPBankAccount
* @param publishableKey The API key to use to authenticate with Stripe. Get this at https://stripe.com/account/apikeys .
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the user's card has been turned into a Stripe token.
* @deprecated Use STPAPIClient instead.
*/
+ (void)createTokenWithBankAccount:(STPBankAccount *)bankAccount
publishableKey:(NSString *)publishableKey
operationQueue:(NSOperationQueue *)queue
completion:(STPCompletionBlock)handler __attribute__((deprecated));
@end

View File

@ -0,0 +1,76 @@
//
// STPBankAccount.h
// Stripe
//
// Created by Charles Scalesse on 10/1/14.
//
//
#import <Foundation/Foundation.h>
/**
* Representation of a user's credit card details. You can assemble these with information that your user enters and
* then create Stripe tokens with them using an STPAPIClient. @see https://stripe.com/docs/api#create_bank_account_token
*/
@interface STPBankAccount : NSObject
/**
* The account number for the bank account. Currently must be a checking account.
*/
@property (nonatomic, copy) NSString *accountNumber;
/**
* The routing number for the bank account. This should be the ACH routing number, not the wire routing number.
*/
@property (nonatomic, copy) NSString *routingNumber;
/**
* The country the bank account is in. Currently, only US is supported.
*/
@property (nonatomic, copy) NSString *country;
#pragma mark - These fields are only present on objects returned from the Stripe API.
/**
* The Stripe ID for the bank account.
*/
@property (nonatomic, readonly) NSString *bankAccountId;
/**
* The last 4 digits of the account number.
*/
@property (nonatomic, readonly) NSString *last4;
/**
* The name of the bank that owns the account.
*/
@property (nonatomic, readonly) NSString *bankName;
/**
* A proxy for the account number, this uniquely identifies the account and can be used to compare equality of different bank accounts.
*/
@property (nonatomic, readonly) NSString *fingerprint;
/**
* The default currency for the bank account.
*/
@property (nonatomic, readonly) NSString *currency;
/**
* Whether or not the bank account has been validated via microdeposits or other means.
*/
@property (nonatomic, readonly) BOOL validated;
/**
* Whether or not the bank account is currently disabled.
*/
@property (nonatomic, readonly) BOOL disabled;
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in your own code.
@interface STPBankAccount (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,133 @@
//
// STPCard.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/2/12.
//
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, STPCardFundingType) {
STPCardFundingTypeDebit,
STPCardFundingTypeCredit,
STPCardFundingTypePrepaid,
STPCardFundingTypeOther,
};
typedef NS_ENUM(NSInteger, STPCardBrand) {
STPCardBrandVisa,
STPCardBrandAmex,
STPCardBrandMasterCard,
STPCardBrandDiscover,
STPCardBrandJCB,
STPCardBrandDinersClub,
STPCardBrandUnknown,
};
/**
* Representation of a user's credit card details. You can assemble these with information that your user enters and
* then create Stripe tokens with them using an STPAPIClient. @see https://stripe.com/docs/api#cards
*/
@interface STPCard : NSObject
/**
* The card's number. This will be nil for cards retrieved from the Stripe API.
*/
@property (nonatomic, copy) NSString *number;
/**
* The last 4 digits of the card. Unlike number, this will be present on cards retrieved from the Stripe API.
*/
@property (nonatomic, readonly) NSString *last4;
/**
* The card's expiration month.
*/
@property (nonatomic) NSUInteger expMonth;
/**
* The card's expiration month.
*/
@property (nonatomic) NSUInteger expYear;
/**
* The card's security code, found on the back. This will be nil for cards retrieved from the Stripe API.
*/
@property (nonatomic, copy) NSString *cvc;
/**
* The cardholder's name.
*/
@property (nonatomic, copy) NSString *name;
/**
* The cardholder's address.
*/
@property (nonatomic, copy) NSString *addressLine1;
@property (nonatomic, copy) NSString *addressLine2;
@property (nonatomic, copy) NSString *addressCity;
@property (nonatomic, copy) NSString *addressState;
@property (nonatomic, copy) NSString *addressZip;
@property (nonatomic, copy) NSString *addressCountry;
/**
* The Stripe ID for the card.
*/
@property (nonatomic, readonly) NSString *cardId;
/**
* The issuer of the card.
*/
@property (nonatomic, readonly) STPCardBrand brand;
/**
* The issuer of the card.
* Can be one of "Visa", "American Express", "MasterCard", "Discover", "JCB", "Diners Club", or "Unknown"
* @deprecated use "brand" instead.
*/
@property (nonatomic, readonly) NSString *type __attribute__((deprecated));
/**
* The funding source for the card (credit, debit, prepaid, or other)
*/
@property (nonatomic, readonly) STPCardFundingType funding;
/**
* A proxy for the card's number, this uniquely identifies the credit card and can be used to compare different cards.
*/
@property (nonatomic, readonly) NSString *fingerprint;
/**
* Two-letter ISO code representing the issuing country of the card.
*/
@property (nonatomic, readonly) NSString *country;
// These validation methods work as described in
// http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Validation.html#//apple_ref/doc/uid/20002173-CJBDBHCB
- (BOOL)validateNumber:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateCvc:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateExpMonth:(id *)ioValue error:(NSError **)outError;
- (BOOL)validateExpYear:(id *)ioValue error:(NSError **)outError;
/**
* This validates a fully populated card to check for all errors, including ones that come about
* from the interaction of more than one property. It will also do all the validations on individual
* properties, so if you only want to call one method on your card to validate it after setting all the
* properties, call this one
*
* @param outError a pointer to an NSError that, after calling this method, will be populated with an error if the card is not valid. See StripeError.h for
possible values
*
* @return whether or not the card is valid.
*/
- (BOOL)validateCardReturningError:(NSError **)outError;
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in
// your own code.
@interface STPCard (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,118 @@
//
// STPCheckoutOptions.h
// StripeExample
//
// Created by Jack Flintermann on 10/6/14.
//
#import <Foundation/Foundation.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <AppKit/AppKit.h>
#endif
/**
* This class represents a configurable set of options that you can pass to an STPCheckoutViewController or an STPPaymentPresenter to control the appearance of
* Stripe Checkout. For more information on how these properties behave, see https://stripe.com/docs/checkout#integration-custom
*/
@interface STPCheckoutOptions : NSObject<NSCopying>
#pragma mark - Required options
/**
* The Stripe publishable key to use for your Checkout requests. Defaults to [Stripe defaultPublishableKey]. Required.
*/
@property (nonatomic, copy) NSString *publishableKey;
#pragma mark - Strongly recommended options
/**
* The merchant ID that you've obtained from Apple while creating your Apple Pay certificate. If you haven't done this, you can learn how at
* https://stripe.com/docs/mobile/apple-pay . This property needs to be set in order to use Apple Pay with STPPaymentPresenter.
*/
@property (nonatomic, copy) NSString *appleMerchantId;
/**
* This can be an external image URL that will load in the header of Stripe Checkout. This takes precedent over the logoImage property. The recommended minimum
* size for this image is 128x128px.
*/
@property (nonatomic, copy) NSURL *logoURL;
/**
* You can also specify a local UIImage to be used as the Checkout logo header (see logoURL).
*/
#if TARGET_OS_IPHONE
@property (nonatomic) UIImage *logoImage;
#else
@property (nonatomic) NSImage *logoImage;
#endif
/**
* This specifies the color of the header shown in Stripe Checkout. If you specify a logoURL (but not a logoImage) and leave this property nil, Checkout will
* auto-detect the background color of the image you point to and use that as the header color.
*/
#if TARGET_OS_IPHONE
@property (nonatomic, copy) UIColor *logoColor;
#else
@property (nonatomic, copy) NSColor *logoColor;
#endif
/**
* The name of your company or website. Displayed in the header. Defaults to your app's name. This property needs to be set in order to use Apple Pay with
* STPPaymentPresenter.
*/
@property (nonatomic, copy) NSString *companyName;
/**
* A description of the product or service being purchased. Appears in the header.
*/
@property (nonatomic, copy) NSString *purchaseDescription;
/**
* The amount (in cents) that's shown to the user. Note that this is for display purposes only; you will still have to explicitly specify the amount when you
* create a charge using the Stripe API. This property needs to be set in order to use Apple Pay with STPPaymentPresenter.
*/
@property (nonatomic, copy) NSNumber *purchaseAmount;
/**
* If you already know the email address of your user, you can provide it to Checkout to be pre-filled.
*/
@property (nonatomic, copy) NSString *customerEmail;
#pragma mark - Additional options
/**
* The label of the payment button in the Checkout form (e.g. Subscribe, Pay {{amount}}, etc.). If you include {{amount}}, it will be replaced by the
* provided amount. Otherwise, the amount will be appended to the end of your label. Defaults to "Pay {{amount}}".
*/
@property (nonatomic, copy) NSString *purchaseLabel;
/**
* The currency of the amount (3-letter ISO code). The default is "USD".
*/
@property (nonatomic, copy) NSString *purchaseCurrency;
/**
* Specify whether to include the option to "Remember Me" for future purchases (true or false). The default is true.
*/
@property (nonatomic, copy) NSNumber *enableRememberMe;
/**
* Specify whether Checkout should validate your user's billing ZIP code (true or false). The default is false.
*/
@property (nonatomic, copy) NSNumber *enablePostalCode;
/**
* Specify whether Checkout should require the user to enter their billing address. The default is false.
*/
@property (nonatomic, copy) NSNumber *requireBillingAddress;
/**
* Used internally by Stripe Checkout.
*
* @return a JSON string representing the options.
*/
- (NSString *)stringifiedJSONRepresentation;
@end

View File

@ -0,0 +1,88 @@
//
// STPCheckoutViewController.h
// StripeExample
//
// Created by Jack Flintermann on 9/15/14.
//
#import <Foundation/Foundation.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#else
#import <AppKit/AppKit.h>
#endif
@class STPCheckoutOptions, STPToken;
@protocol STPCheckoutViewControllerDelegate;
/**
Controls a UIWebView that loads an iOS-optimized version of Stripe Checkout that you can present modally. Note
that if you're using an STPPaymentPresenter to collect your user's payment details (highly recommended), you do not have to use this class directly.
*/
#if TARGET_OS_IPHONE
@interface STPCheckoutViewController : UINavigationController
#else
@interface STPCheckoutViewController : NSViewController
#endif
/**
* Creates an STPCheckoutViewController with the desired options. The options are copied at this step, so changing any of their values after instantiating an
*STPCheckoutViewController will have no effect.
*
* @param options A configuration object that describes how to display Stripe Checkout.
*
*/
- (instancetype)initWithOptions:(STPCheckoutOptions *)options NS_DESIGNATED_INITIALIZER;
@property (nonatomic, readonly, copy) STPCheckoutOptions *options;
/**
* Note: you must set a delegate before showing an STPViewController.
*/
@property (nonatomic, weak) id<STPCheckoutViewControllerDelegate> checkoutDelegate;
@end
@protocol STPCheckoutViewControllerDelegate<NSObject>
/**
* Called when the user taps the cancel button inside the Checkout web view.
*
* @param controller the controller that was canceled.
*/
- (void)checkoutControllerDidCancel:(STPCheckoutViewController *)controller;
/**
* Called when the checkout view controller has finished displaying the "success" or "error" animation. At this point, the controller is done with its work.
*You should dismiss the view controller at this point, probably by calling `dismissViewControllerAnimated:completion:`.
*
* @param controller the controller that has finished.
*/
- (void)checkoutControllerDidFinish:(STPCheckoutViewController *)controller;
/**
* Use these options to inform Stripe Checkout of the success or failure of your backend charge.
*/
typedef NS_ENUM(NSInteger, STPBackendChargeResult) {
STPBackendChargeResultSuccess, // Passing this value will display a "success" animation in the payment button.
STPBackendChargeResultFailure, // Passing this value will display an "error" animation in the payment button.
};
typedef void (^STPTokenSubmissionHandler)(STPBackendChargeResult status, NSError *error);
/**
* After the user has provided valid credit card information and pressed the "pay" button, Checkout will communicate with Stripe and obtain a tokenized version
of their credit card.
At this point, you should submit this token to your backend, which should use this token to create a charge. For more information on this, see
// The delegate must call completion with an appropriate authorization status, as may be determined
// by submitting the payment credential to a processing gateway for payment authorization.
*
* @param controller the checkout controller being presented
* @param token a Stripe token
* @param completion call this function with STPBackendChargeResultSuccess/Failure when you're done charging your user
*/
- (void)checkoutController:(STPCheckoutViewController *)controller didCreateToken:(STPToken *)token completion:(STPTokenSubmissionHandler)completion;
- (void)checkoutController:(STPCheckoutViewController *)controller didFailWithError:(NSError *)error;
@end

View File

@ -0,0 +1,119 @@
//
// STPPaymentPresenter.h
// Stripe
//
// Created by Jack Flintermann on 11/25/14.
//
#import <Foundation/Foundation.h>
#import "STPCheckoutOptions.h"
#import "STPToken.h"
#import "STPCheckoutViewController.h"
typedef NS_ENUM(NSInteger, STPPaymentStatus) {
STPPaymentStatusSuccess, // The transaction was a success.
STPPaymentStatusError, // The transaction failed.
STPPaymentStatusUserCanceled, // The user canceled the payment sheet.
};
@class PKPaymentRequest, PKPayment, STPPaymentPresenter;
@protocol STPPaymentPresenterDelegate;
/**
* This class allows you to request your user's payment details in the form of a Stripe token. If you give it a PKPaymentRequest and the user's device is
capable of using Apple Pay, it'll automatically use that. If not, it will fall back to use Stripe Checkout. For both methods, it'll automatically turn the
user's credit card into a Stripe token and give the token to its delegate.
You'll need to add STRIPE_ENABLE_APPLEPAY to your app's build settings under "Preprocessor Macros" before using this class. For more information,
see https://stripe.com/docs/mobile/ios#applepay
Example use:
// In your view controller
STPCheckoutOptions *options = ...;
STPPaymentPresenter *presenter = [[STPPaymentPresenter alloc] initWithCheckoutOptions:options
delegate:self];
[presenter requestPaymentFromPresentingViewController:self];
For more context, see ViewController.m in the StripeExample app (which uses STPPaymentPresenter).
*/
@interface STPPaymentPresenter : NSObject
/**
* Initializes a payment presenter.
*
* @param checkoutOptions These options will configure the appearance of Apple Pay and Stripe Checkout. Cannot be nil.
* @param delegate A delegate to receive callbacks around payment creation events. Cannot be nil. For more information see STPPaymentPresenterDelegate
*below.
*
* @return The presenter. After initialization, one cannot modify the checkoutOptions or delegate properties.
*/
- (instancetype)initWithCheckoutOptions:(STPCheckoutOptions *)checkoutOptions delegate:(id<STPPaymentPresenterDelegate>)delegate;
@property (nonatomic, weak, readonly) id<STPPaymentPresenterDelegate> delegate;
@property (nonatomic, copy, readonly) STPCheckoutOptions *checkoutOptions;
/**
* @param presentingViewController Calling this method will tell this view controller to present an appropriate payment view controller (either a
* PKPaymentViewController or STPCheckoutViewController, depending on what the user's device supports) and collect payment details.
*/
- (void)requestPaymentFromPresentingViewController:(UIViewController *)presentingViewController;
@end
@protocol STPPaymentPresenterDelegate<NSObject>
/**
* This method will be called after the user successfully enters their payment information and it's turned into a Stripe token.
Here, you should connect to your backend and use that token to charge the user. When your API call is finished, invoke the completion handler with either
STPBackendChargeResultSuccess or STPBackendChargeResultFailure (optionally, including the NSError that caused the failure) depending on the results of your API
call.
*
* @param presenter The payment presenter that has returned a token
* @param token The returned Stripe token. See https://stripe.com/docs/tutorials/charges for more information on what to do with this on your backend. If
the user used Apple Pay to purchase, the returned PKPayment will be attached to the token. Otherwise, it will be nil.
* @param completion call this block when you're done talking to your backend.
*/
- (void)paymentPresenter:(STPPaymentPresenter *)presenter didCreateStripeToken:(STPToken *)token completion:(STPTokenSubmissionHandler)completion;
/**
* Here, you should respond to the results of the payment request. IMPORTANT: you are responsible for dismissing the payment view controller here. This gives
you time to set up your UI depending on the results of the payment.
Example use:
[self dismissViewControllerAnimated:YES completion:^{
if (error) {
// alert the user to the error
} else if (status == STPPaymentStatusSuccess) {
// yay!
} else {
do nothing, as this means the user cancelled the request.
}
}];
*
* @param presenter The payment presenter that has finished.
* @param status This will be one of STPPaymentStatusSuccess, STPPaymentStatusError, or STPPaymentStatusUserCanceled depending on what happened with the
user's transaction.
* @param error This will only be set if status == STPPaymentStatusError. If you returned STPBackendChargeResultFailure from your API call above, this will
be the error you (optionally) included there. If not, see StripeError.h for the possible values it may contain.
*/
- (void)paymentPresenter:(STPPaymentPresenter *)presenter didFinishWithStatus:(STPPaymentStatus)status error:(NSError *)error;
@optional
/**
* When the user's device is capable of using Apple Pay, STPPaymentPresenter will automatically generate a PKPaymentRequest object based on the
*STPCheckoutOptions you initialized it with. The default is for the request to have 2 PKPaymentSummaryItems: one for the item being purchased (e.g. "BEATS
*HEADPHONES - $200"), followed one with the name of your company for the total amount (e.g. "PAY APPLE $200"). If you'd like to change this (for example, to
*display a more itemized receipt that breaks down the sales tax, etc), you can modify the
*paymentSummaryItems property of the paymentRequest here.
*
* @param presenter the presenter that is deciding which payment UI to display.
* @param request the payment request that has been generated from the presenters checkoutOptions
* @return the modified payment request to display.
*/
- (PKPaymentRequest *)paymentPresenter:(STPPaymentPresenter *)presenter didPreparePaymentRequest:(PKPaymentRequest *)request;
@end

View File

@ -0,0 +1,66 @@
//
// STPToken.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/5/12.
//
//
#import <Foundation/Foundation.h>
@class STPCard;
@class STPBankAccount;
/**
* A token returned from submitting payment details to the Stripe API. You should not have to instantiate one of these directly.
*/
@interface STPToken : NSObject
/**
* The value of the token. You can store this value on your server and use it to make charges and customers. @see
* https://stripe.com/docs/mobile/ios#sending-tokens
*/
@property (nonatomic, readonly) NSString *tokenId;
/**
* Whether or not this token was created in livemode. Will be YES if you used your Live Publishable Key, and NO if you used your Test Publishable Key.
*/
@property (nonatomic, readonly) BOOL livemode;
/**
* The credit card details that were used to create the token. Will only be set if the token was created via a credit card or Apple Pay, otherwise it will be
* nil.
*/
@property (nonatomic, readonly) STPCard *card;
/**
* The bank account details that were used to create the token. Will only be set if the token was created with a bank account, otherwise it will be nil.
*/
@property (nonatomic, readonly) STPBankAccount *bankAccount;
/**
* When the token was created.
*/
@property (nonatomic, readonly) NSDate *created;
typedef void (^STPCardServerResponseCallback)(NSURLResponse *response, NSData *data, NSError *error);
/**
* Form-encode the token and post those parameters to your backend URL.
*
* @param url the URL to upload the token details to
* @param params optional parameters to additionally include in the POST body
* @param handler code to execute with your server's response
* @deprecated you should write your own networking code to talk to your server.
*/
- (void)postToURL:(NSURL *)url withParams:(NSDictionary *)params completion:(STPCardServerResponseCallback)handler __attribute((deprecated));
@end
// This method is used internally by Stripe to deserialize API responses and exposed here for convenience and testing purposes only. You should not use it in
// your own code.
@interface STPToken (PrivateMethods)
- (instancetype)initWithAttributeDictionary:(NSDictionary *)attributeDictionary;
@end

View File

@ -0,0 +1,61 @@
//
// Stripe+ApplePay.h
// Stripe
//
// Created by Jack Flintermann on 9/17/14.
//
#import <PassKit/PassKit.h>
#import "Stripe.h"
#import "STPAPIClient+ApplePay.h"
@class Stripe;
@interface Stripe (ApplePay)
/**
* Whether or not this device is capable of using Apple Pay. This checks both whether the user is running an iPhone 6/6+ or later, iPad Air 2 or later, or iPad
*mini 3 or later, as well as whether or not they have stored any cards in Apple Pay on their device.
*
* @param paymentRequest The return value of this method depends on the supportedNetworks property of this payment request, which by default should be
*@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa].
*
* @return whether or not the user is currently able to pay with Apple Pay.
*/
+ (BOOL)canSubmitPaymentRequest:(PKPaymentRequest *)paymentRequest;
/**
* A convenience method to return a PKPaymentRequest with sane default values. You will still need to configure the paymentSummaryItems property to indicate
*what the user is purchasing, as well as the optional requiredShippingAddressFields, requiredBillingAddressFields, and shippingMethods properties to indicate
*what contact information your application requires.
*
* @param merchantIdentifier Your Apple Merchant ID, as obtained at https://developer.apple.com/account/ios/identifiers/merchant/merchantCreate.action
*
* @return a PKPaymentRequest with proper default values.
*/
+ (PKPaymentRequest *)paymentRequestWithMerchantIdentifier:(NSString *)merchantIdentifier;
#pragma mark - deprecated methods
/**
* Securely convert your user's Apple Pay payment information into a Stripe token, which you can then safely store on your server and use to charge the user.
* The URL connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param payment The PKPayment instance to convert, as returned from a PKPaymentAuthorizationViewController
* @param handler Code to run when the token has been returned (along with any errors encountered).
* @deprecated use [[STPAPIClient sharedClient] createTokenWithPayment:completion:] instead.
*/
+ (void)createTokenWithPayment:(PKPayment *)payment completion:(STPCompletionBlock)handler __attribute__((deprecated));
/**
* Securely convert your user's Apple Pay payment information into a Stripe token, which you can then safely store on your server and use to charge the user.
* The URL connection will run on the main queue. Uses the value of [Stripe defaultPublishableKey] for authentication.
*
* @param payment The PKPayment instance to convert, as returned from a PKPaymentAuthorizationViewController
* @param queue The operation queue on which to run the URL connection. @see NSURLConnection
* @param handler Code to run when the token has been returned (along with any errors encountered).
* @deprecated use [[STPAPIClient sharedClient] createTokenWithPayment:completion:] instead.
*/
+ (void)createTokenWithPayment:(PKPayment *)payment operationQueue:(NSOperationQueue *)queue completion:(STPCompletionBlock)handler __attribute__((deprecated));
@end

View File

@ -0,0 +1,25 @@
//
// Stripe.h
// Stripe
//
// Created by Saikat Chakrabarti on 10/30/12.
// Copyright (c) 2012 Stripe. All rights reserved.
//
#import "STPAPIClient.h"
#import "StripeError.h"
#import "STPBankAccount.h"
#import "STPCard.h"
#import "STPToken.h"
#import "STPCheckoutOptions.h"
#import "STPCheckoutViewController.h"
#if TARGET_OS_IPHONE
#import "STPPaymentPresenter.h"
#endif
//! Project version number for Stripe.
FOUNDATION_EXPORT double StripeVersionNumber;
//! Project version string for Stripe.
FOUNDATION_EXPORT const unsigned char StripeVersionString[];

View File

@ -0,0 +1,65 @@
//
// StripeError.h
// Stripe
//
// Created by Saikat Chakrabarti on 11/4/12.
//
//
#import <Foundation/Foundation.h>
/**
* All Stripe iOS errors will be under this domain.
*/
FOUNDATION_EXPORT NSString *const StripeDomain;
typedef enum STPErrorCode {
STPConnectionError = 40, // Trouble connecting to Stripe.
STPInvalidRequestError = 50, // Your request had invalid parameters.
STPAPIError = 60, // General-purpose API error (should be rare).
STPCardError = 70, // Something was wrong with the given card (most common).
STPCheckoutError = 80, // Stripe Checkout encountered an error.
} STPErrorCode;
#pragma mark userInfo keys
// A developer-friendly error message that explains what went wrong. You probably
// shouldn't show this to your users, but might want to use it yourself.
FOUNDATION_EXPORT NSString *const STPErrorMessageKey;
// What went wrong with your STPCard (e.g., STPInvalidCVC. See below for full list).
FOUNDATION_EXPORT NSString *const STPCardErrorCodeKey;
// Which parameter on the STPCard had an error (e.g., "cvc"). Useful for marking up the
// right UI element.
FOUNDATION_EXPORT NSString *const STPErrorParameterKey;
#pragma mark STPCardErrorCodeKeys
// (Usually determined locally:)
FOUNDATION_EXPORT NSString *const STPInvalidNumber;
FOUNDATION_EXPORT NSString *const STPInvalidExpMonth;
FOUNDATION_EXPORT NSString *const STPInvalidExpYear;
FOUNDATION_EXPORT NSString *const STPInvalidCVC;
// (Usually sent from the server:)
FOUNDATION_EXPORT NSString *const STPIncorrectNumber;
FOUNDATION_EXPORT NSString *const STPExpiredCard;
FOUNDATION_EXPORT NSString *const STPCardDeclined;
FOUNDATION_EXPORT NSString *const STPProcessingError;
FOUNDATION_EXPORT NSString *const STPIncorrectCVC;
#pragma mark Strings
#define STPCardErrorInvalidNumberUserMessage NSLocalizedString(@"Your card's number is invalid", @"Error when the card number is not valid")
#define STPCardErrorInvalidCVCUserMessage NSLocalizedString(@"Your card's security code is invalid", @"Error when the card's CVC is not valid")
#define STPCardErrorInvalidExpMonthUserMessage \
NSLocalizedString(@"Your card's expiration month is invalid", @"Error when the card's expiration month is not valid")
#define STPCardErrorInvalidExpYearUserMessage \
NSLocalizedString(@"Your card's expiration year is invalid", @"Error when the card's expiration year is not valid")
#define STPCardErrorExpiredCardUserMessage NSLocalizedString(@"Your card has expired", @"Error when the card has already expired")
#define STPCardErrorDeclinedUserMessage NSLocalizedString(@"Your card was declined", @"Error when the card was declined by the credit card networks")
#define STPUnexpectedError \
NSLocalizedString(@"There was an unexpected error -- try again in a few seconds", @"Unexpected error, such as a 500 from Stripe or a JSON parse error")
#define STPCardErrorProcessingErrorUserMessage \
NSLocalizedString(@"There was an error processing your card -- try again in a few seconds", @"Error when there is a problem processing the credit card")

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,319 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
049E84FC1A6077B4000B66CD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 049E84FB1A6077B4000B66CD /* main.m */; };
049E84FF1A6077B4000B66CD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 049E84FE1A6077B4000B66CD /* AppDelegate.m */; };
049E85021A6077B4000B66CD /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 049E85011A6077B4000B66CD /* ViewController.m */; };
049E85051A6077B4000B66CD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 049E85031A6077B4000B66CD /* Main.storyboard */; };
049E85071A6077B5000B66CD /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 049E85061A6077B5000B66CD /* Images.xcassets */; };
049E850A1A6077B5000B66CD /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 049E85081A6077B5000B66CD /* LaunchScreen.xib */; };
049E852C1A60963E000B66CD /* libStripe.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 049E852B1A60963E000B66CD /* libStripe.a */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
049E84F61A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Stripe iOS Example (Without Apple Pay).app"; sourceTree = BUILT_PRODUCTS_DIR; };
049E84FA1A6077B4000B66CD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
049E84FB1A6077B4000B66CD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
049E84FD1A6077B4000B66CD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
049E84FE1A6077B4000B66CD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
049E85001A6077B4000B66CD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
049E85011A6077B4000B66CD /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
049E85041A6077B4000B66CD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
049E85061A6077B5000B66CD /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
049E85091A6077B5000B66CD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
049E852B1A60963E000B66CD /* libStripe.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libStripe.a; path = "../build/Debug-iphoneos/libStripe.a"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
049E84F31A6077B4000B66CD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
049E852C1A60963E000B66CD /* libStripe.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
049E84ED1A6077B4000B66CD = {
isa = PBXGroup;
children = (
049E84F81A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay) */,
049E852D1A60964F000B66CD /* Frameworks */,
049E84F71A6077B4000B66CD /* Products */,
);
sourceTree = "<group>";
};
049E84F71A6077B4000B66CD /* Products */ = {
isa = PBXGroup;
children = (
049E84F61A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay).app */,
);
name = Products;
sourceTree = "<group>";
};
049E84F81A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay) */ = {
isa = PBXGroup;
children = (
049E84FD1A6077B4000B66CD /* AppDelegate.h */,
049E84FE1A6077B4000B66CD /* AppDelegate.m */,
049E85001A6077B4000B66CD /* ViewController.h */,
049E85011A6077B4000B66CD /* ViewController.m */,
049E85031A6077B4000B66CD /* Main.storyboard */,
049E85061A6077B5000B66CD /* Images.xcassets */,
049E85081A6077B5000B66CD /* LaunchScreen.xib */,
049E84F91A6077B4000B66CD /* Supporting Files */,
);
path = "Stripe iOS Example (Without Apple Pay)";
sourceTree = "<group>";
};
049E84F91A6077B4000B66CD /* Supporting Files */ = {
isa = PBXGroup;
children = (
049E84FA1A6077B4000B66CD /* Info.plist */,
049E84FB1A6077B4000B66CD /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
049E852D1A60964F000B66CD /* Frameworks */ = {
isa = PBXGroup;
children = (
049E852B1A60963E000B66CD /* libStripe.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
049E84F51A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay) */ = {
isa = PBXNativeTarget;
buildConfigurationList = 049E85191A6077B5000B66CD /* Build configuration list for PBXNativeTarget "Stripe iOS Example (Without Apple Pay)" */;
buildPhases = (
049E84F21A6077B4000B66CD /* Sources */,
049E84F31A6077B4000B66CD /* Frameworks */,
049E84F41A6077B4000B66CD /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "Stripe iOS Example (Without Apple Pay)";
productName = "Stripe iOS Example (Without Apple Pay)";
productReference = 049E84F61A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay).app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
049E84EE1A6077B4000B66CD /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
ORGANIZATIONNAME = Stripe;
TargetAttributes = {
049E84F51A6077B4000B66CD = {
CreatedOnToolsVersion = 6.1.1;
};
};
};
buildConfigurationList = 049E84F11A6077B4000B66CD /* Build configuration list for PBXProject "Stripe iOS Example (Without Apple Pay)" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 049E84ED1A6077B4000B66CD;
productRefGroup = 049E84F71A6077B4000B66CD /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
049E84F51A6077B4000B66CD /* Stripe iOS Example (Without Apple Pay) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
049E84F41A6077B4000B66CD /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
049E85051A6077B4000B66CD /* Main.storyboard in Resources */,
049E850A1A6077B5000B66CD /* LaunchScreen.xib in Resources */,
049E85071A6077B5000B66CD /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
049E84F21A6077B4000B66CD /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
049E85021A6077B4000B66CD /* ViewController.m in Sources */,
049E84FF1A6077B4000B66CD /* AppDelegate.m in Sources */,
049E84FC1A6077B4000B66CD /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
049E85031A6077B4000B66CD /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
049E85041A6077B4000B66CD /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
049E85081A6077B5000B66CD /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
049E85091A6077B5000B66CD /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
049E85171A6077B5000B66CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
049E85181A6077B5000B66CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
049E851A1A6077B5000B66CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "Stripe iOS Example (Without Apple Pay)/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/jack/stripe/stripe-ios/build/Debug-iphoneos",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
049E851B1A6077B5000B66CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "Stripe iOS Example (Without Apple Pay)/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"/Users/jack/stripe/stripe-ios/build/Debug-iphoneos",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
049E84F11A6077B4000B66CD /* Build configuration list for PBXProject "Stripe iOS Example (Without Apple Pay)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
049E85171A6077B5000B66CD /* Debug */,
049E85181A6077B5000B66CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
049E85191A6077B5000B66CD /* Build configuration list for PBXNativeTarget "Stripe iOS Example (Without Apple Pay)" */ = {
isa = XCConfigurationList;
buildConfigurations = (
049E851A1A6077B5000B66CD /* Debug */,
049E851B1A6077B5000B66CD /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = 049E84EE1A6077B4000B66CD /* Project object */;
}

View File

@ -0,0 +1,17 @@
//
// AppDelegate.h
// Stripe iOS Example (Without Apple Pay)
//
// Created by Jack Flintermann on 1/9/15.
// Copyright (c) 2015 Stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

View File

@ -0,0 +1,45 @@
//
// AppDelegate.m
// Stripe iOS Example (Without Apple Pay)
//
// Created by Jack Flintermann on 1/9/15.
// Copyright (c) 2015 Stripe. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 Stripe. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
<rect key="frame" x="20" y="439" width="441" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Stripe iOS Example (Without Apple Pay)" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="140" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
</document>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="vXZ-lx-hvc">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController id="vXZ-lx-hvc" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,38 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>com.stripe.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,15 @@
//
// ViewController.h
// Stripe iOS Example (Without Apple Pay)
//
// Created by Jack Flintermann on 1/9/15.
// Copyright (c) 2015 Stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end

View File

@ -0,0 +1,27 @@
//
// ViewController.m
// Stripe iOS Example (Without Apple Pay)
//
// Created by Jack Flintermann on 1/9/15.
// Copyright (c) 2015 Stripe. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end

View File

@ -0,0 +1,16 @@
//
// main.m
// Stripe iOS Example (Without Apple Pay)
//
// Created by Jack Flintermann on 1/9/15.
// Copyright (c) 2015 Stripe. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}

View File

@ -6,63 +6,144 @@
objectVersion = 46;
objects = {
/* Begin PBXAggregateTarget section */
047E67DF1A65E82D001D7493 /* StripeiOSStaticFrameworkWithoutApplePay */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 047E67E01A65E82D001D7493 /* Build configuration list for PBXAggregateTarget "StripeiOSStaticFrameworkWithoutApplePay" */;
buildPhases = (
047E67E51A65E837001D7493 /* ShellScript */,
);
dependencies = (
047E67E41A65E833001D7493 /* PBXTargetDependency */,
);
name = StripeiOSStaticFrameworkWithoutApplePay;
productName = StripeiOSStaticWithoutApplePayFramework;
};
049E85221A607FFD000B66CD /* StripeiOSStaticFramework */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 049E85231A607FFD000B66CD /* Build configuration list for PBXAggregateTarget "StripeiOSStaticFramework" */;
buildPhases = (
049E85281A608030000B66CD /* MultiPlatform Build */,
);
dependencies = (
049E85271A608027000B66CD /* PBXTargetDependency */,
);
name = StripeiOSStaticFramework;
productName = Framework;
};
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
04365D2E1A4CF87200A3E1D4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04365D2C1A4CF86C00A3E1D4 /* CoreGraphics.framework */; };
045E7C081A5F41DE004751EF /* StripeiOS_Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 045E7C071A5F41DE004751EF /* StripeiOS_Tests.m */; };
045E7C091A5F41DE004751EF /* StripeiOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04CDB4421A5F2E1800B854EE /* StripeiOS.framework */; };
047E67BF1A65E793001D7493 /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B21A5F30A700B854EE /* STPCheckoutOptions.m */; };
047E67C01A65E793001D7493 /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B41A5F30A700B854EE /* STPCheckoutViewController.m */; };
047E67C11A65E793001D7493 /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B71A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m */; };
047E67C21A65E793001D7493 /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BA1A5F30A700B854EE /* STPColorUtils.m */; };
047E67C31A65E793001D7493 /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BC1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
047E67C41A65E793001D7493 /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BE1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
047E67C51A65E793001D7493 /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C01A5F30A700B854EE /* STPStrictURLProtocol.m */; };
047E67C61A65E793001D7493 /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C31A5F30A700B854EE /* STPAPIClient.m */; };
047E67C71A65E793001D7493 /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C51A5F30A700B854EE /* STPFormEncoder.m */; };
047E67C81A65E793001D7493 /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C71A5F30A700B854EE /* STPAPIConnection.m */; };
047E67C91A65E793001D7493 /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C91A5F30A700B854EE /* STPBankAccount.m */; };
047E67CA1A65E793001D7493 /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CB1A5F30A700B854EE /* STPCard.m */; };
047E67CB1A65E793001D7493 /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CD1A5F30A700B854EE /* STPToken.m */; };
047E67CC1A65E793001D7493 /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CF1A5F30A700B854EE /* StripeError.m */; };
047E67CE1A65E7BC001D7493 /* Stripe.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4A91A5F30A700B854EE /* Stripe.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67CF1A65E7BC001D7493 /* STPCheckoutOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B11A5F30A700B854EE /* STPCheckoutOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67D01A65E7BC001D7493 /* STPCheckoutViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B31A5F30A700B854EE /* STPCheckoutViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67D11A65E7BC001D7493 /* STPCheckoutDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B51A5F30A700B854EE /* STPCheckoutDelegate.h */; };
047E67D21A65E7BC001D7493 /* STPCheckoutInternalUIWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B61A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.h */; };
047E67D31A65E7BC001D7493 /* STPCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B81A5F30A700B854EE /* STPCheckoutWebViewAdapter.h */; };
047E67D41A65E7BC001D7493 /* STPColorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B91A5F30A700B854EE /* STPColorUtils.h */; };
047E67D51A65E7BC001D7493 /* STPIOSCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BB1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.h */; };
047E67D61A65E7BC001D7493 /* STPOSXCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BD1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.h */; };
047E67D71A65E7BC001D7493 /* STPStrictURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BF1A5F30A700B854EE /* STPStrictURLProtocol.h */; };
047E67D81A65E7BC001D7493 /* STPAPIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C21A5F30A700B854EE /* STPAPIClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67D91A65E7BC001D7493 /* STPFormEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C41A5F30A700B854EE /* STPFormEncoder.h */; };
047E67DA1A65E7BC001D7493 /* STPAPIConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C61A5F30A700B854EE /* STPAPIConnection.h */; };
047E67DB1A65E7BC001D7493 /* STPBankAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C81A5F30A700B854EE /* STPBankAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67DC1A65E7BC001D7493 /* STPCard.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CA1A5F30A700B854EE /* STPCard.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67DD1A65E7BC001D7493 /* STPToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CC1A5F30A700B854EE /* STPToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
047E67DE1A65E7BC001D7493 /* StripeError.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CE1A5F30A700B854EE /* StripeError.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84C21A605DE0000B66CD /* STPAPIClient+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AB1A5F30A700B854EE /* STPAPIClient+ApplePay.m */; };
049E84C31A605DE0000B66CD /* Stripe+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AD1A5F30A700B854EE /* Stripe+ApplePay.m */; };
049E84C41A605DE0000B66CD /* STPPaymentPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AF1A5F30A700B854EE /* STPPaymentPresenter.m */; };
049E84C51A605DE0000B66CD /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B21A5F30A700B854EE /* STPCheckoutOptions.m */; };
049E84C61A605DE0000B66CD /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B41A5F30A700B854EE /* STPCheckoutViewController.m */; };
049E84C71A605DE0000B66CD /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B71A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m */; };
049E84C81A605DE0000B66CD /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BA1A5F30A700B854EE /* STPColorUtils.m */; };
049E84C91A605DE0000B66CD /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BC1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
049E84CA1A605DE0000B66CD /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BE1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
049E84CB1A605DE0000B66CD /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C01A5F30A700B854EE /* STPStrictURLProtocol.m */; };
049E84CC1A605DE0000B66CD /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C31A5F30A700B854EE /* STPAPIClient.m */; };
049E84CD1A605DE0000B66CD /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C51A5F30A700B854EE /* STPFormEncoder.m */; };
049E84CE1A605DE0000B66CD /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C71A5F30A700B854EE /* STPAPIConnection.m */; };
049E84CF1A605DE0000B66CD /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C91A5F30A700B854EE /* STPBankAccount.m */; };
049E84D01A605DE0000B66CD /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CB1A5F30A700B854EE /* STPCard.m */; };
049E84D11A605DE0000B66CD /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CD1A5F30A700B854EE /* STPToken.m */; };
049E84D21A605DE0000B66CD /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CF1A5F30A700B854EE /* StripeError.m */; };
049E84D31A605E6A000B66CD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFC12C516E5767F0066297F /* UIKit.framework */; };
049E84D41A605E7C000B66CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11C74B9B164043050071C2CA /* Foundation.framework */; };
049E84D51A605E82000B66CD /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A0D74F918F6106100966D7B /* Security.framework */; };
049E84D61A605E8F000B66CD /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04D5BF9019BF958F009521A5 /* PassKit.framework */; };
049E84D71A605E99000B66CD /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04B94BC71A47B78A00092C46 /* AddressBook.framework */; };
049E84D91A605EF0000B66CD /* Stripe.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4A91A5F30A700B854EE /* Stripe.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DA1A605EF0000B66CD /* STPAPIClient+ApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AA1A5F30A700B854EE /* STPAPIClient+ApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DB1A605EF0000B66CD /* Stripe+ApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AC1A5F30A700B854EE /* Stripe+ApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DC1A605EF0000B66CD /* STPPaymentPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AE1A5F30A700B854EE /* STPPaymentPresenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DD1A605EF0000B66CD /* STPCheckoutOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B11A5F30A700B854EE /* STPCheckoutOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DE1A605EF0000B66CD /* STPCheckoutViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B31A5F30A700B854EE /* STPCheckoutViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84DF1A605EF0000B66CD /* STPCheckoutDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B51A5F30A700B854EE /* STPCheckoutDelegate.h */; };
049E84E01A605EF0000B66CD /* STPCheckoutInternalUIWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B61A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.h */; };
049E84E11A605EF0000B66CD /* STPCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B81A5F30A700B854EE /* STPCheckoutWebViewAdapter.h */; };
049E84E21A605EF0000B66CD /* STPColorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B91A5F30A700B854EE /* STPColorUtils.h */; };
049E84E31A605EF0000B66CD /* STPIOSCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BB1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.h */; };
049E84E41A605EF0000B66CD /* STPOSXCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BD1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.h */; };
049E84E51A605EF0000B66CD /* STPStrictURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BF1A5F30A700B854EE /* STPStrictURLProtocol.h */; };
049E84E61A605EF0000B66CD /* STPAPIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C21A5F30A700B854EE /* STPAPIClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84E71A605EF0000B66CD /* STPFormEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C41A5F30A700B854EE /* STPFormEncoder.h */; };
049E84E81A605EF0000B66CD /* STPAPIConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C61A5F30A700B854EE /* STPAPIConnection.h */; };
049E84E91A605EF0000B66CD /* STPBankAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C81A5F30A700B854EE /* STPBankAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84EA1A605EF0000B66CD /* STPCard.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CA1A5F30A700B854EE /* STPCard.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84EB1A605EF0000B66CD /* STPToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CC1A5F30A700B854EE /* STPToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
049E84EC1A605EF0000B66CD /* StripeError.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CE1A5F30A700B854EE /* StripeError.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4D31A5F30A700B854EE /* Stripe.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4A91A5F30A700B854EE /* Stripe.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4D41A5F30A700B854EE /* STPAPIClient+ApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AA1A5F30A700B854EE /* STPAPIClient+ApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4D51A5F30A700B854EE /* STPAPIClient+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AB1A5F30A700B854EE /* STPAPIClient+ApplePay.m */; };
04CDB4D61A5F30A700B854EE /* STPAPIClient+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AB1A5F30A700B854EE /* STPAPIClient+ApplePay.m */; };
04CDB4D81A5F30A700B854EE /* Stripe+ApplePay.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AC1A5F30A700B854EE /* Stripe+ApplePay.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4D91A5F30A700B854EE /* Stripe+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AD1A5F30A700B854EE /* Stripe+ApplePay.m */; };
04CDB4DA1A5F30A700B854EE /* Stripe+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AD1A5F30A700B854EE /* Stripe+ApplePay.m */; };
04CDB4DC1A5F30A700B854EE /* STPPaymentPresenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4AE1A5F30A700B854EE /* STPPaymentPresenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4DD1A5F30A700B854EE /* STPPaymentPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AF1A5F30A700B854EE /* STPPaymentPresenter.m */; };
04CDB4DE1A5F30A700B854EE /* STPPaymentPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4AF1A5F30A700B854EE /* STPPaymentPresenter.m */; };
04CDB4E01A5F30A700B854EE /* STPCheckoutOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B11A5F30A700B854EE /* STPCheckoutOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4E11A5F30A700B854EE /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B21A5F30A700B854EE /* STPCheckoutOptions.m */; };
04CDB4E21A5F30A700B854EE /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B21A5F30A700B854EE /* STPCheckoutOptions.m */; };
04CDB4E41A5F30A700B854EE /* STPCheckoutViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B31A5F30A700B854EE /* STPCheckoutViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4E51A5F30A700B854EE /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B41A5F30A700B854EE /* STPCheckoutViewController.m */; };
04CDB4E61A5F30A700B854EE /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B41A5F30A700B854EE /* STPCheckoutViewController.m */; };
04CDB4E81A5F30A700B854EE /* STPCheckoutDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B51A5F30A700B854EE /* STPCheckoutDelegate.h */; };
04CDB4E91A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B61A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.h */; };
04CDB4EA1A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B71A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m */; };
04CDB4EB1A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B71A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m */; };
04CDB4ED1A5F30A700B854EE /* STPCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B81A5F30A700B854EE /* STPCheckoutWebViewAdapter.h */; };
04CDB4EE1A5F30A700B854EE /* STPColorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4B91A5F30A700B854EE /* STPColorUtils.h */; };
04CDB4EF1A5F30A700B854EE /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BA1A5F30A700B854EE /* STPColorUtils.m */; };
04CDB4F01A5F30A700B854EE /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BA1A5F30A700B854EE /* STPColorUtils.m */; };
04CDB4F21A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BB1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.h */; };
04CDB4F31A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BC1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
04CDB4F41A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BC1A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
04CDB4F61A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BD1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.h */; };
04CDB4F71A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BE1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
04CDB4F81A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4BE1A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
04CDB4FA1A5F30A700B854EE /* STPStrictURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4BF1A5F30A700B854EE /* STPStrictURLProtocol.h */; };
04CDB4FB1A5F30A700B854EE /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C01A5F30A700B854EE /* STPStrictURLProtocol.m */; };
04CDB4FC1A5F30A700B854EE /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C01A5F30A700B854EE /* STPStrictURLProtocol.m */; };
04CDB4FE1A5F30A700B854EE /* STPAPIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C21A5F30A700B854EE /* STPAPIClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB4FF1A5F30A700B854EE /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C31A5F30A700B854EE /* STPAPIClient.m */; };
04CDB5001A5F30A700B854EE /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C31A5F30A700B854EE /* STPAPIClient.m */; };
04CDB5021A5F30A700B854EE /* STPFormEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C41A5F30A700B854EE /* STPFormEncoder.h */; };
04CDB5031A5F30A700B854EE /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C51A5F30A700B854EE /* STPFormEncoder.m */; };
04CDB5041A5F30A700B854EE /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C51A5F30A700B854EE /* STPFormEncoder.m */; };
04CDB5061A5F30A700B854EE /* STPAPIConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C61A5F30A700B854EE /* STPAPIConnection.h */; };
04CDB5071A5F30A700B854EE /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C71A5F30A700B854EE /* STPAPIConnection.m */; };
04CDB5081A5F30A700B854EE /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C71A5F30A700B854EE /* STPAPIConnection.m */; };
04CDB50A1A5F30A700B854EE /* STPBankAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4C81A5F30A700B854EE /* STPBankAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB50B1A5F30A700B854EE /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C91A5F30A700B854EE /* STPBankAccount.m */; };
04CDB50C1A5F30A700B854EE /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4C91A5F30A700B854EE /* STPBankAccount.m */; };
04CDB50E1A5F30A700B854EE /* STPCard.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CA1A5F30A700B854EE /* STPCard.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB50F1A5F30A700B854EE /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CB1A5F30A700B854EE /* STPCard.m */; };
04CDB5101A5F30A700B854EE /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CB1A5F30A700B854EE /* STPCard.m */; };
04CDB5121A5F30A700B854EE /* STPToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CC1A5F30A700B854EE /* STPToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB5131A5F30A700B854EE /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CD1A5F30A700B854EE /* STPToken.m */; };
04CDB5141A5F30A700B854EE /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CD1A5F30A700B854EE /* STPToken.m */; };
04CDB5161A5F30A700B854EE /* StripeError.h in Headers */ = {isa = PBXBuildFile; fileRef = 04CDB4CE1A5F30A700B854EE /* StripeError.h */; settings = {ATTRIBUTES = (Public, ); }; };
04CDB5171A5F30A700B854EE /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CF1A5F30A700B854EE /* StripeError.m */; };
04CDB5181A5F30A700B854EE /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4CF1A5F30A700B854EE /* StripeError.m */; };
04D12C111A5F556D0010446E /* StripeOSX.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04D12C061A5F556D0010446E /* StripeOSX.framework */; };
04D12C1F1A5F55AD0010446E /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4B21A5F30A700B854EE /* STPCheckoutOptions.m */; };
@ -107,9 +188,6 @@
04D12C461A5F55FA0010446E /* STPCardTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB5251A5F3A9300B854EE /* STPCardTest.m */; };
04D12C471A5F55FA0010446E /* STPCertTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB5261A5F3A9300B854EE /* STPCertTest.m */; };
04D12C481A5F55FA0010446E /* STPTokenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB5271A5F3A9300B854EE /* STPTokenTest.m */; };
11E1F58D165151F400B49816 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11C74B9B164043050071C2CA /* Foundation.framework */; };
4A0D74FA18F6106100966D7B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A0D74F918F6106100966D7B /* Security.framework */; };
FAFC12C816E576A50066297F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFC12C516E5767F0066297F /* UIKit.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -120,6 +198,20 @@
remoteGlobalIDString = 04CDB4411A5F2E1800B854EE;
remoteInfo = StripeiOS;
};
047E67E31A65E833001D7493 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 11C74B8F164043050071C2CA /* Project object */;
proxyType = 1;
remoteGlobalIDString = 047E67A71A65E769001D7493;
remoteInfo = StripeiOSStaticWithoutApplePay;
};
049E85261A608027000B66CD /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 11C74B8F164043050071C2CA /* Project object */;
proxyType = 1;
remoteGlobalIDString = 049E84AA1A605D93000B66CD;
remoteInfo = StripeiOSStatic;
};
04D12C121A5F556D0010446E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 11C74B8F164043050071C2CA /* Project object */;
@ -130,22 +222,32 @@
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
11E1F58A165151F400B49816 /* CopyFiles */ = {
047E67A61A65E769001D7493 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/${PRODUCT_NAME}";
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
049E84A91A605D93000B66CD /* Copy Files */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
name = "Copy Files";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
04365D2C1A4CF86C00A3E1D4 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
045E7C031A5F41DE004751EF /* StripeiOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "StripeiOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
045E7C061A5F41DE004751EF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
045E7C071A5F41DE004751EF /* StripeiOS_Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StripeiOS_Tests.m; sourceTree = "<group>"; };
047E67A81A65E769001D7493 /* libStripe-WithoutApplePay.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libStripe-WithoutApplePay.a"; sourceTree = BUILT_PRODUCTS_DIR; };
049E84AB1A605D93000B66CD /* libStripe.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStripe.a; sourceTree = BUILT_PRODUCTS_DIR; };
04B94BC71A47B78A00092C46 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
04CDB4421A5F2E1800B854EE /* StripeiOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StripeiOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
04CDB4A91A5F30A700B854EE /* Stripe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Stripe.h; path = PublicHeaders/Stripe.h; sourceTree = "<group>"; };
@ -201,7 +303,6 @@
04D12C101A5F556D0010446E /* StripeOSXTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StripeOSXTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
04D5BF9019BF958F009521A5 /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = System/Library/Frameworks/PassKit.framework; sourceTree = SDKROOT; };
11C74B9B164043050071C2CA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
11E1F58C165151F400B49816 /* libStripeiOSStatic.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStripeiOSStatic.a; sourceTree = BUILT_PRODUCTS_DIR; };
4A0D74F918F6106100966D7B /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
FAFC12C516E5767F0066297F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
@ -215,6 +316,25 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
047E67A51A65E769001D7493 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
049E84A81A605D93000B66CD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
049E84D71A605E99000B66CD /* AddressBook.framework in Frameworks */,
049E84D61A605E8F000B66CD /* PassKit.framework in Frameworks */,
049E84D51A605E82000B66CD /* Security.framework in Frameworks */,
049E84D41A605E7C000B66CD /* Foundation.framework in Frameworks */,
049E84D31A605E6A000B66CD /* UIKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
04CDB43E1A5F2E1800B854EE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -237,37 +357,9 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
11E1F589165151F400B49816 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
04365D2E1A4CF87200A3E1D4 /* CoreGraphics.framework in Frameworks */,
4A0D74FA18F6106100966D7B /* Security.framework in Frameworks */,
FAFC12C816E576A50066297F /* UIKit.framework in Frameworks */,
11E1F58D165151F400B49816 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
045E7C041A5F41DE004751EF /* StripeiOS Tests */ = {
isa = PBXGroup;
children = (
045E7C071A5F41DE004751EF /* StripeiOS_Tests.m */,
045E7C051A5F41DE004751EF /* Supporting Files */,
);
path = "StripeiOS Tests";
sourceTree = "<group>";
};
045E7C051A5F41DE004751EF /* Supporting Files */ = {
isa = PBXGroup;
children = (
045E7C061A5F41DE004751EF /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
04CDB4B01A5F30A700B854EE /* ApplePay */ = {
isa = PBXGroup;
children = (
@ -372,7 +464,6 @@
children = (
04CDB4D21A5F30A700B854EE /* Stripe */,
04CDB5281A5F3A9300B854EE /* StripeTests */,
045E7C041A5F41DE004751EF /* StripeiOS Tests */,
11C74B9A164043050071C2CA /* Frameworks */,
11C74B99164043050071C2CA /* Products */,
);
@ -381,11 +472,12 @@
11C74B99164043050071C2CA /* Products */ = {
isa = PBXGroup;
children = (
11E1F58C165151F400B49816 /* libStripeiOSStatic.a */,
04CDB4421A5F2E1800B854EE /* StripeiOS.framework */,
045E7C031A5F41DE004751EF /* StripeiOS Tests.xctest */,
04D12C061A5F556D0010446E /* StripeOSX.framework */,
04D12C101A5F556D0010446E /* StripeOSXTests.xctest */,
049E84AB1A605D93000B66CD /* libStripe.a */,
047E67A81A65E769001D7493 /* libStripe-WithoutApplePay.a */,
);
name = Products;
sourceTree = "<group>";
@ -406,6 +498,57 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
047E67CD1A65E79D001D7493 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
047E67CE1A65E7BC001D7493 /* Stripe.h in Headers */,
047E67CF1A65E7BC001D7493 /* STPCheckoutOptions.h in Headers */,
047E67D01A65E7BC001D7493 /* STPCheckoutViewController.h in Headers */,
047E67D81A65E7BC001D7493 /* STPAPIClient.h in Headers */,
047E67DB1A65E7BC001D7493 /* STPBankAccount.h in Headers */,
047E67DC1A65E7BC001D7493 /* STPCard.h in Headers */,
047E67DD1A65E7BC001D7493 /* STPToken.h in Headers */,
047E67DE1A65E7BC001D7493 /* StripeError.h in Headers */,
047E67D11A65E7BC001D7493 /* STPCheckoutDelegate.h in Headers */,
047E67D21A65E7BC001D7493 /* STPCheckoutInternalUIWebViewController.h in Headers */,
047E67D31A65E7BC001D7493 /* STPCheckoutWebViewAdapter.h in Headers */,
047E67D41A65E7BC001D7493 /* STPColorUtils.h in Headers */,
047E67D51A65E7BC001D7493 /* STPIOSCheckoutWebViewAdapter.h in Headers */,
047E67D61A65E7BC001D7493 /* STPOSXCheckoutWebViewAdapter.h in Headers */,
047E67D71A65E7BC001D7493 /* STPStrictURLProtocol.h in Headers */,
047E67D91A65E7BC001D7493 /* STPFormEncoder.h in Headers */,
047E67DA1A65E7BC001D7493 /* STPAPIConnection.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
049E84D81A605EAA000B66CD /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
049E84D91A605EF0000B66CD /* Stripe.h in Headers */,
049E84DA1A605EF0000B66CD /* STPAPIClient+ApplePay.h in Headers */,
049E84DB1A605EF0000B66CD /* Stripe+ApplePay.h in Headers */,
049E84DC1A605EF0000B66CD /* STPPaymentPresenter.h in Headers */,
049E84DD1A605EF0000B66CD /* STPCheckoutOptions.h in Headers */,
049E84DE1A605EF0000B66CD /* STPCheckoutViewController.h in Headers */,
049E84E61A605EF0000B66CD /* STPAPIClient.h in Headers */,
049E84E91A605EF0000B66CD /* STPBankAccount.h in Headers */,
049E84EA1A605EF0000B66CD /* STPCard.h in Headers */,
049E84EB1A605EF0000B66CD /* STPToken.h in Headers */,
049E84EC1A605EF0000B66CD /* StripeError.h in Headers */,
049E84DF1A605EF0000B66CD /* STPCheckoutDelegate.h in Headers */,
049E84E01A605EF0000B66CD /* STPCheckoutInternalUIWebViewController.h in Headers */,
049E84E11A605EF0000B66CD /* STPCheckoutWebViewAdapter.h in Headers */,
049E84E21A605EF0000B66CD /* STPColorUtils.h in Headers */,
049E84E31A605EF0000B66CD /* STPIOSCheckoutWebViewAdapter.h in Headers */,
049E84E41A605EF0000B66CD /* STPOSXCheckoutWebViewAdapter.h in Headers */,
049E84E51A605EF0000B66CD /* STPStrictURLProtocol.h in Headers */,
049E84E71A605EF0000B66CD /* STPFormEncoder.h in Headers */,
049E84E81A605EF0000B66CD /* STPAPIConnection.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
04CDB43F1A5F2E1800B854EE /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -481,6 +624,44 @@
productReference = 045E7C031A5F41DE004751EF /* StripeiOS Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
047E67A71A65E769001D7493 /* StripeiOSStaticWithoutApplePay */ = {
isa = PBXNativeTarget;
buildConfigurationList = 047E67B91A65E76A001D7493 /* Build configuration list for PBXNativeTarget "StripeiOSStaticWithoutApplePay" */;
buildPhases = (
047E67A41A65E769001D7493 /* Sources */,
047E67A51A65E769001D7493 /* Frameworks */,
047E67A61A65E769001D7493 /* CopyFiles */,
047E67CD1A65E79D001D7493 /* Headers */,
047E67E61A65EAD3001D7493 /* ShellScript */,
);
buildRules = (
);
dependencies = (
);
name = StripeiOSStaticWithoutApplePay;
productName = StripeiOSStaticWithoutApplePay;
productReference = 047E67A81A65E769001D7493 /* libStripe-WithoutApplePay.a */;
productType = "com.apple.product-type.library.static";
};
049E84AA1A605D93000B66CD /* StripeiOSStatic */ = {
isa = PBXNativeTarget;
buildConfigurationList = 049E84BC1A605D93000B66CD /* Build configuration list for PBXNativeTarget "StripeiOSStatic" */;
buildPhases = (
049E84A71A605D93000B66CD /* Sources */,
049E84A81A605D93000B66CD /* Frameworks */,
049E84A91A605D93000B66CD /* Copy Files */,
049E84D81A605EAA000B66CD /* Headers */,
049E85211A607DA4000B66CD /* Build Framework */,
);
buildRules = (
);
dependencies = (
);
name = StripeiOSStatic;
productName = StripeiOSStatic;
productReference = 049E84AB1A605D93000B66CD /* libStripe.a */;
productType = "com.apple.product-type.library.static";
};
04CDB4411A5F2E1800B854EE /* StripeiOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 04CDB4551A5F2E1800B854EE /* Build configuration list for PBXNativeTarget "StripeiOS" */;
@ -535,24 +716,6 @@
productReference = 04D12C101A5F556D0010446E /* StripeOSXTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
11E1F58B165151F400B49816 /* StripeiOSStatic */ = {
isa = PBXNativeTarget;
buildConfigurationList = 11E1F595165151F400B49816 /* Build configuration list for PBXNativeTarget "StripeiOSStatic" */;
buildPhases = (
11E1F588165151F400B49816 /* Sources */,
11E1F589165151F400B49816 /* Frameworks */,
11E1F58A165151F400B49816 /* CopyFiles */,
042364A71A183A9100E32245 /* ShellScript */,
);
buildRules = (
);
dependencies = (
);
name = StripeiOSStatic;
productName = iOS;
productReference = 11E1F58C165151F400B49816 /* libStripeiOSStatic.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@ -567,6 +730,18 @@
045E7C021A5F41DE004751EF = {
CreatedOnToolsVersion = 6.1.1;
};
047E67A71A65E769001D7493 = {
CreatedOnToolsVersion = 6.1.1;
};
047E67DF1A65E82D001D7493 = {
CreatedOnToolsVersion = 6.1.1;
};
049E84AA1A605D93000B66CD = {
CreatedOnToolsVersion = 6.1.1;
};
049E85221A607FFD000B66CD = {
CreatedOnToolsVersion = 6.1.1;
};
04CDB4411A5F2E1800B854EE = {
CreatedOnToolsVersion = 6.1.1;
};
@ -590,11 +765,14 @@
projectDirPath = "";
projectRoot = "";
targets = (
11E1F58B165151F400B49816 /* StripeiOSStatic */,
04CDB4411A5F2E1800B854EE /* StripeiOS */,
045E7C021A5F41DE004751EF /* StripeiOS Tests */,
04D12C051A5F556D0010446E /* StripeOSX */,
04D12C0F1A5F556D0010446E /* StripeOSXTests */,
049E84AA1A605D93000B66CD /* StripeiOSStatic */,
049E85221A607FFD000B66CD /* StripeiOSStaticFramework */,
047E67A71A65E769001D7493 /* StripeiOSStaticWithoutApplePay */,
047E67DF1A65E82D001D7493 /* StripeiOSStaticFrameworkWithoutApplePay */,
);
};
/* End PBXProject section */
@ -631,7 +809,7 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
042364A71A183A9100E32245 /* ShellScript */ = {
047E67E51A65E837001D7493 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -642,7 +820,48 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "[[ ${FAUXPAS_SKIP} == 1 ]] && exit 0\n[[ ! -z \"${TRAVIS}\" ]] && exit 0\n \n FAUXPAS_PATH=\"/usr/local/bin/fauxpas\"\n if [[ -f \"${FAUXPAS_PATH}\" ]]; then\n pwd\n \"${FAUXPAS_PATH}\" check-xcode --configFile \"./FauxPasConfig/main.fauxpas.json\"\n else\n echo \"warning: Faux Pas was not found at '${FAUXPAS_PATH}'\"\n fi";
shellScript = "set -e\n\n# If we're already inside this script then die\nif [ -n \"$RW_MULTIPLATFORM_BUILD_IN_PROGRESS\" ]; then\nexit 0\nfi\nexport RW_MULTIPLATFORM_BUILD_IN_PROGRESS=1\n\nRW_FRAMEWORK_NAME=\"Stripe-WithoutApplePay\"\nRW_INPUT_STATIC_LIB=\"libStripe-WithoutApplePay.a\"\nRW_FRAMEWORK_LOCATION=\"${BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework\"\n\nfunction build_static_library {\n # Will rebuild the static library as specified\n # build_static_library sdk\n xcrun xcodebuild -project \"${PROJECT_FILE_PATH}\" \\\n -target \"${TARGET_NAME}\" \\\n -configuration \"${CONFIGURATION}\" \\\n -sdk \"${1}\" \\\n ONLY_ACTIVE_ARCH=NO \\\n BUILD_DIR=\"${BUILD_DIR}\" \\\n OBJROOT=\"${OBJROOT}\" \\\n BUILD_ROOT=\"${BUILD_ROOT}\" \\\n SYMROOT=\"${SYMROOT}\" $ACTION\n}\n\nfunction make_fat_library {\n # Will smash 2 static libs together\n # make_fat_library in1 in2 out\n xcrun lipo -create \"${1}\" \"${2}\" -output \"${3}\"\n}\n\n# 1 - Extract the platform (iphoneos/iphonesimulator) from the SDK name\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]; then\nRW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\necho \"Could not find platform name from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 2 - Extract the version from the SDK\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]; then\nRW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\necho \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 3 - Determine the other platform\nif [ \"$RW_SDK_PLATFORM\" == \"iphoneos\" ]; then\nRW_OTHER_PLATFORM=iphonesimulator\nelse\nRW_OTHER_PLATFORM=iphoneos\nfi\n\n# 4 - Find the build directory\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$RW_SDK_PLATFORM$ ]]; then\nRW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${RW_OTHER_PLATFORM}\"\nelse\necho \"Could not find other platform build directory.\"\nexit 1\nfi\n\n# Build the other platform.\nbuild_static_library \"${RW_OTHER_PLATFORM}${RW_SDK_VERSION}\"\n\n# If we're currently building for iphonesimulator, then need to rebuild\n# to ensure that we get both i386 and x86_64\nif [ \"$RW_SDK_PLATFORM\" == \"iphonesimulator\" ]; then\nbuild_static_library \"${SDK_NAME}\"\nfi\n\n# Join the 2 static libs into 1 and push into the .framework\nmake_fat_library \"${BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n\"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n\"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\"\n\n# Ensure that the framework is present in both platform's build directories\ncp -a \"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\" \\\n\"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework/Versions/A/${RW_FRAMEWORK_NAME}\"";
};
047E67E61A65EAD3001D7493 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport FRAMEWORK_DIR=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework\"\n\n# Create the path to the real Headers directory\nmkdir -p \"${FRAMEWORK_DIR}/Versions/A/Headers\"\n\n# Create the required symlinks\nln -sfh A \"${FRAMEWORK_DIR}/Versions/Current\"\nln -sfh Versions/Current/Headers \"${FRAMEWORK_DIR}/Headers\"\nln -sfh \"Versions/Current/${PRODUCT_NAME}\" \\\n\"${FRAMEWORK_DIR}/${PRODUCT_NAME}\"\n\n# Copy the public headers into the framework\n/bin/cp -a \"${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/\" \\\n\"${FRAMEWORK_DIR}/Versions/A/Headers\"";
};
049E85211A607DA4000B66CD /* Build Framework */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Build Framework";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nexport FRAMEWORK_DIR=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework\"\n\n# Create the path to the real Headers directory\nmkdir -p \"${FRAMEWORK_DIR}/Versions/A/Headers\"\n\n# Create the required symlinks\nln -sfh A \"${FRAMEWORK_DIR}/Versions/Current\"\nln -sfh Versions/Current/Headers \"${FRAMEWORK_DIR}/Headers\"\nln -sfh \"Versions/Current/${PRODUCT_NAME}\" \\\n\"${FRAMEWORK_DIR}/${PRODUCT_NAME}\"\n\n# Copy the public headers into the framework\n/bin/cp -a \"${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/\" \\\n\"${FRAMEWORK_DIR}/Versions/A/Headers\"";
};
049E85281A608030000B66CD /* MultiPlatform Build */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "MultiPlatform Build";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\n# If we're already inside this script then die\nif [ -n \"$RW_MULTIPLATFORM_BUILD_IN_PROGRESS\" ]; then\nexit 0\nfi\nexport RW_MULTIPLATFORM_BUILD_IN_PROGRESS=1\n\nRW_FRAMEWORK_NAME=${PROJECT_NAME}\nRW_INPUT_STATIC_LIB=\"lib${PROJECT_NAME}.a\"\nRW_FRAMEWORK_LOCATION=\"${BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework\"\n\nfunction build_static_library {\n # Will rebuild the static library as specified\n # build_static_library sdk\n echo xcrun xcodebuild -project \"${PROJECT_FILE_PATH}\" \\\n -target \"${TARGET_NAME}\" \\\n -configuration \"${CONFIGURATION}\" \\\n -sdk \"${1}\" \\\n ONLY_ACTIVE_ARCH=NO \\\n BUILD_DIR=\"${BUILD_DIR}\" \\\n OBJROOT=\"${OBJROOT}\" \\\n BUILD_ROOT=\"${BUILD_ROOT}\" \\\n SYMROOT=\"${SYMROOT}\" $ACTION\n}\n\nfunction make_fat_library {\n # Will smash 2 static libs together\n # make_fat_library in1 in2 out\n xcrun lipo -create \"${1}\" \"${2}\" -output \"${3}\"\n}\n\n# 1 - Extract the platform (iphoneos/iphonesimulator) from the SDK name\nif [[ \"$SDK_NAME\" =~ ([A-Za-z]+) ]]; then\nRW_SDK_PLATFORM=${BASH_REMATCH[1]}\nelse\necho \"Could not find platform name from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 2 - Extract the version from the SDK\nif [[ \"$SDK_NAME\" =~ ([0-9]+.*$) ]]; then\nRW_SDK_VERSION=${BASH_REMATCH[1]}\nelse\necho \"Could not find sdk version from SDK_NAME: $SDK_NAME\"\nexit 1\nfi\n\n# 3 - Determine the other platform\nif [ \"$RW_SDK_PLATFORM\" == \"iphoneos\" ]; then\nRW_OTHER_PLATFORM=iphonesimulator\nelse\nRW_OTHER_PLATFORM=iphoneos\nfi\n\n# 4 - Find the build directory\nif [[ \"$BUILT_PRODUCTS_DIR\" =~ (.*)$RW_SDK_PLATFORM$ ]]; then\nRW_OTHER_BUILT_PRODUCTS_DIR=\"${BASH_REMATCH[1]}${RW_OTHER_PLATFORM}\"\nelse\necho \"Could not find other platform build directory.\"\nexit 1\nfi\n\n# Build the other platform.\nbuild_static_library \"${RW_OTHER_PLATFORM}${RW_SDK_VERSION}\"\n\n# # If we're currently building for iphonesimulator, then need to rebuild\n# # to ensure that we get both i386 and x86_64\n# if [ \"$RW_SDK_PLATFORM\" == \"iphonesimulator\" ]; then\n# build_static_library \"${SDK_NAME}\"\n# fi\n\n# # Join the 2 static libs into 1 and push into the .framework\n# make_fat_library \"${BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n# \"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_INPUT_STATIC_LIB}\" \\\n# \"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\"\n\n# # Ensure that the framework is present in both platform's build directories\n# cp -a \"${RW_FRAMEWORK_LOCATION}/Versions/A/${RW_FRAMEWORK_NAME}\" \\\n# \"${RW_OTHER_BUILT_PRODUCTS_DIR}/${RW_FRAMEWORK_NAME}.framework/Versions/A/${RW_FRAMEWORK_NAME}\"";
};
/* End PBXShellScriptBuildPhase section */
@ -651,7 +870,51 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
045E7C081A5F41DE004751EF /* StripeiOS_Tests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
047E67A41A65E769001D7493 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
047E67BF1A65E793001D7493 /* STPCheckoutOptions.m in Sources */,
047E67C01A65E793001D7493 /* STPCheckoutViewController.m in Sources */,
047E67C11A65E793001D7493 /* STPCheckoutInternalUIWebViewController.m in Sources */,
047E67C21A65E793001D7493 /* STPColorUtils.m in Sources */,
047E67C31A65E793001D7493 /* STPIOSCheckoutWebViewAdapter.m in Sources */,
047E67C41A65E793001D7493 /* STPOSXCheckoutWebViewAdapter.m in Sources */,
047E67C51A65E793001D7493 /* STPStrictURLProtocol.m in Sources */,
047E67C61A65E793001D7493 /* STPAPIClient.m in Sources */,
047E67C71A65E793001D7493 /* STPFormEncoder.m in Sources */,
047E67C81A65E793001D7493 /* STPAPIConnection.m in Sources */,
047E67C91A65E793001D7493 /* STPBankAccount.m in Sources */,
047E67CA1A65E793001D7493 /* STPCard.m in Sources */,
047E67CB1A65E793001D7493 /* STPToken.m in Sources */,
047E67CC1A65E793001D7493 /* StripeError.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
049E84A71A605D93000B66CD /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
049E84C21A605DE0000B66CD /* STPAPIClient+ApplePay.m in Sources */,
049E84C31A605DE0000B66CD /* Stripe+ApplePay.m in Sources */,
049E84C41A605DE0000B66CD /* STPPaymentPresenter.m in Sources */,
049E84C51A605DE0000B66CD /* STPCheckoutOptions.m in Sources */,
049E84C61A605DE0000B66CD /* STPCheckoutViewController.m in Sources */,
049E84C71A605DE0000B66CD /* STPCheckoutInternalUIWebViewController.m in Sources */,
049E84C81A605DE0000B66CD /* STPColorUtils.m in Sources */,
049E84C91A605DE0000B66CD /* STPIOSCheckoutWebViewAdapter.m in Sources */,
049E84CA1A605DE0000B66CD /* STPOSXCheckoutWebViewAdapter.m in Sources */,
049E84CB1A605DE0000B66CD /* STPStrictURLProtocol.m in Sources */,
049E84CC1A605DE0000B66CD /* STPAPIClient.m in Sources */,
049E84CD1A605DE0000B66CD /* STPFormEncoder.m in Sources */,
049E84CE1A605DE0000B66CD /* STPAPIConnection.m in Sources */,
049E84CF1A605DE0000B66CD /* STPBankAccount.m in Sources */,
049E84D01A605DE0000B66CD /* STPCard.m in Sources */,
049E84D11A605DE0000B66CD /* STPToken.m in Sources */,
049E84D21A605DE0000B66CD /* StripeError.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -715,30 +978,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
11E1F588165151F400B49816 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
04CDB50F1A5F30A700B854EE /* STPCard.m in Sources */,
04CDB4FF1A5F30A700B854EE /* STPAPIClient.m in Sources */,
04CDB50B1A5F30A700B854EE /* STPBankAccount.m in Sources */,
04CDB5171A5F30A700B854EE /* StripeError.m in Sources */,
04CDB4E11A5F30A700B854EE /* STPCheckoutOptions.m in Sources */,
04CDB5071A5F30A700B854EE /* STPAPIConnection.m in Sources */,
04CDB4DD1A5F30A700B854EE /* STPPaymentPresenter.m in Sources */,
04CDB4F71A5F30A700B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */,
04CDB4EA1A5F30A700B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */,
04CDB4FB1A5F30A700B854EE /* STPStrictURLProtocol.m in Sources */,
04CDB5031A5F30A700B854EE /* STPFormEncoder.m in Sources */,
04CDB4F31A5F30A700B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */,
04CDB4D91A5F30A700B854EE /* Stripe+ApplePay.m in Sources */,
04CDB4EF1A5F30A700B854EE /* STPColorUtils.m in Sources */,
04CDB5131A5F30A700B854EE /* STPToken.m in Sources */,
04CDB4D51A5F30A700B854EE /* STPAPIClient+ApplePay.m in Sources */,
04CDB4E51A5F30A700B854EE /* STPCheckoutViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@ -747,6 +986,16 @@
target = 04CDB4411A5F2E1800B854EE /* StripeiOS */;
targetProxy = 045E7C0A1A5F41DE004751EF /* PBXContainerItemProxy */;
};
047E67E41A65E833001D7493 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 047E67A71A65E769001D7493 /* StripeiOSStaticWithoutApplePay */;
targetProxy = 047E67E31A65E833001D7493 /* PBXContainerItemProxy */;
};
049E85271A608027000B66CD /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 049E84AA1A605D93000B66CD /* StripeiOSStatic */;
targetProxy = 049E85261A608027000B66CD /* PBXContainerItemProxy */;
};
04D12C131A5F556D0010446E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 04D12C051A5F556D0010446E /* StripeOSX */;
@ -803,6 +1052,119 @@
};
name = Release;
};
047E67BA1A65E76A001D7493 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "Stripe-WithoutApplePay";
SKIP_INSTALL = YES;
};
name = Debug;
};
047E67BB1A65E76A001D7493 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "Stripe-WithoutApplePay";
SKIP_INSTALL = YES;
};
name = Release;
};
047E67E11A65E82D001D7493 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
047E67E21A65E82D001D7493 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
049E84BD1A605D93000B66CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
DEAD_CODE_STRIPPING = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = Stripe;
SKIP_INSTALL = YES;
STRIP_STYLE = "non-global";
};
name = Debug;
};
049E84BE1A605D93000B66CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
IPHONEOS_DEPLOYMENT_TARGET = 8.1;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = Stripe;
SKIP_INSTALL = YES;
STRIP_STYLE = "non-global";
};
name = Release;
};
049E85241A607FFD000B66CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
049E85251A607FFD000B66CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
04CDB4561A5F2E1800B854EE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -823,6 +1185,10 @@
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
);
INFOPLIST_FILE = Stripe/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@ -852,6 +1218,10 @@
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
);
INFOPLIST_FILE = Stripe/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@ -1074,53 +1444,6 @@
};
name = Release;
};
11E1F596165151F400B49816 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DSTROOT = /tmp/iOS.dst;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_PEDANTIC = NO;
GCC_WARN_SHADOW = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
11E1F597165151F400B49816 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DSTROOT = /tmp/iOS.dst;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_PEDANTIC = NO;
GCC_WARN_SHADOW = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@ -1133,6 +1456,40 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
047E67B91A65E76A001D7493 /* Build configuration list for PBXNativeTarget "StripeiOSStaticWithoutApplePay" */ = {
isa = XCConfigurationList;
buildConfigurations = (
047E67BA1A65E76A001D7493 /* Debug */,
047E67BB1A65E76A001D7493 /* Release */,
);
defaultConfigurationIsVisible = 0;
};
047E67E01A65E82D001D7493 /* Build configuration list for PBXAggregateTarget "StripeiOSStaticFrameworkWithoutApplePay" */ = {
isa = XCConfigurationList;
buildConfigurations = (
047E67E11A65E82D001D7493 /* Debug */,
047E67E21A65E82D001D7493 /* Release */,
);
defaultConfigurationIsVisible = 0;
};
049E84BC1A605D93000B66CD /* Build configuration list for PBXNativeTarget "StripeiOSStatic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
049E84BD1A605D93000B66CD /* Debug */,
049E84BE1A605D93000B66CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
049E85231A607FFD000B66CD /* Build configuration list for PBXAggregateTarget "StripeiOSStaticFramework" */ = {
isa = XCConfigurationList;
buildConfigurations = (
049E85241A607FFD000B66CD /* Debug */,
049E85251A607FFD000B66CD /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
04CDB4551A5F2E1800B854EE /* Build configuration list for PBXNativeTarget "StripeiOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -1149,6 +1506,7 @@
04D12C1B1A5F556D0010446E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
04D12C1C1A5F556D0010446E /* Build configuration list for PBXNativeTarget "StripeOSXTests" */ = {
isa = XCConfigurationList;
@ -1157,6 +1515,7 @@
04D12C1E1A5F556D0010446E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
11C74B92164043050071C2CA /* Build configuration list for PBXProject "Stripe" */ = {
isa = XCConfigurationList;
@ -1167,15 +1526,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
11E1F595165151F400B49816 /* Build configuration list for PBXNativeTarget "StripeiOSStatic" */ = {
isa = XCConfigurationList;
buildConfigurations = (
11E1F596165151F400B49816 /* Debug */,
11E1F597165151F400B49816 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 11C74B8F164043050071C2CA /* Project object */;

View File

@ -4,13 +4,13 @@
<FileRef
location = "group:Stripe.xcodeproj">
</FileRef>
<FileRef
location = "group:Tests/Stripe Tests.xcodeproj">
</FileRef>
<FileRef
location = "group:Example/Stripe iOS Example.xcodeproj">
</FileRef>
<FileRef
location = "group:Example/Stripe OSX Example.xcodeproj">
</FileRef>
<FileRef
location = "group:Stripe iOS Example (Without Apple Pay)/Stripe iOS Example (Without Apple Pay).xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,767 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
04CDB10F1A5E05BA00B854EE /* STPAPIClientTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1021A5E03B800B854EE /* STPAPIClientTest.m */; };
04CDB1101A5E05BA00B854EE /* STPApplePayTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1031A5E03B800B854EE /* STPApplePayTest.m */; };
04CDB1111A5E05BA00B854EE /* STPBankAccountFunctionalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1041A5E03B800B854EE /* STPBankAccountFunctionalTest.m */; };
04CDB1121A5E05BA00B854EE /* STPBankAccountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1051A5E03B800B854EE /* STPBankAccountTest.m */; };
04CDB1131A5E05BA00B854EE /* STPCardFunctionalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1061A5E03B800B854EE /* STPCardFunctionalTest.m */; };
04CDB1141A5E05BA00B854EE /* STPCardTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1071A5E03B800B854EE /* STPCardTest.m */; };
04CDB1151A5E05BA00B854EE /* STPCertTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1081A5E03B800B854EE /* STPCertTest.m */; };
04CDB1161A5E05BA00B854EE /* STPTokenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1091A5E03B800B854EE /* STPTokenTest.m */; };
04CDB1171A5E05C600B854EE /* STPAPIClientTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1021A5E03B800B854EE /* STPAPIClientTest.m */; };
04CDB1191A5E05C600B854EE /* STPBankAccountFunctionalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1041A5E03B800B854EE /* STPBankAccountFunctionalTest.m */; };
04CDB11A1A5E05C600B854EE /* STPBankAccountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1051A5E03B800B854EE /* STPBankAccountTest.m */; };
04CDB11B1A5E05C600B854EE /* STPCardFunctionalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1061A5E03B800B854EE /* STPCardFunctionalTest.m */; };
04CDB11C1A5E05C600B854EE /* STPCardTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1071A5E03B800B854EE /* STPCardTest.m */; };
04CDB11D1A5E05C600B854EE /* STPCertTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1081A5E03B800B854EE /* STPCertTest.m */; };
04CDB11E1A5E05C600B854EE /* STPTokenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB1091A5E03B800B854EE /* STPTokenTest.m */; };
04CDB2EE1A5EF8B800B854EE /* STPFormEncoderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB2ED1A5EF8B800B854EE /* STPFormEncoderTest.m */; };
04CDB2EF1A5EF8C100B854EE /* STPFormEncoderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB2ED1A5EF8B800B854EE /* STPFormEncoderTest.m */; };
04CDB2F11A5EF8EF00B854EE /* STPAPIConnectionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB2F01A5EF8EF00B854EE /* STPAPIConnectionTest.m */; };
04CDB2F21A5EF8F300B854EE /* STPAPIConnectionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB2F01A5EF8EF00B854EE /* STPAPIConnectionTest.m */; };
04CDB4851A5F309A00B854EE /* STPAPIClient+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB45D1A5F309A00B854EE /* STPAPIClient+ApplePay.m */; };
04CDB4861A5F309A00B854EE /* STPAPIClient+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB45D1A5F309A00B854EE /* STPAPIClient+ApplePay.m */; };
04CDB4871A5F309A00B854EE /* Stripe+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB45F1A5F309A00B854EE /* Stripe+ApplePay.m */; };
04CDB4881A5F309A00B854EE /* Stripe+ApplePay.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB45F1A5F309A00B854EE /* Stripe+ApplePay.m */; };
04CDB4891A5F309A00B854EE /* STPPaymentPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4611A5F309A00B854EE /* STPPaymentPresenter.m */; };
04CDB48A1A5F309A00B854EE /* STPPaymentPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4611A5F309A00B854EE /* STPPaymentPresenter.m */; };
04CDB48B1A5F309A00B854EE /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4641A5F309A00B854EE /* STPCheckoutOptions.m */; };
04CDB48C1A5F309A00B854EE /* STPCheckoutOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4641A5F309A00B854EE /* STPCheckoutOptions.m */; };
04CDB48D1A5F309A00B854EE /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4661A5F309A00B854EE /* STPCheckoutViewController.m */; };
04CDB48E1A5F309A00B854EE /* STPCheckoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4661A5F309A00B854EE /* STPCheckoutViewController.m */; };
04CDB48F1A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4691A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m */; };
04CDB4901A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4691A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m */; };
04CDB4911A5F309A00B854EE /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB46C1A5F309A00B854EE /* STPColorUtils.m */; };
04CDB4921A5F309A00B854EE /* STPColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB46C1A5F309A00B854EE /* STPColorUtils.m */; };
04CDB4931A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB46E1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
04CDB4941A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB46E1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m */; };
04CDB4951A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4701A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
04CDB4961A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4701A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m */; };
04CDB4971A5F309A00B854EE /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4721A5F309A00B854EE /* STPStrictURLProtocol.m */; };
04CDB4981A5F309A00B854EE /* STPStrictURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4721A5F309A00B854EE /* STPStrictURLProtocol.m */; };
04CDB4991A5F309A00B854EE /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4751A5F309A00B854EE /* STPAPIClient.m */; };
04CDB49A1A5F309A00B854EE /* STPAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4751A5F309A00B854EE /* STPAPIClient.m */; };
04CDB49B1A5F309A00B854EE /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4771A5F309A00B854EE /* STPFormEncoder.m */; };
04CDB49C1A5F309A00B854EE /* STPFormEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4771A5F309A00B854EE /* STPFormEncoder.m */; };
04CDB49D1A5F309A00B854EE /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4791A5F309A00B854EE /* STPAPIConnection.m */; };
04CDB49E1A5F309A00B854EE /* STPAPIConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4791A5F309A00B854EE /* STPAPIConnection.m */; };
04CDB49F1A5F309A00B854EE /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47B1A5F309A00B854EE /* STPBankAccount.m */; };
04CDB4A01A5F309A00B854EE /* STPBankAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47B1A5F309A00B854EE /* STPBankAccount.m */; };
04CDB4A11A5F309A00B854EE /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47D1A5F309A00B854EE /* STPCard.m */; };
04CDB4A21A5F309A00B854EE /* STPCard.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47D1A5F309A00B854EE /* STPCard.m */; };
04CDB4A31A5F309A00B854EE /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47F1A5F309A00B854EE /* STPToken.m */; };
04CDB4A41A5F309A00B854EE /* STPToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB47F1A5F309A00B854EE /* STPToken.m */; };
04CDB4A51A5F309A00B854EE /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4811A5F309A00B854EE /* StripeError.m */; };
04CDB4A61A5F309A00B854EE /* StripeError.m in Sources */ = {isa = PBXBuildFile; fileRef = 04CDB4811A5F309A00B854EE /* StripeError.m */; };
04CDB4A71A5F309A00B854EE /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 04CDB4821A5F309A00B854EE /* Info.plist */; };
04CDB4A81A5F309A00B854EE /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 04CDB4821A5F309A00B854EE /* Info.plist */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
04CDB0831A5E020900B854EE /* iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
04CDB0871A5E020900B854EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
04CDB0911A5E021800B854EE /* OSX Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OSX Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
04CDB0941A5E021800B854EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
04CDB1021A5E03B800B854EE /* STPAPIClientTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPAPIClientTest.m; sourceTree = "<group>"; };
04CDB1031A5E03B800B854EE /* STPApplePayTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPApplePayTest.m; sourceTree = "<group>"; };
04CDB1041A5E03B800B854EE /* STPBankAccountFunctionalTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPBankAccountFunctionalTest.m; sourceTree = "<group>"; };
04CDB1051A5E03B800B854EE /* STPBankAccountTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPBankAccountTest.m; sourceTree = "<group>"; };
04CDB1061A5E03B800B854EE /* STPCardFunctionalTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPCardFunctionalTest.m; sourceTree = "<group>"; };
04CDB1071A5E03B800B854EE /* STPCardTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPCardTest.m; sourceTree = "<group>"; };
04CDB1081A5E03B800B854EE /* STPCertTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPCertTest.m; sourceTree = "<group>"; };
04CDB1091A5E03B800B854EE /* STPTokenTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = STPTokenTest.m; sourceTree = "<group>"; };
04CDB2ED1A5EF8B800B854EE /* STPFormEncoderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPFormEncoderTest.m; sourceTree = "<group>"; };
04CDB2F01A5EF8EF00B854EE /* STPAPIConnectionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAPIConnectionTest.m; sourceTree = "<group>"; };
04CDB45B1A5F309A00B854EE /* Stripe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Stripe.h; path = PublicHeaders/Stripe.h; sourceTree = "<group>"; };
04CDB45C1A5F309A00B854EE /* STPAPIClient+ApplePay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "STPAPIClient+ApplePay.h"; path = "../PublicHeaders/ApplePay/STPAPIClient+ApplePay.h"; sourceTree = "<group>"; };
04CDB45D1A5F309A00B854EE /* STPAPIClient+ApplePay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "STPAPIClient+ApplePay.m"; sourceTree = "<group>"; };
04CDB45E1A5F309A00B854EE /* Stripe+ApplePay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Stripe+ApplePay.h"; path = "../PublicHeaders/ApplePay/Stripe+ApplePay.h"; sourceTree = "<group>"; };
04CDB45F1A5F309A00B854EE /* Stripe+ApplePay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Stripe+ApplePay.m"; sourceTree = "<group>"; };
04CDB4601A5F309A00B854EE /* STPPaymentPresenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPPaymentPresenter.h; path = ../PublicHeaders/ApplePay/STPPaymentPresenter.h; sourceTree = "<group>"; };
04CDB4611A5F309A00B854EE /* STPPaymentPresenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPPaymentPresenter.m; sourceTree = "<group>"; };
04CDB4631A5F309A00B854EE /* STPCheckoutOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPCheckoutOptions.h; path = ../PublicHeaders/Checkout/STPCheckoutOptions.h; sourceTree = "<group>"; };
04CDB4641A5F309A00B854EE /* STPCheckoutOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPCheckoutOptions.m; sourceTree = "<group>"; };
04CDB4651A5F309A00B854EE /* STPCheckoutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPCheckoutViewController.h; path = ../PublicHeaders/Checkout/STPCheckoutViewController.h; sourceTree = "<group>"; };
04CDB4661A5F309A00B854EE /* STPCheckoutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPCheckoutViewController.m; sourceTree = "<group>"; };
04CDB4671A5F309A00B854EE /* STPCheckoutDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPCheckoutDelegate.h; sourceTree = "<group>"; };
04CDB4681A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPCheckoutInternalUIWebViewController.h; sourceTree = "<group>"; };
04CDB4691A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPCheckoutInternalUIWebViewController.m; sourceTree = "<group>"; };
04CDB46A1A5F309A00B854EE /* STPCheckoutWebViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPCheckoutWebViewAdapter.h; sourceTree = "<group>"; };
04CDB46B1A5F309A00B854EE /* STPColorUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPColorUtils.h; sourceTree = "<group>"; };
04CDB46C1A5F309A00B854EE /* STPColorUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPColorUtils.m; sourceTree = "<group>"; };
04CDB46D1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPIOSCheckoutWebViewAdapter.h; sourceTree = "<group>"; };
04CDB46E1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPIOSCheckoutWebViewAdapter.m; sourceTree = "<group>"; };
04CDB46F1A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPOSXCheckoutWebViewAdapter.h; sourceTree = "<group>"; };
04CDB4701A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPOSXCheckoutWebViewAdapter.m; sourceTree = "<group>"; };
04CDB4711A5F309A00B854EE /* STPStrictURLProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPStrictURLProtocol.h; sourceTree = "<group>"; };
04CDB4721A5F309A00B854EE /* STPStrictURLProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPStrictURLProtocol.m; sourceTree = "<group>"; };
04CDB4741A5F309A00B854EE /* STPAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPAPIClient.h; path = PublicHeaders/STPAPIClient.h; sourceTree = "<group>"; };
04CDB4751A5F309A00B854EE /* STPAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAPIClient.m; sourceTree = "<group>"; };
04CDB4761A5F309A00B854EE /* STPFormEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPFormEncoder.h; sourceTree = "<group>"; };
04CDB4771A5F309A00B854EE /* STPFormEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPFormEncoder.m; sourceTree = "<group>"; };
04CDB4781A5F309A00B854EE /* STPAPIConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPAPIConnection.h; sourceTree = "<group>"; };
04CDB4791A5F309A00B854EE /* STPAPIConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPAPIConnection.m; sourceTree = "<group>"; };
04CDB47A1A5F309A00B854EE /* STPBankAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPBankAccount.h; path = PublicHeaders/STPBankAccount.h; sourceTree = "<group>"; };
04CDB47B1A5F309A00B854EE /* STPBankAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPBankAccount.m; sourceTree = "<group>"; };
04CDB47C1A5F309A00B854EE /* STPCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPCard.h; path = PublicHeaders/STPCard.h; sourceTree = "<group>"; };
04CDB47D1A5F309A00B854EE /* STPCard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPCard.m; sourceTree = "<group>"; };
04CDB47E1A5F309A00B854EE /* STPToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = STPToken.h; path = PublicHeaders/STPToken.h; sourceTree = "<group>"; };
04CDB47F1A5F309A00B854EE /* STPToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPToken.m; sourceTree = "<group>"; };
04CDB4801A5F309A00B854EE /* StripeError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StripeError.h; path = PublicHeaders/StripeError.h; sourceTree = "<group>"; };
04CDB4811A5F309A00B854EE /* StripeError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StripeError.m; sourceTree = "<group>"; };
04CDB4821A5F309A00B854EE /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
04CDB0801A5E020900B854EE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
04CDB08E1A5E021800B854EE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
04CDB0781A5E01E500B854EE = {
isa = PBXGroup;
children = (
04CDB4841A5F309A00B854EE /* Stripe */,
04CDB1011A5E03B800B854EE /* StripeTests */,
04CDB0851A5E020900B854EE /* iOS Tests */,
04CDB0921A5E021800B854EE /* OSX Tests */,
04CDB0841A5E020900B854EE /* Products */,
);
sourceTree = "<group>";
};
04CDB0841A5E020900B854EE /* Products */ = {
isa = PBXGroup;
children = (
04CDB0831A5E020900B854EE /* iOS Tests.xctest */,
04CDB0911A5E021800B854EE /* OSX Tests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
04CDB0851A5E020900B854EE /* iOS Tests */ = {
isa = PBXGroup;
children = (
04CDB0861A5E020900B854EE /* Supporting Files */,
);
path = "iOS Tests";
sourceTree = "<group>";
};
04CDB0861A5E020900B854EE /* Supporting Files */ = {
isa = PBXGroup;
children = (
04CDB0871A5E020900B854EE /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
04CDB0921A5E021800B854EE /* OSX Tests */ = {
isa = PBXGroup;
children = (
04CDB0931A5E021800B854EE /* Supporting Files */,
);
path = "OSX Tests";
sourceTree = "<group>";
};
04CDB0931A5E021800B854EE /* Supporting Files */ = {
isa = PBXGroup;
children = (
04CDB0941A5E021800B854EE /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
04CDB1011A5E03B800B854EE /* StripeTests */ = {
isa = PBXGroup;
children = (
04CDB1021A5E03B800B854EE /* STPAPIClientTest.m */,
04CDB2ED1A5EF8B800B854EE /* STPFormEncoderTest.m */,
04CDB2F01A5EF8EF00B854EE /* STPAPIConnectionTest.m */,
04CDB1031A5E03B800B854EE /* STPApplePayTest.m */,
04CDB1041A5E03B800B854EE /* STPBankAccountFunctionalTest.m */,
04CDB1051A5E03B800B854EE /* STPBankAccountTest.m */,
04CDB1061A5E03B800B854EE /* STPCardFunctionalTest.m */,
04CDB1071A5E03B800B854EE /* STPCardTest.m */,
04CDB1081A5E03B800B854EE /* STPCertTest.m */,
04CDB1091A5E03B800B854EE /* STPTokenTest.m */,
);
name = StripeTests;
path = Tests;
sourceTree = "<group>";
};
04CDB4621A5F309A00B854EE /* ApplePay */ = {
isa = PBXGroup;
children = (
04CDB45C1A5F309A00B854EE /* STPAPIClient+ApplePay.h */,
04CDB45D1A5F309A00B854EE /* STPAPIClient+ApplePay.m */,
04CDB45E1A5F309A00B854EE /* Stripe+ApplePay.h */,
04CDB45F1A5F309A00B854EE /* Stripe+ApplePay.m */,
04CDB4601A5F309A00B854EE /* STPPaymentPresenter.h */,
04CDB4611A5F309A00B854EE /* STPPaymentPresenter.m */,
);
path = ApplePay;
sourceTree = "<group>";
};
04CDB4731A5F309A00B854EE /* Checkout */ = {
isa = PBXGroup;
children = (
04CDB4631A5F309A00B854EE /* STPCheckoutOptions.h */,
04CDB4641A5F309A00B854EE /* STPCheckoutOptions.m */,
04CDB4651A5F309A00B854EE /* STPCheckoutViewController.h */,
04CDB4661A5F309A00B854EE /* STPCheckoutViewController.m */,
04CDB4671A5F309A00B854EE /* STPCheckoutDelegate.h */,
04CDB4681A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.h */,
04CDB4691A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m */,
04CDB46A1A5F309A00B854EE /* STPCheckoutWebViewAdapter.h */,
04CDB46B1A5F309A00B854EE /* STPColorUtils.h */,
04CDB46C1A5F309A00B854EE /* STPColorUtils.m */,
04CDB46D1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.h */,
04CDB46E1A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m */,
04CDB46F1A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.h */,
04CDB4701A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m */,
04CDB4711A5F309A00B854EE /* STPStrictURLProtocol.h */,
04CDB4721A5F309A00B854EE /* STPStrictURLProtocol.m */,
);
path = Checkout;
sourceTree = "<group>";
};
04CDB4831A5F309A00B854EE /* Supporting Files */ = {
isa = PBXGroup;
children = (
04CDB4821A5F309A00B854EE /* Info.plist */,
);
name = "Supporting Files";
path = "../Stripe-iOS";
sourceTree = "<group>";
};
04CDB4841A5F309A00B854EE /* Stripe */ = {
isa = PBXGroup;
children = (
04CDB45B1A5F309A00B854EE /* Stripe.h */,
04CDB4621A5F309A00B854EE /* ApplePay */,
04CDB4731A5F309A00B854EE /* Checkout */,
04CDB4741A5F309A00B854EE /* STPAPIClient.h */,
04CDB4751A5F309A00B854EE /* STPAPIClient.m */,
04CDB4761A5F309A00B854EE /* STPFormEncoder.h */,
04CDB4771A5F309A00B854EE /* STPFormEncoder.m */,
04CDB4781A5F309A00B854EE /* STPAPIConnection.h */,
04CDB4791A5F309A00B854EE /* STPAPIConnection.m */,
04CDB47A1A5F309A00B854EE /* STPBankAccount.h */,
04CDB47B1A5F309A00B854EE /* STPBankAccount.m */,
04CDB47C1A5F309A00B854EE /* STPCard.h */,
04CDB47D1A5F309A00B854EE /* STPCard.m */,
04CDB47E1A5F309A00B854EE /* STPToken.h */,
04CDB47F1A5F309A00B854EE /* STPToken.m */,
04CDB4801A5F309A00B854EE /* StripeError.h */,
04CDB4811A5F309A00B854EE /* StripeError.m */,
04CDB4831A5F309A00B854EE /* Supporting Files */,
);
name = Stripe;
path = ../Stripe;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
04CDB0821A5E020900B854EE /* iOS Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 04CDB08A1A5E020900B854EE /* Build configuration list for PBXNativeTarget "iOS Tests" */;
buildPhases = (
04CDB07F1A5E020900B854EE /* Sources */,
04CDB0801A5E020900B854EE /* Frameworks */,
04CDB0811A5E020900B854EE /* Resources */,
04CDB11F1A5E206100B854EE /* ShellScript */,
);
buildRules = (
);
dependencies = (
);
name = "iOS Tests";
productName = "iOS Tests";
productReference = 04CDB0831A5E020900B854EE /* iOS Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
04CDB0901A5E021800B854EE /* OSX Tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 04CDB0971A5E021800B854EE /* Build configuration list for PBXNativeTarget "OSX Tests" */;
buildPhases = (
04CDB08D1A5E021800B854EE /* Sources */,
04CDB08E1A5E021800B854EE /* Frameworks */,
04CDB08F1A5E021800B854EE /* Resources */,
04CDB1201A5E209000B854EE /* ShellScript */,
);
buildRules = (
);
dependencies = (
);
name = "OSX Tests";
productName = "OSX Tests";
productReference = 04CDB0911A5E021800B854EE /* OSX Tests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
04CDB0791A5E01E500B854EE /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
TargetAttributes = {
04CDB0821A5E020900B854EE = {
CreatedOnToolsVersion = 6.1.1;
};
04CDB0901A5E021800B854EE = {
CreatedOnToolsVersion = 6.1.1;
};
};
};
buildConfigurationList = 04CDB07C1A5E01E500B854EE /* Build configuration list for PBXProject "Stripe Tests" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 04CDB0781A5E01E500B854EE;
productRefGroup = 04CDB0841A5E020900B854EE /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
04CDB0821A5E020900B854EE /* iOS Tests */,
04CDB0901A5E021800B854EE /* OSX Tests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
04CDB0811A5E020900B854EE /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
04CDB4A71A5F309A00B854EE /* Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
04CDB08F1A5E021800B854EE /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
04CDB4A81A5F309A00B854EE /* Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
04CDB11F1A5E206100B854EE /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "[[ ${FAUXPAS_SKIP} == 1 ]] && exit 0\n [[ ! -z \"${TRAVIS}\" ]] && exit 0\n \n FAUXPAS_PATH=\"/usr/local/bin/fauxpas\"\n if [[ -f \"${FAUXPAS_PATH}\" ]]; then\n pwd\n \"${FAUXPAS_PATH}\" check-xcode --configFile \"../ci_scripts/FauxPasConfig/main.fauxpas.json\"\n else\n echo \"warning: Faux Pas was not found at '${FAUXPAS_PATH}'\"\n fi";
};
04CDB1201A5E209000B854EE /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "[[ ${FAUXPAS_SKIP} == 1 ]] && exit 0\n [[ ! -z \"${TRAVIS}\" ]] && exit 0\n \n FAUXPAS_PATH=\"/usr/local/bin/fauxpas\"\n if [[ -f \"${FAUXPAS_PATH}\" ]]; then\n pwd\n \"${FAUXPAS_PATH}\" check-xcode --configFile \"../ci_scripts/FauxPasConfig/main.fauxpas.json\"\n else\n echo \"warning: Faux Pas was not found at '${FAUXPAS_PATH}'\"\n fi";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
04CDB07F1A5E020900B854EE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
04CDB4A11A5F309A00B854EE /* STPCard.m in Sources */,
04CDB48B1A5F309A00B854EE /* STPCheckoutOptions.m in Sources */,
04CDB10F1A5E05BA00B854EE /* STPAPIClientTest.m in Sources */,
04CDB49B1A5F309A00B854EE /* STPFormEncoder.m in Sources */,
04CDB49F1A5F309A00B854EE /* STPBankAccount.m in Sources */,
04CDB4A31A5F309A00B854EE /* STPToken.m in Sources */,
04CDB4911A5F309A00B854EE /* STPColorUtils.m in Sources */,
04CDB4891A5F309A00B854EE /* STPPaymentPresenter.m in Sources */,
04CDB4851A5F309A00B854EE /* STPAPIClient+ApplePay.m in Sources */,
04CDB48D1A5F309A00B854EE /* STPCheckoutViewController.m in Sources */,
04CDB2F11A5EF8EF00B854EE /* STPAPIConnectionTest.m in Sources */,
04CDB1101A5E05BA00B854EE /* STPApplePayTest.m in Sources */,
04CDB1111A5E05BA00B854EE /* STPBankAccountFunctionalTest.m in Sources */,
04CDB48F1A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */,
04CDB2EE1A5EF8B800B854EE /* STPFormEncoderTest.m in Sources */,
04CDB49D1A5F309A00B854EE /* STPAPIConnection.m in Sources */,
04CDB4871A5F309A00B854EE /* Stripe+ApplePay.m in Sources */,
04CDB1121A5E05BA00B854EE /* STPBankAccountTest.m in Sources */,
04CDB4951A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */,
04CDB4971A5F309A00B854EE /* STPStrictURLProtocol.m in Sources */,
04CDB1131A5E05BA00B854EE /* STPCardFunctionalTest.m in Sources */,
04CDB4991A5F309A00B854EE /* STPAPIClient.m in Sources */,
04CDB1141A5E05BA00B854EE /* STPCardTest.m in Sources */,
04CDB4931A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */,
04CDB1151A5E05BA00B854EE /* STPCertTest.m in Sources */,
04CDB4A51A5F309A00B854EE /* StripeError.m in Sources */,
04CDB1161A5E05BA00B854EE /* STPTokenTest.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
04CDB08D1A5E021800B854EE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
04CDB1171A5E05C600B854EE /* STPAPIClientTest.m in Sources */,
04CDB4921A5F309A00B854EE /* STPColorUtils.m in Sources */,
04CDB4961A5F309A00B854EE /* STPOSXCheckoutWebViewAdapter.m in Sources */,
04CDB2EF1A5EF8C100B854EE /* STPFormEncoderTest.m in Sources */,
04CDB1191A5E05C600B854EE /* STPBankAccountFunctionalTest.m in Sources */,
04CDB4A01A5F309A00B854EE /* STPBankAccount.m in Sources */,
04CDB4861A5F309A00B854EE /* STPAPIClient+ApplePay.m in Sources */,
04CDB4A41A5F309A00B854EE /* STPToken.m in Sources */,
04CDB49C1A5F309A00B854EE /* STPFormEncoder.m in Sources */,
04CDB48E1A5F309A00B854EE /* STPCheckoutViewController.m in Sources */,
04CDB4901A5F309A00B854EE /* STPCheckoutInternalUIWebViewController.m in Sources */,
04CDB11A1A5E05C600B854EE /* STPBankAccountTest.m in Sources */,
04CDB49A1A5F309A00B854EE /* STPAPIClient.m in Sources */,
04CDB4881A5F309A00B854EE /* Stripe+ApplePay.m in Sources */,
04CDB49E1A5F309A00B854EE /* STPAPIConnection.m in Sources */,
04CDB11B1A5E05C600B854EE /* STPCardFunctionalTest.m in Sources */,
04CDB2F21A5EF8F300B854EE /* STPAPIConnectionTest.m in Sources */,
04CDB4941A5F309A00B854EE /* STPIOSCheckoutWebViewAdapter.m in Sources */,
04CDB11C1A5E05C600B854EE /* STPCardTest.m in Sources */,
04CDB48A1A5F309A00B854EE /* STPPaymentPresenter.m in Sources */,
04CDB4981A5F309A00B854EE /* STPStrictURLProtocol.m in Sources */,
04CDB11D1A5E05C600B854EE /* STPCertTest.m in Sources */,
04CDB4A21A5F309A00B854EE /* STPCard.m in Sources */,
04CDB11E1A5E05C600B854EE /* STPTokenTest.m in Sources */,
04CDB48C1A5F309A00B854EE /* STPCheckoutOptions.m in Sources */,
04CDB4A61A5F309A00B854EE /* StripeError.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
04CDB07D1A5E01E500B854EE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
};
name = Debug;
};
04CDB07E1A5E01E500B854EE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
};
name = Release;
};
04CDB08B1A5E020900B854EE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = STRIPE_ENABLE_APPLEPAY;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "iOS Tests/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = (
"-Wextra",
"-Wall",
"-Wundef",
"-Wfloat-equal",
);
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
};
name = Debug;
};
04CDB08C1A5E020900B854EE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
);
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_PREPROCESSOR_DEFINITIONS = "-DNDebug";
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = STRIPE_ENABLE_APPLEPAY;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "iOS Tests/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = (
"-Wextra",
"-Wall",
"-Wundef",
"-Wfloat-equal",
);
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
04CDB0981A5E021800B854EE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(DEVELOPER_FRAMEWORKS_DIR)",
"$(inherited)",
);
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "OSX Tests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = (
"-Wundef",
"-Wextra",
"-Wall",
"-Wfloat-equal",
);
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
};
name = Debug;
};
04CDB0991A5E021800B854EE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(DEVELOPER_FRAMEWORKS_DIR)",
"$(inherited)",
);
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_SHADOW = YES;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "OSX Tests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = (
"-Wundef",
"-Wextra",
"-Wall",
"-Wfloat-equal",
);
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
04CDB07C1A5E01E500B854EE /* Build configuration list for PBXProject "Stripe Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
04CDB07D1A5E01E500B854EE /* Debug */,
04CDB07E1A5E01E500B854EE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
04CDB08A1A5E020900B854EE /* Build configuration list for PBXNativeTarget "iOS Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
04CDB08B1A5E020900B854EE /* Debug */,
04CDB08C1A5E020900B854EE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
04CDB0971A5E021800B854EE /* Build configuration list for PBXNativeTarget "OSX Tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
04CDB0981A5E021800B854EE /* Debug */,
04CDB0991A5E021800B854EE /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 04CDB0791A5E01E500B854EE /* Project object */;
}

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0901A5E021800B854EE"
BuildableName = "OSX Tests.xctest"
BlueprintName = "OSX Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0901A5E021800B854EE"
BuildableName = "OSX Tests.xctest"
BlueprintName = "OSX Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0901A5E021800B854EE"
BuildableName = "OSX Tests.xctest"
BlueprintName = "OSX Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0901A5E021800B854EE"
BuildableName = "OSX Tests.xctest"
BlueprintName = "OSX Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0901A5E021800B854EE"
BuildableName = "OSX Tests.xctest"
BlueprintName = "OSX Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0821A5E020900B854EE"
BuildableName = "iOS Tests.xctest"
BlueprintName = "iOS Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0821A5E020900B854EE"
BuildableName = "iOS Tests.xctest"
BlueprintName = "iOS Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0821A5E020900B854EE"
BuildableName = "iOS Tests.xctest"
BlueprintName = "iOS Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0821A5E020900B854EE"
BuildableName = "iOS Tests.xctest"
BlueprintName = "iOS Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "04CDB0821A5E020900B854EE"
BuildableName = "iOS Tests.xctest"
BlueprintName = "iOS Tests"
ReferencedContainer = "container:Stripe Tests.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>