Ошибка LinkedIn SDK iOS, если вы уже вошли в приложение LinkedIn - PullRequest
0 голосов
/ 15 октября 2018

Я использую iOS LinkedIn SDK для входа в мое приложение и получения основных профилей.Все прекрасно работает при первом входе в систему, пока я не выйду из системы или не закрою свое приложение.

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

Ошибка домена = Код LISDKAuthError = 5 "(null)" UserInfo = {errorDescription = Операцияне может быть завершено.Программное обеспечение вызвало прерывание соединения, originalDomain = LISDKServerError, errorInfo = PARSING_ERROR}

Я могу успешно снова войти в систему, только если сначала закрою приложение LinkedIn, прежде чем снова открыть мое.

У кого-нибудь есть идея?что происходит, пожалуйста?

-Это происходит не на всех моих тестовых устройствах!

-На устройстве, на котором это происходит, я также получаю ту же ошибку в этом сценарии при запуске примера приложения, предоставленногос LinkedIn SDK.

- Приложение LinkedIn обновлено.

- Идентификатор приложения, идентификаторы пакета и т. д. и т. д. все установлены, следовательно, вход в систему выполняется половину времени!

-Я пытался вызвать [LISDKSessionManager clearSession] во многих местах.

Ответы [ 4 ]

0 голосов
/ 23 февраля 2019

Раскомментируйте эти две строки кода в LISDKSession.h

- (LISDKAccessToken *)getAccessToken;

- (void)setAccessToken:(LISDKAccessToken *)accessToken;
0 голосов
/ 24 декабря 2018

У меня была похожая проблема.Он в основном воспроизводился только на iOS 12. Проблема в том, что когда у вас уже запущено приложение LinkedIn, вы не сможете войти через их SDK в ваше приложение.На iOS 11 при второй попытке войти после этой ошибки авторизация работала нормально.Я решил эту проблему, просто показав пользователю предупреждение с сообщением о том, что ему нужно сделать для авторизации.

Здесь вы можете проверить пример моей реализации в Swift 4:

LISDKSessionManager.createSession(withAuth: ["r_basicprofile"],
                                  state: nil, 
                                  showGoToAppStoreDialog: true,
                                  successBlock: { _ in
                   // Your actions in case of successful authorization
                }, errorBlock: { error in

                    guard let nsError = error as NSError? else {
                        return
                    }

                    if #available(iOS 12.0, *),
                        nsError.code == LISDKErrorCode.SERVER_ERROR.rawValue {
                        // Show alert to user with text - "Please, shut down the LinkedIn app and try login again"
                    } else if nsError.code != LISDKErrorCode.USER_CANCELLED.rawValue {
                        // Handling when user tap on Cancel button in LinkedIn SDK
                    }
})
0 голосов
/ 15 января 2019

Я боролся за исправление этого с LinkedIn в течение нескольких месяцев.Есть «решение» - убить SDK.Взято из их «Важных обновлений программы и API-интерфейсов для разработчиков LinkedIn», декабрь 2018 года:

«Аутентификация, SDK и плагины: мы также устарели несколько устаревших или редко используемых продуктов и технологий».

«SDK: наши комплекты для разработки JavaScript и мобильных программ (SDK) перестанут работать. Разработчикам потребуется перейти на использование OAuth 2.0 непосредственно из своих приложений».

0 голосов
/ 26 октября 2018

Предупреждение об исправлении Cheeky Framework.

Раскомментируйте строки в LISDKSession.h Это позволяет правильно использовать [LISDKSessionManager hasValidSession]

Что является улучшением того, с чем мы работали.Еще не тестировался с iOS12 ...

...