This page covers iOS-specific integration issues. For a symptom-based overview, start with Common Issues.
In case of an expired or invalid license, SDK methods throw an NSError in GSKErrorDomain with a GSKError code. Catch license errors separately so your app can prompt users to update or show a fallback flow:
do {
// SDK method call
} catch let error as NSError
where error.domain == GSKErrorDomain &&
error.code == GSKError.licenseError.rawValue {
// Handle expired or invalid license
// Prompt users to update to the latest version of your app
} catch {
// Handle other SDK errors
}
If the license key is rejected at startup, verify that it matches the app bundle identifier and that it is set before calling SDK APIs. See Configure the License Key.
The app builds but crashes at launch with an error such as image not found, or Xcode reports that GSSDK cannot be loaded.
If you use Swift Package Manager, make sure the GSSDK package product is added to the app target that uses the SDK.
If you integrate the SDK manually, embed GSSDK.xcframework in the app target. It must be available in the final app bundle, not only linked during compilation.
Xcode or Swift Package Manager reports that GSSDK.framework requires a newer iOS version.
Set the app target deployment target to iOS 15.0 or later. If another dependency requires a higher deployment target, keep the higher value.
For cross-platform apps, update the generated or native iOS project too. For example, React Native, Flutter, Cordova, Capacitor, and .NET MAUI apps all have native iOS deployment-target settings in addition to their package dependency.
The scan flow cannot access the camera, or iOS terminates the app when camera access is requested.
Add NSCameraUsageDescription to the app Info.plist:
<key>NSCameraUsageDescription</key>
<string>We use the camera to scan documents</string>
If you build a custom integration, request camera permission before initializing camera UI components.
ScanFlow screens stay in English even though the device language is supported.
The ScanFlow UI supports around 20 languages and uses the device locale for user guidance, menus, and dialogs.
The SDK uses the localization of the main app. If localization is not enabled for the host app, the SDK falls back to English.
To enable localization:
Apple documents the project setup in Localizing Your App.
The status bar appearance is incorrect while the scan flow is visible.
The Genius Scan SDK supports the modern, view controller-based status bar appearance introduced with iOS 7. The camera screen is designed to work with the status bar hidden.
If the status bar appearance is broken, remove UIViewControllerBasedStatusBarAppearance=NO from your app’s Info.plist, or set it to YES.
If the issue persists, contact support with:
Start with a free trial license to test the SDK, or contact us directly for a custom quote tailored to your needs.
© 2026 The Grizzly Labs. All rights reserved.