Я почти уверен, что это как-то связано с новой единой регистрацией в Facebook (SSO). Если у пользователя установлена версия Facebook 3.2.3 или выше или Safari на устройстве (или симуляторе), авторизация теперь выполняется вне приложения. Будет публиковать больше, как я нахожу это.
РЕДАКТИРОВАТЬ: Помимо ошибки NSURL, похоже, что это ожидаемое поведение с новым SSO Facebook. Предполагается, что пользователи остаются в псевдо-входе / выходе из системы после «выхода» из вашего приложения, в случае, если они вошли в другое приложение и т. Д. - все это теперь подключено. Чтобы действительно выйти из Facebook (скажем, войти как кто-то еще и т. Д.), Кажется, что пользователь должен щелкнуть ссылку выхода из системы в веб-представлении авторизации, которое показывает, когда он «вышел» из Facebook в вашем приложении. Я могу ошибаться, но я почти уверен в этом.
Шаг 3. Внедрение единого входа (SSO)
Одной из наиболее привлекательных функций iOS SDK является Single-Sign-On
(ССО). Единый вход позволяет пользователям входить в ваше приложение через Facebook
идентичность. Если они уже вошли в приложение Facebook iOS на
на их устройстве им даже не нужно вводить имя пользователя и пароль.
Кроме того, потому что они подписываются на ваше приложение со своим Facebook
личность, вы можете получить разрешение от пользователя на доступ к их
информация профиля и социальный график.
Единый вход в основном работает, перенаправляя пользователя на приложение Facebook на ней
устройство. Поскольку пользователь уже вошел в Facebook, он не будет
необходимо ввести свое имя пользователя и пароль, чтобы идентифицировать себя. Oни
увидит диалог авторизации с разрешениями, которые запрашивает ваше приложение
для и если они позволяют, то они будут перенаправлены в ваше приложение с
соответствующий токен доступа.
Разработчики должны знать, что единый вход в Facebook будет вести себя немного
отличается в зависимости от того, что установлено на устройстве пользователя. Это
что происходит в определенных конфигурациях:
Если приложение работает в версии iOS, которая поддерживает многозадачность,
и если на устройстве установлено приложение Facebook версии 3.2.3 или выше
установлен, SDK пытается открыть диалоговое окно авторизации в
приложение Facebook. После того, как пользователь предоставит или отклонит авторизацию,
приложение Facebook перенаправляет обратно в приложение вызова, передавая
токен авторизации, срок действия и любые другие параметры фейсбука
OAuth-сервер может вернуться.
Если устройство работает в версии iOS, которая поддерживает
многозадачность, но у нее нет приложения Facebook версии 3.2.3 или
Чем больше установлено, SDK откроет диалоговое окно авторизации в
Сафари. После того, как пользователь предоставит или отменит авторизацию, Safari
перенаправляет обратно в вызывающее приложение. Похоже на приложение для Facebook
авторизация, это позволяет нескольким приложениям использовать один и тот же Facebook
пользователь access_token через cookie-файл Safari.
Если приложение работает под управлением версии iOS, которая не поддерживает
многозадачность, SDK использует старый механизм всплывающей строки
UIWebView, предлагая пользователю войти в систему и предоставить доступ.
FBSessionDelegate - это интерфейс обратного вызова, который ваше приложение должно
реализовать: методы делегата будут вызваны, когда приложение
успешный вход или выход. Прочитайте документацию по iOS SDK для
подробнее об этом делегате.
...
Когда пользователь хочет прекратить использование интеграции Facebook с вашим приложением,
Вы можете вызвать метод выхода из системы, чтобы очистить состояние приложения и сделать
запрос сервера на аннулирование текущего access_token.
[выход из Facebook: сам]; Вы можете реализовать метод fbDidLogout
протокол FBSessionDelegate для обработки любых действий после выхода из системы
хочу взять.
Обратите внимание, что выход из системы не отменит разрешения вашего приложения,
но просто очистит access_token вашего приложения. Если пользователь, который
ранее вышли из вашего приложения, они просто увидят
уведомление о том, что они входят в ваше приложение, а не уведомление
предоставить разрешения. Чтобы изменить или отозвать приложение
разрешения, пользователь может посетить «Приложения, Игры и
Веб-сайты "на их панели настроек конфиденциальности Facebook. Вы можете
также программно аннулировать разрешения приложения, используя Graph API
звоните.
Надеюсь, это поможет, дайте мне знать, если найдете что-то другое.