Payfrit Beacon iOS
Major detection gaps were causing iOS to miss 7-8 out of 8-9 nearby DX beacons: 1. FFF0 service UUID was incorrectly mapped exclusively to BlueCharm. Android maps DXSmartProvisioner.SERVICE_UUID_FFF0 to DXSMART. Now checks device name to disambiguate FFF0 between DX and BlueCharm, defaulting to DXSmart (matching Android behavior). 2. Added DX factory default UUID detection (E2C56DB5-DFFB-48D2-B060-D0F5A71096E0). Android catches DX beacons by this UUID on line 130 of BeaconScanner.kt. iOS was missing this entirely. 3. Added Payfrit shard UUID detection — already-provisioned DX beacons broadcasting a shard UUID are now recognized. 4. Added iBeacon manufacturer data parsing with proper UUID extraction. Any device broadcasting valid iBeacon data is now included (not just those with minor > 10000). 5. Added permissive fallback matching Android lines 164-169: connectable devices with names are included even if type is unknown, so they're at least visible to the user. 6. Added FEA0 service UUID for BlueCharm (Android line 124). 7. Added "DX-CP" name pattern (Android line 138) that was missing. Root cause: Android uses MAC OUI prefix 48:87:2D to catch all DX beacons regardless of advertisement contents. iOS can't do this (CoreBluetooth doesn't expose MAC addresses), so we compensate with broader iBeacon UUID matching and more permissive device inclusion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| PayfritBeacon | ||
| PayfritBeacon.xcodeproj | ||
| .gitignore | ||
| CLAUDE.md | ||
| ExportOptions.plist | ||
| ExportOptionsLocal.plist | ||