App discovers bluetooth devices only when ran from Xcode

You need developer's account for testing Xcode apps in devices.

Developer account will give certificates and provisioning to run app in device. There is 2 certificates develop and distribution.

In your case you don't have any apple account. so maybe u are using freee provisioning

Please read this one to understand free provision: Test iOS app on device without apple developer program or jailbreak

Maybe the capabilites on free provision is limited on debug mode *(runned from xcode)


In the end I got a direct answer from Empatica support team which I think is perfect since I sought an answer from credible and/or official sources.

Still, I would like to thank Antonio for his useful answer as well as Scriptable and Hichem for their messages.

The answer from Empatica E4 team is the following:

@carlosvega If you are working with an iPhone with iOS 11 or 12 you should add the string NSBluetoothPeripheralUsageDescription in the Info.plist file. The sample code has been created a while ago before the privacy string was mandatory. -- Empatica Engineering Team