A cross-platform .NET MAUI app for scanning barcodes.
- Barcode scanning via
BarcodeScanning.Native.Maui - Targets Android, iOS, Mac Catalyst (and Windows when building on Windows)
- .NET SDK (repo targets .NET 9 / MAUI)
- MAUI workloads installed
Install workloads:
dotnet workload install mauiRestore:
dotnet restoredotnet build -t:Run -f net9.0-androiddotnet build -t:Run -f net9.0-iosTo generate an .ipa for development you must have Apple code-signing set up on your Mac:
- Apple Developer account
- iOS Development certificate installed in Keychain
- Development provisioning profile for your bundle id (default is
com.companyname.scannerapp)
Verify signing identities:
security find-identity -v -p codesigningBuild the IPA:
dotnet publish -c Release -f net9.0-ios -p:RuntimeIdentifier=ios-arm64 -p:BuildIpa=true -p:ArchiveOnBuild=trueIf you need to specify the signing key explicitly:
dotnet publish -c Release -f net9.0-ios -p:RuntimeIdentifier=ios-arm64 -p:BuildIpa=true -p:ArchiveOnBuild=true -p:CodesignKey="Apple Development: YOUR NAME (TEAMID)"dotnet build -t:Run -f net9.0-maccatalystdotnet build -t:Run -f net9.0-windows10.0.19041.0- Camera permissions are required for scanning (handled per platform by MAUI).
If you run automated tests on BrowserStack and need to test scanning flows, use BrowserStack’s Camera Image Injection feature.
- Docs: Camera image injection (App Automate)
- BrowserStack home: https://www.browserstack.com/
Important: cameraImageInjectionUrl must be a direct link to an image (.png / .jpg), not a normal webpage URL (so https://www.browserstack.com/ by itself won’t work as the injection payload).
Example Appium capabilities (conceptual):
{
"enableCameraImageInjection": true,
"cameraImageInjectionUrl": "https://your-hosted-assets.example.com/test-barcode.png"
}MIT. See LICENSE.
