Не удается заставить Apple Sign In работать с Xamarin.Essentials

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

Я пытаюсь добавить Apple Sign In в приложение Xamarin.Forms с помощью Xamarin.Essentials. На данный момент я просто пытаюсь заставить его работать на iOS 13, пока не углубляюсь, серверная сторона не требуется, как я понимаю, для этой ограниченной области.

Я просмотрел образец приложения для Xamarin.Essentials и пришел к выводу, что специально для iOS 13 будет достаточно вызвать

            await AppleSignInAuthenticator.AuthenticateAsync();

Однако я получил исключение «com.apple.AuthenticationServices.AuthorizationError error 1000». Не могу уточнить подробности.

Затем я взял образец приложения Xamarin.Essentials, изменил Bundle Id на то, что есть в моем приложении, и все заработало. Это подтвердило правильность настройки сертификатов и магазина приложений.

Я попытался получить Xamarin.Essentials из GitHub и выполнить отладку через библиотеку, исключение находится в AppleSignInAuthenticator.ios.cs в «PlatformAuthenticateAsync», в строке

        var creds = await authManager.Credentials;

Обновление: я добавил в grantlements.plist

<key>com.apple.developer.applesignin</key>
<array>
    <string>Default</string>
</array>

Любая помощь или совет приветствуются.


person Maxim Alexeyev    schedule 19.04.2020    source источник
comment
Вы выбрали Apple Sign-in в правах приложения?   -  person SushiHangover    schedule 19.04.2020
comment
Вы читали документы, в которых говорится: Чтобы добавить Apple Sign In в свои приложения, сначала вам нужно настроить приложение для использования Apple Sign In?   -  person Jason    schedule 19.04.2020
comment
У меня есть это в Правах: ‹key› com.apple.developer.applesignin ‹/key› ‹array› ‹string› По умолчанию ‹/string› ‹/array›   -  person Maxim Alexeyev    schedule 19.04.2020
comment
Можете ли вы попробовать создать новый проект и настроить его шаг за шагом, чтобы увидеть, работает ли он? Думаю, того, что вы сделали, достаточно, чтобы включить Apple Sign In.   -  person Jack Hua    schedule 20.04.2020
comment
Да, это то, что я делаю, и простое приложение сработало. Итак, теперь я пытаюсь добавить все другие вещи, которые у меня уже есть, одну за другой, чтобы посмотреть, что это сломает. Очевидно, это что-то в моем существующем приложении.   -  person Maxim Alexeyev    schedule 20.04.2020


Ответы (1)


Я новенький, это будет что-то глупое.

У меня есть Entitlements.Development.plist и Entitlements.Production.plist. Должен ли я сказать больше (не везде добавлял ключ для com.apple.developer.applesignin).

Кстати, как люди справляются с этим, чтобы иметь отдельное значение для ключа aps-environment между разработкой и производством?

person Maxim Alexeyev    schedule 20.04.2020
comment
Почему в вашем проекте два Entitlements.plist? Одного достаточно, и он работает как в разработке, так и в производстве. - person Jack Hua; 21.04.2020
comment
Кроме того, вы можете отметить этот ответ позже, что поможет большему количеству людей с той же проблемой :). - person Jack Hua; 21.04.2020
comment
Причина, по которой я создал два Entitlements.plist, - это разные значения ключа aps-environment. Я украл это отсюда. stackoverflow.com/a/46015434/116317. Как лучше? - person Maxim Alexeyev; 21.04.2020
comment
Хорошо, это нормально. Тогда ключ должен быть add key for com.apple.developer.applesignin everywhere. - person Jack Hua; 22.04.2020
comment
Не могли бы вы отметить этот ответ, который поможет большему количеству людей с той же проблемой :). - person Jack Hua; 05.05.2020