Боюсь, я уже знаю ответ на свой вопрос, но все же решил спросить, прежде чем терять надежду.
У меня есть следующий вариант использования: приложение записывает несколько байтов в «общий» ресурс (скажем, в файл), а другое приложение считывает данные и отправляет их на внешнее устройство через BLE в фоновом режиме. К сожалению, я знаю, что такие понятия, как общий ресурс и фон, ограничены в iOS. Что я пробовал до сих пор:
Использование группы приложений для обмена данными между двумя приложениями
Это нормально работает даже в фоновом режиме, но оба приложения должны быть созданы одной и той же командой разработчиков (т. е. идентификатор команды должен быть одинаковым). Это проблема, потому что одно приложение не создано моей командой разработчиков.
Копирование данных в монтажный стол
Это не работает, когда приложение находится в фоновом режиме. Данные всегда будут nil
и будут обновляться только тогда, когда приложение снова станет активным.
...и конечно есть...
Фоновые ограничения
Несмотря на то, что я выбираю решение группы приложений, единственный способ, которым я могу читать данные и отправлять их на устройство BLE в фоновом режиме, — это запускать фоновую задачу. Это, очевидно, предостережение: у задачи есть время истечения срока действия (из выполненных мной тестов она продолжается около 3 минут, прежде чем ОС приостанавливает ее). Мне не нужно запускать длительную задачу, но я не могу гарантировать, что ее можно полностью выполнить за 3 минуты или около того.
Вот вопрос: Есть ли какое-то другое решение для этого варианта использования или мне следует, наконец, сдаться?