Частный обмен данными между приложениями iOS, которые имеют разные идентификаторы команд

Как я могу в частном порядке обмениваться данными между двумя приложениями на одном устройстве, которые имеют разные идентификаторы команды? Раньше мы делали это через монтажную панель, но в iOS7 для использования специализированных монтажных панелей приложения теперь они должны иметь одинаковый идентификатор команды.

Проблема, которую мы пытаемся решить, - это разблокировка функций в одном приложении, если пользователь приобрел другое приложение. Мы бы хотели, чтобы это происходило незаметно в фоновом режиме (следовательно, изначально с использованием монтажных панелей для конкретных приложений), но было бы обеспечено некоторая безопасность, чтобы пользователи не могли подделать процесс и разблокировать функции.

Один из подходов, который мы исследуем, состоит в том, чтобы использовать системный монтажный щит, но шифровать данные с помощью специального ключа устройства. Пока оба приложения используют один и тот же алгоритм для генерации ключа, это должно работать, но тогда возникает проблема, как сгенерировать ключ для конкретного приложения.

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

2 ответа

Решение

Я также использую монтажную панель для отправки данных между приложениями. Это действительно полезный инструмент для отправки средних объемов данных между приложениями. Я на самом деле написал пост в блоге по этой теме некоторое время назад.

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

Если у вас есть средние объемы личных данных, которые делятся между приложениями с разными префиксами, тогда нужно другое решение. В этом случае я бы предложил использовать некоторую форму шифрования и использовать общий картон для перемещения данных. В зависимости от чувствительности данных, вероятно, было бы неплохо зашифровать данные даже при использовании частного картона. У Роба Нейпира есть хорошая библиотека, которая делает шифрование и дешифрование очень простым.

В качестве альтернативы, если ваши данные довольно малы, вы можете подумать о кодировании данных в URL и использовании схемы URL для перемещения данных в другое приложение.

Нашел эту статью, которая представляет собой обзор нескольких различных техник, включая монтажную панель, упомянутую выше:

Обмен данными локально

Другие вопросы по тегам