Я использую [facebook authorize:permissions]
из официального API IOS Facebook для подключения к Facebook с помощью единого входа.
Мой код работает нормально, если на устройстве не установлено приложение Facebook (авторизация Safari). Он также отлично работает на устройстве под управлением IOS5 с установленным приложением Facebook (авторизация приложения Facebook).
Однако на устройстве под управлением IOS 4.01 (которое я продолжаю тестировать мои приложения), если приложение Facebook установлено, запрос authorize
запускает приложение Facebook, но когда он возвращается, я получаю следующий ответ в application: HandleOpenURL:
fb[MY_APP_ID]://authorize#error=unknown%5Ferror
Что приводит к вызову fbDidNotLogin:
и отказу моего приложения.
Удаление и переустановка приложения Facebook и / или моего собственного приложения не помогает. Выход из Facebook за пределами моего приложения также невозможен: в этом случае приложение Facebook отображает экран входа в систему, но затем возвращает ту же ошибку.
Если приложение Facebook не установлено на этом устройстве и Safari используется для авторизации, все работает нормально.
Я читал в другом месте, что эта ошибка может быть вызвана неправильным определением моего идентификатора пакета, но (1) все определено правильно во всех местах (мой info.plist, Facebook и iTunes Connect) и (2) все работает в других конфигурациях.
Есть ли что-то, что не поддерживается в IOS 4.01, которое вызывает такое поведение, или я делаю что-то не так? (На самом деле, я пока ничего не делаю, я просто размещаю запрос на авторизацию и реализую методы делегата).