This page lists the known issues, limitations, and intentional constraints you are most likely to run into with the Incode iOS SDK. Each entry describes a lasting, customer-facing behavior, not a temporary bug. The release notes track and resolve temporary bugs.
This list is a quick summary. Migration Guide holds the authoritative, version-specific notes. Check those pages for the exact release where a behavior changed, or a limitation started or ended.
NFC
- The SDK tries the PACE protocol first, then falls back to BAC. When opening an NFC chip, the SDK attempts Password Authenticated Connection Establishment (PACE) when the document advertises support for it, and falls back to Basic Access Control (BAC) otherwise. See NFC.
Capture-Only Mode
- Forward
metadatato the Incode API. In Capture-Only mode (IncdOnboardingManager.shared.sdkMode = .captureOnly), the SDK returns captures to your app without uploading them, and your app is responsible for submission. When you submit a capture yourself, forward themetadatafield from the capture result—IdScanResult.metadataandSelfieScanResult.metadata—to the Incode API. This field carries proprietary capture metadata required by the Incode backend to process the capture. See Capture-Only Mode.
On-Device Face Processing for Selfie Scan V2
Constrained configuration. On-device face results submission for the Selfie module, configured through Dashboard/Workflows, is only honored when all of the following hold:
- End-to-end encryption is active for the session,
- The Login variant is included in the build, and
- The module runs with a visible UI (headless mode is not supported).
If any of these is not met, on-device submission is not used. Note that the iOS requirements differ from the Android SDK. See Selfie.
Simulator
- Camera and NFC are unavailable on the iOS Simulator. Camera- and NFC-dependent modules cannot produce real captures on the Simulator; the SDK gates camera and NFC availability when running there. Run capture flows on a physical device. NFC additionally requires iOS 13.0 or later and NFC-capable hardware. On unsupported OS versions the SDK reports
NFCScanError.notAvailable.
Device Environment Detection
- Environment signals are reported, not enforced. The iOS SDK collects device-integrity signals: jailbreak, runtime-hooking/instrumentation, and, in release builds, debugger-attach detection. It reports them to the Incode backend as upload metadata for risk analysis. These signals are non-blocking: they do not stop onboarding, they do not surface as a catchable error or delegate callback, and they do not crash the app. You cannot disable them, and there is no integrator hook to handle them.