CargoBay 2.1.1

CargoBay 2.1.1

LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release May 2015

Maintained by Mattt.

CargoBay 2.1.1

The Essential StoreKit Companion

StoreKit is the Apple framework for making In-App Purchases. It's pretty good, but it has a few rough edges.

CargoBay smooths out those rough parts by providing:

  • One step receipt & transaction verification, done securely according to Apple's guidelines
  • Block-based interface for requesting product information
  • Ability to request product information for identifiers asynchronously from a remote web service
  • Block-based callbacks for payment queue observation delegate methods
  • Automatic check for transaction uniqueness

This project is part of a series of open source libraries covering the mission-critical aspects of an iOS app's infrastructure. Be sure to check out its sister projects: GroundControl, SkyLab, houston, and Orbiter.


Product Requests

NSArray *identifiers = @[

[[CargoBay sharedManager] productsWithIdentifiers:[NSSet setWithArray:identifiers]
success:^(NSArray *products, NSArray *invalidIdentifiers) {
  NSLog(@"Products: %@", products);
  NSLog(@"Invalid Identifiers: %@", invalidIdentifiers);
} failure:^(NSError *error) {
  NSLog(@"Error: %@", error);

Payment Queue Observation


- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options {
  [[CargoBay sharedManager] setPaymentQueueUpdatedTransactionsBlock:^(SKPaymentQueue *queue, NSArray *transactions) {
    NSLog(@"Updated Transactions: %@", transactions);

  [[SKPaymentQueue defaultQueue] addTransactionObserver:[CargoBay sharedManager]];

  // ...

Verifying Receipts

[[CargoBay sharedManager] verifyTransaction:transaction password:nil success:^(NSDictionary *receipt) {
  NSLog(@"Receipt: %@", receipt);
} failure:^(NSError *error) {
    NSLog(@"Error %d (%@)", [error code], [error localizedDescription]);


Mattt Thompson


CargoBay is available under the MIT license. See the LICENSE file for more info.