Ошибка группы приложений iOS Share Extension при передаче URL-адреса файла в react-native

У меня есть расширение общего доступа iOS в моем приложении для реагирования. Я использую react-native-share-menu для его реализации, и я использую пользовательское представление RN для диалогового окна общего доступа в соответствии с документацией по компоненту.

Мой собственный диалог общего доступа работает, но как только я пытаюсь перейти к приложению, я получаю сообщение об ошибке:

container_create_or_lookup_app_group_path_by_app_group_identifier: client is not entitled Error: Failed to get App Group User Defaults. Did you set up an App Group on your App and Share Extension?

Я пытаюсь протестировать физическое устройство в режиме отладки.

Группа приложений как в моем приложении, так и в цели расширения одинакова: group.com.myapp.ios (для «всех» — отладка и выпуск)

Я заметил одну вещь: идентификатор моего целевого пакета приложений отличается от последней части идентификатора группы. Должен ли он совпадать с идентификатором целевого пакета приложений?

  • Приложение = com.myapp.ios.official
  • Поделиться расширением = com.myapp.ios.official.share

Кто-нибудь может помочь? Почему моя выбранная группа может быть проблематичной?


person scgough    schedule 04.12.2020    source источник


Ответы (2)


Просто добавлю здесь немного информации для тех, кто создает подобное расширение или использует этот компонент RN:

Имя группы должно быть основным идентификатором пакета приложений с префиксом group., чтобы данные правильно распределялись между двумя целевыми объектами.

Итак, в приведенном выше примере это должно быть: group.com.myapp.ios.official как для цели приложения, так и для цели расширения.

person scgough    schedule 04.12.2020

Это всего лишь некоторая дополнительная информация для самостоятельного ответа @scgough.

Глава и стих для этого: Bundle Resources › Entitlements › App Groups Entitlement. Это говорит о том, что ОС, на которую вы ориентируетесь, имеет значение, iOS или macOS.

У Apple есть более старый ответ, который относится только к macOS: Справочник по ключу прав, включение тестовой среды приложения, добавление приложения в группу приложений. Для macOS имя группы должно быть примерно таким, как DG29478A379Q6483R9214.HolstFirstAppSuite.

person Bob Peterson    schedule 12.03.2021