CredStore проанализировать ошибки запроса



я столкнулся с проблемой при выполнении вызовов API для моих приложений backend, каждое соединение теперь запрашивает



CredStore - performQuery - Error copying matching creds.  Error=-25300, query={
atyp = http;
class = inet;
"m_Limit" = "m_LimitAll";
ptcl = http;
"r_Attributes" = 1;
srvr = "myappsurl.com";
sync = syna;
}


Я немного потерялся, поскольку я не уверен, что вызывает это, или что CredStore даже делает.
Какую цель выполняет CredStore в iOS?

780   6  

6 ответов:

эта ошибка возникает при попытке получить URLCredential С URLCredentialStorage неизвестный URLProtectionSpace. например,

let protectionSpace = URLProtectionSpace.init(host: host, 
                                              port: port, 
                                              protocol: "http", 
                                              realm: nil, 
                                              authenticationMethod: nil)

var credential: URLCredential? = URLCredentialStorage.shared.defaultCredential(for: protectionSpace)

производит

CredStore - performQuery - Error copying matching creds.  Error=-25300, query={
    class = inet;
    "m_Limit" = "m_LimitAll";
    ptcl = http;
    "r_Attributes" = 1;
    srvr = host;
    sync = syna;
}

дайте ему учетные данные для пространства защиты:

let userCredential = URLCredential(user: user, 
                                   password: password, 
                                   persistence: .permanent)

URLCredentialStorage.shared.setDefaultCredential(userCredential, for: protectionSpace)

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

Я немного потерял, как я не уверен, что является причиной этого, или что CredStore даже делает. Какой цели CredStore служить в iOS?

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

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

вероятно, его можно смело игнорировать как возвращающий ноль из URLCredentialStorage является допустимым ответ

это ошибка транспорта, давайте добавим разрешение транспорта, как это в файле plist:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

будьте осторожны как это позволяет подключение к любому серверу из вашего приложения. Подробнее о безопасности транспорта приложений, прежде чем продолжить. Смотрите комментарий @kezi

Если вы получаете эту ошибку, при использовании AVPlayer, просто позвоните .играть() на основной поток

я отредактировал строку, содержащую URL-адрес, чтобы исправить эту проблему:

var myUrl = "http://myurl.com"
myUrl = myUrl.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)!

let url = URL(string: myUrl)

в моем случае я не инициализировал Stripe SDK с ключом API.

        STPPaymentConfiguration.shared().publishableKey = publishableKey

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

        print(error.debugDescription)

ошибка также может быть вызвана политикой безопасности содержимого (CSP), которая может быть слишком ограничительной. В нашем случае нам нужен был CSP, который более или менее полностью открыт и позволяет все. Имейте в виду, что открытие CSP может быть большой проблемой безопасности (в зависимости от того, что именно вы делаете в приложении).

Comments

    Ничего не найдено.