This behavior often stems from a conflict between the Microsoft Intune SDK's method of method swizzling and the way Mendix Native (React Native) initializes its module system. When the Intune SDK is integrated, it wraps several system-level API calls to enforce Data Loss Prevention (DLP) policies. If the IntuneConfigurator or the manual Info.plist configuration has strictly defined the IntuneMAMSettings dictionary, it may be inadvertently suppressing the standard iOS permission request flow. This is particularly common if the MainBundleIdentifier or the keychain sharing groups are not perfectly aligned with the provisioning profile, causing the SDK to "fail closed" on privacy-sensitive hardware features like the camera.
You should verify if the NSCameraUsageDescription key exists both at the top level of your Info.plist and specifically within the IntuneMAMSettings dictionary if you are using policy-based camera overrides. In some versions of the Intune SDK, if the app is managed, the SDK expects the Managed App Configuration to explicitly allow hardware use. Even if your Intune portal policy says "allow," the local app wrapper might be waiting for a specific entitlement signal that the Mendix native template isn't sending because the SDK has intercepted the AVCaptureDevice authorization request before it reaches the React Native layer.
The crash you are seeing when forcing a permission check is likely a SIGABRT or a null pointer exception caused by the Mendix Barcode Scanner module attempting to access a camera session that the Intune-wrapped AVFoundation has nullified. Since you are using Mendix 10.12.x and Native Template 14, there is a known sensitivity regarding the Linker Flags. Ensure that -ObjC is present in your "Other Linker Flags" in Xcode, as the Intune SDK relies heavily on categories that must be loaded at runtime to properly hook into the camera permissions. If these aren't loaded, the "hook" exists but the "implementation" is missing, leading to the crash.
To resolve this, I recommend checking the "Privacy - Camera Usage Description" in your Xcode project's Info tab one more time to ensure it wasn't overwritten or deleted by the IntuneConfigurator tool during the build phase. You might also want to try disabling "Enable Bitcode" in your Build Settings if it is still active, as this has been known to interfere with the way the Intune static frameworks wrap third-party Mendix dependencies. If the issue persists, you can try to manually initialize the Intune enrollment within the AppDelegate.m rather than relying solely on the configurator's automated injection to ensure the Mendix bridge is fully established before the SDK locks down hardware access.
This is expected behavior when using Microsoft Intune MAM with Mendix Native on iOS, and it is not a Mendix barcode scanner bug.
Root cause
When the Intune SDK is integrated, Intune takes control over iOS permissions. If Camera access is not explicitly allowed by the Intune App Protection Policy, iOS will:
This matches exactly what you’re seeing.
Why it worked before
Before Intune integration, Mendix Native handled permissions normally.
After Intune MAM is added, Info.plist permissions alone are no longer sufficient.
What must be configured (required)
In Microsoft Intune → App Protection Policy (iOS):
Without this, Intune silently blocks camera usage.
Important Mendix / Intune notes
NSCameraUsageDescription must exist in Info.plist (you already did this)Conclusion
This is an Intune App Protection Policy configuration issue, not a Mendix or barcode widget issue.
Once Camera access is explicitly allowed in Intune, Mendix Native barcode scanning works as expected.