Совместное использование цепочки ключей iOS с расширениями, использующими разные $ ApplicationIdentifierPrefix - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь использовать «обмен ключами» между моим приложением для iOS и новым расширением общего доступа, которое я создаю для приложения.Я могу успешно записать в связку ключей из моего приложения, но не могу прочитать тот же элемент из расширения ... он выдает ошибку "Указанный элемент не найден в связке ключей".

Я изучал эту проблему в течение нескольких дней, и я сильно подозреваю, что это как-то связано с ApplicationIdentifierPrefix.Приложение для iOS, с которым я работаю, было создано давно и использует префикс, созданный вручную на портале для разработчиков еще в 2009 году!Так что он отличается от TeamPrefixIdentifier, который обычно используется по умолчанию.Я даже проверил профили обеспечения как для приложения, так и для расширения, и они подтверждают, что они используют разные значения.

В целевом приложении основного профиля отображается:

<key>keychain-access-groups</key>
<array>
    <string>ET9Qxxxxxx.com.myapp.keychain</string>
</array>

, а в моем добавочном номере:

<key>keychain-access-groups</key>
<array>
    <string>BJ97xxxxx.com.myapp.keychain</string>
</array>

Различные значения для префикса соответствуют значениюв 'application-identifier' в профиле обеспечения.

Некоторые дополнительные сведения о конфигурации: - Я настроил «Группы приложений» и «Общий доступ к брелкам» на вкладке «Возможности» ... фактически, обаПриложение и расширение совместно используют один и тот же файл.- Я использую опцию Xcode «Автоматически управлять подписью» во всех целях.- Совместное использование с помощью NSUserDefaults 'shared suite' отлично работает между приложением и расширением. - Я попытался использовать kSecAttrAccessGroup, которая работает при записи в цепочку для ключей, но, опять же, он не может прочитать значения цепочки для ключей из расширения.

IЯ чувствую, что мне нужно иметь возможность изменить либо AppIdentifierPrefix в профиле обеспечения расширения, либо изменить группу доступа цепочки для ключей, но я не могу понять, как это сделать.Есть ли способ сделать эту работу?Или какой-нибудь другой обходной путь?

Спасибо.

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