In-App Messaging

iOS InApp Module Prerequisites & Dependencies

Before integrating the Indigitall InApp SDK module (indigitall-ios-inapp) into your iOS application, ensure your project meets the following requirements.

1. Environment & Compatibility

  • Minimum iOS Deployment Target: iOS 15.6 or higher (as declared in the podspec).
  • Swift Version: Swift 5.0 or higher. The Package.swift uses swift-tools-version:5.7.
  • Objective-C Compatibility: The module is written in Objective-C with full Swift interoperability via module maps and bridging headers.
  • Package Manager: CocoaPods or Swift Package Manager (SPM) — both are supported.
  • Xcode: Xcode 14 or later is recommended to guarantee compatibility with the Swift tools version (swift-tools-version:5.7) declared in Package.swift.

2. Integration Options

CocoaPods

Add the following to your Podfile:

platform :ios, '15.6'

target 'YourApp' do
  use_frameworks!
  pod 'indigitall-ios-inapp'
end

Then run:

pod install

Swift Package Manager

Add the binary target via the Xcode Package Manager UI or your Package.swift by pointing to the IndigitallInApp.xcframework.zip artifact at the desired tagged release URL.

3. Required Internal Modules

The InApp module depends on the following internal Indigitall components, which are bundled into the IndigitallInApp.xcframework:

  • Core (IndigitallCore): Provides the base infrastructure — network request layer (INBaseClient), local data persistence, remote configuration, and the base device model (INCoreDevice).
  • Customer (IndigitallCustomer): Allows targeting in-app messages to specific user profiles using custom attributes.

4. Required Apple Capabilities

The InApp module renders web-based content inside the application and optionally uses device location for geotargeted messages:

  • Location Services (optional): If location-based targeting is enabled (locationEnabled = YES in INInAppConfig), the app must request the appropriate location permission (when-in-use or always) and declare the relevant usage description keys in Info.plist:
    • NSLocationWhenInUseUsageDescription
    • NSLocationAlwaysAndWhenInUseUsageDescription (if always-on location is needed)