What is a “fallback bundle”?

The Helium SDK does its best to fetch the latest paywalls to display in your app. But if for some reason a paywall is not available — perhaps if an app user temporarily did not have a data connection — Helium will attempt to show a “fallback”. By using a fallback bundle you can download copies of your actual Helium paywalls and include that in your app to use in the rare case that a Helium paywall is not ready for display.

Download Fallback Bundle

Go to the Workflows page in your dashboard and find the Download Fallbacks button: Download Fallbacks 1 Pn Click that to open a dialog and select which control paywalls you would like to include as fallback for their corresponding trigger.
If you update these paywalls (or add new ones) then you might consider doing this process again to get a newer fallback bundle.
Download the file. It should be named something like fallback-bundle-xxxx-xx-xx.json where the x ‘s are replaced with today’s date.

Pass Fallback Bundle to Helium SDK

  1. Integrate the SDK with the iOS Quickstart if you haven’t done so already.
  2. Drag your downloaded bundle into the Project navigator of your Xcode project.
  3. You should see a dialog with Action and **Targets **fields. For Action, either option (copy or move) is fine. For **Targets **ensure that your app’s main target is selected.
  4. Then pass the bundle URL to Helium.initialize
let fallbackBundleURL = Bundle.main.url(forResource: "fallback-bundle-xxxx-xx-xx", withExtension: "json")

Helium.shared.initialize(
   apiKey: apiKey,
   heliumPaywallDelegate: delegate,
   // ... other parameters ...
   fallbackBundleURL: fallbackBundleURL
)
Make sure to replace fallback-bundle-xxxx-xx-xx with the correct name!
All done! If you want to test the fallback bundle, you can run your app with device in airplane mode and attempt to show a paywall. The corresponding fallback paywall should display!