Osstatus error 10814

On iOS 13 it looks like openURL is failing for at least facebook.

On iOS 13 it looks like openURL is failing for at least facebook.

I have tried a very simple test app to verify , and it always fails with :

2019-06-08 17:31:03.687369-0700 TestFacebook[48641:2771343] -canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"

It will fail on both simulator and device.

If the auth was already present reading the auth from SDK continues to work. Anyone else seeing this behavior or know of a workaround?

Replies

It’s not new in iOS 13, but have you checked the LSApplicationQueriesSchemes in your Info.plist? For quite a long time (iOS 10 or 11?) you have to explicitly declare which URL schemes you will query. Some apps (cough, Twitter, cough) were abusing it find what other apps you had installed. This is why we can’t have nice things…

Yes these are all set in the info.plist , this all works 100% when run against iOS 12 device or simulator but runnin on a device or similator running iOS 13 will fail with the above mentioned error.

Still happening as of beta 2

To be clear this happens even when creating a very simple test application using the latest facebook SDK and correctly updating plist etc.

Did you resolve this issue? I am having the same problem after upgrading to Xcode 11 and iOS 13.

If you are creating Project using Xcode 11, you need to handle opening URL in this method of SceneDelegate.swift:

func scene(_ scene: UIScene, openURLContexts URLContexts: Set)

instead of usual place in AppDelegate.swift:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

Or you can get rid of the UISceneConfiguration and use the old approach.

Собственно тема уже давно существует, читал соседние ветки, пытался победить трабл, но пока не удается. Использую движок Unity (C#) и свою оболочку к VK SDK на objective-c.
Интегрированный сервис идеально работает до версии 9.3.5 включительно, а вот на 10.1.1 появились проблемы: по нажатию на кнопку авторизации (официальный клиент ВК не установлен) всплывает на девайсе пустое окно Safari

Safari

а в лог падает
-canOpenURL: failed for URL: "vkauthorize://authorize" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"

В application не попадает

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {    
    NSLog(@"application-annotation 1 LOG application openURL %@", url);    
    //[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
    [VKSdk processOpenURL:url fromApplication:sourceApplication];
    NSLog(@"application-annotation 2 LOG application openURL %@", url);
    return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {    
    NSLog(@"application-options 1 LOG app openURL %@", url);    
    //[[FBSDKApplicationDelegate sharedInstance] application:application openURL:url options:options];
    [VKSdk processOpenURL:url fromApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];    
    NSLog(@"application-options 2 LOG app openURL %@", url);
    return YES;
}

Думал, что схемы не так прописаны, но вроде так:

<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleURLName</key>
			<string>com.mycompany.testproj</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>vk012345</string>
			</array>
		</dict>
	</array>
	<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>vk</string>
		<string>vk-share</string>
		<string>vkauthorize</string>
	</array>

Делегат реализован в оболочке

    [[VKSdk initializeWithAppId:appVkId] registerDelegate:self];
    [[VKSdk instance] setUiDelegate:self];

Презентация настроена, сюда попадает, лог отрабатывает.

- (void)vkSdkShouldPresentViewController:(UIViewController *)controller {
    NSLog(@"vkSdkShouldPresentViewController ---n");
    [self presentViewController:controller animated:YES completion:nil];
}

Версия VK SDK последняя — 1.4.6
Все еще предполагаю, что дело в схеме, но не пойму, что не так.

Даже лог выставил в VKSdk.m в (void) authorize:(NSArray *) permissions withOptions:(VKAuthorizationOptions)options { … } внутри if( vkApp ){ … }, туда не попадает совсем.

6 ответов

Ошибка OSStatus -10814 возникает, когда canOpenURL: не может найти какое-либо приложение, которое может открыть этот URL-адрес (фактически, Facebook пытается найти свое приложение, вызвав canOpenURL: с аргументом «fbauth2:/» ). Печать происходит внутри функции, поэтому вы ничего не можете с этим сделать.
Но если вы запустите приложение на устройстве с установленным приложением Facebook, вы не увидите эту ошибку.

Ошибка 308 возникает из-за ситуации, когда значение, хранящееся в цепочке ключей, не равно значению, которое хранится в параметрах завершения facebook (для получения дополнительной информации вы можете проверить -[FBSDKLoginManager completeAuthentication:expectChallenge:]).

Это происходит из-за того, что Apple изменила способ работы с keychain в iOS 10. Чтобы исправить эту проблему, вы просто должны перейти в Targets- > Capabilities и включить совместное использование ключей (он позволяет получить доступ к цепочке ключей для вашего приложения):
Изображение 1961

Если вы используете Xamarin (читайте эту ссылку для получения дополнительной информации, спасибо @dynamokaj):

Просто убедитесь, что вы включили доступ к keychain в разделе «Права и выберите права на сборку Simulator (Debug). По умолчанию это не задано.

Roman Ermolov
05 авг. 2016, в 23:54

Поделиться

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

Перейдите по этой ссылке Выберите свое приложение и настройте ваш info.plist

import и добавьте этот код в ваш AppDelegate

import FBSDKCoreKit
import FBSDKLoginKit

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
}

ZAFAR007
30 авг. 2017, в 10:48

Поделиться

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

canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)

заключается в том, что ваш симулятор iOS не имеет установленного приложения Facebook. Пока вы не установите приложение на свой симулятор iOS, вы продолжите получать ошибку. Попробуйте запустить приложение iOS на подготовленном iOS устройстве с установленным Facebook, и вы не увидите сообщение об ошибке снова. Надеюсь, это поможет!

umarqattan
18 фев. 2017, в 11:11

Поделиться

В моем случае исправление было *:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 

  // First, handle Facebook URL open request
  if let fbSDKAppId = FBSDKSettings.appID(), url.scheme!.hasPrefix("fb(fbSDKAppId)"), url.host == "authorize" { 
    let shouldOpen: Bool = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) 
    return shouldOpen 
  } 

  // After it, handle any other response (e.g. deep links)
  handlerOtherUrls(url: url) 
  return true 
}

* Как рекомендовано @MoridinBG на Страница Facebook SDK Github

Ruben Marin
30 авг. 2017, в 15:18

Поделиться

Эта ошибка также может быть вызвана, если вы используете FBSDKCoreKit или FBSDKLoginKit версии 4.39.0. В этой версии SDK была ошибка. Обновление до 4.39.1 или выше, чтобы исправить это. Подробности здесь.

В качестве примечания, другие пользователи отметили, что эта ошибка видна, если на симуляторе не установлен Facebook. Это правда, но SDK должен автоматически переключаться на метод веб-входа, когда приложение не установлено. Если этого не происходит, это может быть вызвано другой проблемой, например отсутствующими/неправильно настроенными значениями в вашем Info.plist (проверьте LSApplicationQueriesSchemes) или отсутствующими методами в вашем AppDelegate.

Code Commander
16 янв. 2019, в 02:06

Поделиться

В моем случае проблема была в Google Analytics. По умолчанию кажется, что он добавляет свой собственный контроллер просмотра поверх контроллера представления приложения.
Установка «FirebaseAppDelegateProxyEnabled» на «НЕТ» в {Ваше приложение} -Info.plist решила проблему.

da1
04 окт. 2016, в 23:38

Поделиться

Ещё вопросы

  • 0Синхронизация доступа к ресурсам
  • 0Symfony2 как получить диспетчер сущностей в Listener
  • 0ng-repeat не работает с флажком
  • 1Не найдено сопоставление для HTTP-запроса с URI [/ HelloWeb /] в DispatcherServlet с именем «HelloWeb» Spring MVC
  • 0Однобайтовые коды символов
  • 0Внутреннее объединение двух таблиц с результатами даты
  • 1Как добавить текст на всех страницах приложения
  • 0Как сделать так, чтобы два ползунка двигались в противоположном направлении [AngularJS]
  • 0AngularJS и иерархия охвата
  • 0Конфликтующие выходы, когда значение, на которое ссылается указатель, больше не существует
  • 1Разрыв 2-х вложенных циклов «сразу»
  • 0Постоянный логин curl magento и получение данных
  • 0Калькулятор парсера бизонов
  • 1Простой JavaScript — ScrollIntoView внутри Div
  • 1InstancePerApiControllerType не работает
  • 0Как запросить таблицу с составным первичным ключом
  • 0Cocos2d-x — кодирует строку base64 из данных спрайта или текстуры
  • 0Инициализация / Назначение переменных члена класса другим переменным члена класса
  • 1Как создать две взаимодействующие, но не блокирующие службы в Android?
  • 0Можем ли мы произвести оплату с помощью «Делать прямой метод» Paypal, используя номер карты, сумму и срок действия только в PHP [закрыт]
  • 1Как войти на сайт с phython-запросами?
  • 0D3 Каждый метод работает не так, как ожидалось
  • 0Как переставить числа в массиве, когда один из элементов в массиве удален с помощью Angularjs
  • 0php curl_multi_exec () занимает больше времени, чем установлено в CURLOPT_TIMEOUT_MS
  • 0Ограничение данных реляционной модели в LoopbackJS
  • 1Отформатируйте и замените строку регулярным выражением
  • 0CodeIgniter FileUpload не разрешено
  • 0включая страницу php после нажатия кнопки
  • 0Не удается решить проблему спрайтов CSS
  • 0Почему эти стилистические ссылки появляются в моем разделе заголовка приложения угловых материалов
  • 0Как отключить кнопку на Angular
  • 0JavaScript, отображающий массив в свойство объекта
  • 1Перезаписать файл Python при его использовании?
  • 1Как установить тип календаря Windows в C #
  • 0JQuery DataTable fnUpdate не обновляет значения из источника объекта: Uncaught TypeError: Невозможно вызвать метод ‘fnSetData’ из неопределенного
  • 1Java — правильная проверка пересечения линии
  • 1В последнем запущенном AppInventor необходимо ли подключать телефон к ПК для сборки приложения?
  • 1Как вы делаете простой CRUD в Android?
  • 1Контроль Сохранить ярлык в селене
  • 0Как читать YII создать объект команды без foreachloop
  • 0Используйте localStorage, чтобы запустить или остановить скрипт
  • 0столбцы .css для навигации по сайту
  • 0Установить структуру каталогов для всех проектов в решении Visual Studio?
  • 0AngularJS Количество Да / Нет Значения
  • 0Оператор присваивания
  • 0доступ к телу таблицы HTML с помощью Jquery
  • 1Удалить строки, которые имеют определенное значение из DataGridView C #
  • 1JS — Как проверить, похожи ли 2 изображения (их хэш)
  • 1Как общаться между адаптером и активностью
  • 1Заставьте аутентифицированные запросы работать на локальном сервере

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Oriel 963 ошибка ash как исправить
  • Ospp vbs error code 2147217394
  • Oriel 963 ash ошибка что делать
  • Ospp vbs an error occurred while making the connection при активации офиса
  • Oriel 960 ошибка ash

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии