Приложение обнаруживает устройства Bluetooth только при запуске из Xcode - PullRequest
10 голосов
/ 13 мая 2019

Я работаю с вилкой этого проекта для браслетов Empatica E4, и я не могу заставить работать устройства обнаружения без запуска приложения из Xcode.Ситуация может быть воспроизведена с оригинальным примером проекта.

Когда я запустил проект через XCode, я вижу список ближайших устройств.Однако, когда я закрываю приложение и запускаю его с телефона (вместо нажатия «play» на Xcode), я не вижу никакого устройства.

Должен ли я что-то настроить в Project или иметь учетную запись разработчика?Прямо сейчас я не плачу с учетной записью разработчика, но я думал, что смогу сделать это без использования Xcode для запуска приложения.Спасибо.

Короче говоря : я могу открыть приложение, не подключая телефон к XCode, но не могу обнаружить устройства, когда я не подключен к XCode.

ПодробнееКогда выполняется через Xcode на iphone, обнаружение устройства работает.На логах мы видим:

E4tester    [didUpdate] status 2 • kBLEStatusScanning
bluetoothd  Received XPC message "CBMsgIdScan" from session "Empatica.E4testerCV-central-313-24"
bluetoothd  Received 'start scan' request without duplicates for all UUIDs from session "Empatica.E4testerCV-central-313-24"
bluetoothd  State of application "Empatica.E4testerCV" is now "foreground-running"

Однако.Когда приложение открыто на iPhone (вместо запуска через Xcode), мы получаем следующие сообщения журнала:

E4tester    [didUpdate] status 0 • kBLEStatusNotAvailable
E4tester    Task <EA813C26-F662-461C-8C47-A97FA7E32BA4>.<0> response ended
E4tester    Task <EA813C26-F662-461C-8C47-A97FA7E32BA4>.<0> done using Connection 1

Важной деталью здесь является статус kBLEStatusNotAvailable, которыйконтрастирует с kBLEStatusScanning.Согласно их документам это означает Устройство iOS не поддерживает Bluetooth LE, или модуль Bluetooth LE не активен. , но устройство поддерживает BT LE и включено.

Я открыл выпуск в их хранилище.

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

Вам нужна учетная запись разработчика для тестирования приложений Xcode на устройствах.

Учетная запись разработчика будет выдавать сертификаты и обеспечивать запуск приложения на устройстве.Разрабатывается и распространяется 2 сертификата.

В вашем случае у вас нет учетной записи Apple.так что, возможно, вы используете бесплатное предоставление

Пожалуйста, прочтите это, чтобы понять бесплатное предоставление: Тестируйте приложение iOS на устройстве без программы для разработчиков Apple или джейлбрейка

Возможно, бесплатные возможностипредоставление ограничено в режиме отладки * (запускается из xcode)

1 голос
/ 25 мая 2019

В конце концов я получил прямой ответ от службы поддержки Empatica , который я считаю идеальным, поскольку я искал ответ из достоверных и / или официальных источников.

Тем не менее, я хотел бы поблагодарить Антонио за его полезный ответ, а также Scriptable и Hichem за их сообщения.

Ответ от команды Empatica E4 следующий:

@ carlosvega Если вы работаете с iPhone с iOS 11 или 12, вы следует добавить строку NSBluetoothPeripheralUsageDescription в Info.plist файл Пример кода был создан некоторое время назад строка конфиденциальности была обязательной. - инженерная команда Empatica

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...