CocoaPods trunk is moving to be read-only. Read more on the blog, there are 10 months to go.

AppAmbitPushNotifications 0.4.0

AppAmbitPushNotifications 0.4.0

Maintained by AppAmbit Inc.



  • By
  • AppAmbit Inc

AppAmbit iOS SDK

Track. Debug. Distribute. AppAmbit: track, debug, and distribute your apps from one dashboard.

Lightweight SDK for analytics, events, logging, crashes, and offline support. Simple setup, minimal overhead.

Full product docs live here: docs.appambit.com


Contents


Features

  • Session analytics with automatic lifecycle tracking
  • Ambit Trail records detailed navigation for debugging
  • Event tracking with custom properties
  • Error logging for quick diagnostics
  • Crash capture with stack traces and threads
  • Offline support with batching, retry, and queue
  • Create mutliple app profiles for staging and production
  • Small footprint, modern Swift API with full Objective-C support

Requirements

  • iOS 12.0 or newer
  • Xcode 15 or newer
  • Swift 5.7 or newer

Install

Swift Package Manager

  • Add the repository URL in Xcode under File → Add Packages…
  • Select the latest version and attach it to your app target

CocoaPods

Add this to your Podfile:

pod 'AppAmbitSdk'
# or specify version
pod 'AppAmbitSdk', '~> 0.2.0'

Then run:

pod install

Open the generated .xcworkspace project.

(If you get an error like “Unable to find a specification for AppAmbitSdk”: run pod repo update, then pod install.)


Quickstart

Configure the SDK at app launch with your API Key.

Swift

// AppDelegate
AppAmbit.start(appKey: "<YOUR-APPKEY>")

Objective-C

// AppDelegate
[AppAmbit startWithAppKey:@"<YOUR-APPKEY>"];

Usage

  • Session activity – automatically tracks user session starts, stops, and durations

  • Ambit Trail – records detailed navigation of user and system actions leading up to an issue for easier debugging

  • Track events – send structured events with custom properties

    Swift

      Analytics.trackEvent(eventTitle: "Test TrackEvent", data: ["test1":"test1"])

    Objective-C

      [Analytics trackEventWithEventTitle:@"Test TrackEvent" data:@{ @"test1": @"test1" } createdAt:nil completion:nil];
    
  • Logs: add structured log messages for debugging

    Swift

      let properties: [String: String] = ["user_id": "1"]
      let message = "Error NullPointerException"
      Crashes.logError(message: message, properties: properties, exception: error)

    Objective-C

      [props setObject:@"123" forKey:@"userId"];
      NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: exception.reason };
      NSError *error = [NSError errorWithDomain:exception.name code:0 userInfo:userInfo];
      [Crashes logErrorWithMessage:(@"Error ArrayIndex") properties:props classFqn:nil exception:nil fileName:nil lineNumber:0 createdAt:nil completion:nil];
    
  • Crash Reporting: uncaught crashes are automatically captured and uploaded on next launch

  • Breadcrumbs: automatic screen-change breadcrumbs (push/pop, present/dismiss). To display the intended screen name, set a navigation title (navigationTitle in SwiftUI / title in UIKit/Objective-C). Without a title, it will appear in the dashboard using the default view/controller name.

    Swift

      NavigationStack {
        MyMview()
          .navigationTitle("MyMview")
      }

    Objective-C

      UIViewController *vc = [UIViewController new];
      vc.title = @"MyMview";
      [self.navigationController pushViewController:vc animated:YES];
    

Release Distribution

  • Push the artifact to your AppAmbit dashboard for distribution via email and direct installation.

Privacy and Data

  • The SDK batches and transmits data efficiently
  • You control what is sent — avoid secrets or sensitive PII
  • Supports compliance with Apple platform policies

For details, see the docs: docs.appambit.com


Troubleshooting

  • No data in dashboard → check API key, endpoint, and network access
  • CocoaPods errors → run pod repo update, then pod install
  • SPM not resolving → confirm repo URL and tagged release version
  • Crash not appearing → crashes are sent on next launch

Contributing

We welcome issues and pull requests.

  • Fork the repo
  • Create a feature branch
  • Add tests where applicable
  • Open a PR with a clear summary

Please follow Swift API design guidelines and document public APIs.


Versioning

Semantic Versioning (MAJOR.MINOR.PATCH) is used.

  • Breaking changes → major
  • New features → minor
  • Fixes → patch

Security

If you find a security issue, please contact us at [email protected] rather than opening a public issue.


License

Open source under the terms described in the LICENSE file.


Links