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.swiftusesswift-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 inPackage.swift.
2. Integration Options
CocoaPods
Add the following to your Podfile:
platform :ios, '15.6'
target 'YourApp' do
use_frameworks!
pod 'indigitall-ios-inapp'
endThen run:
pod installSwift 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 = YESinINInAppConfig), the app must request the appropriate location permission (when-in-use or always) and declare the relevant usage description keys inInfo.plist:NSLocationWhenInUseUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescription(if always-on location is needed)
