Вы можете использовать один и тот же ID Facebook в нескольких приложениях для iOS, например в бесплатной и платной версиях своего приложения.
Определите параметр суффикса схемы URL «FacebookUrlSchemeSuffix» в файле .plist своего приложения.
Примечание. В суффиксе могут использоваться только буквы.
В архиве SDK есть файл «FacebookSDKStrings.bundle», в котором содержатся строки для ресурсов SDK. Включите пакет в свое приложение и активируйте базовую интернационализацию (см. документацию Apple).
Это можно сделать на странице Файлы для скачивания.
Нативный диалог «Поделиться» является частью приложения Facebook для iOS, поэтому его нельзя запустить в эмуляторе. Чтобы протестировать его, используйте физическое устройство. Мы ищем способы, как сделать возможным тестирование этого диалога в эмуляторе.
Вверху каждого файла, где вы хотите использовать классы Facebook SDK, должны быть указаны корректные инструкции импорта. Например:
#import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #import <FBSDKLoginKit/FBSDKLoginKit.h>
При использовании фреймворков в Objective-C классы, которые используют категории для расширения существующих классов, не загружаются автоматически.
Когда вы пытаетесь вызвать метод, который был расширен в этих классах, вы получаете ошибку «unrecognized selector sent to instance» (в экземпляр отправлен неопределяемый селектор). Классы, которые используются из сборщика интерфейсов Xcode, также не загружаются автоматически, например при добавлении «FBSDKLoginButton» в интерфейс с помощью представления в вашем файле .xib и настройки его как «FBSDKLoginButton» из UI сборщика интерфейсов. Если вы попытаетесь вызвать методы для них, вы получите ошибку «unrecognized selector sent to instance» (в экземпляр отправлен неопределяемый селектор). Есть два способа решения этой проблемы.
Вы можете загрузить класс вручную в делегате «application:didFinishLaunchingWithOptions:». Для этого вызовите:
[FBSDKLoginButton class];
Или можно добавить флажок линкера «-ObjC». Этот флажок дает указание линкеру загрузить в SDK все объектные файлы, которые определяют класс или категорию Objective-C. При таком подходе все наши классы будут работать со стандартными настройками, но из-за этого увеличится объем исполняемого файла (поскольку в приложение загружается дополнительный объектный код).
Чтобы добавить флажок «-ObjC», нажмите цель проекта и выберите вкладку «Build Settings» (Настройки сборки). В этой вкладке под пунктом «Linking» (Связь) дважды нажмите «Other Linker Flags» (Другие флажки линкера), чтобы добавить -ObjC
.
«FBSDKRequestConnection» использует «NSURLConnection», что требует активного RunLoop. Если вы используете его вне основного потока, то управление им — ваша задача.
Либо вы можете настроить свойство «delegateQueue» в «FBSDKRequestConnection».
Ошибки конфигурации в файле .plist не редкость. Убедитесь, что файл .plist включает строки для «FacebookAppID» и «`FacebookDisplayName»,а также тип URL для «fb{app-id}».
Если вы получаете неожиданные результаты при отправке запросов API Graph, включите режим отладки. Для этого перед каждым запросом добавьте следующий код:
[FBSettings setLoggingBehavior: [NSSet setWithObject:FBSDKLoggingBehaviorGraphAPIDebugInfo]];
Если вы хотите блокировать информационные сообщения и оставить только предупреждения, используйте поведение «FBSDKLoggingBehaviorGraphAPIDebugWarning».
При включении этого поведения регистрации во все запросы API Graph будет добавлен параметр «debug», а все возникающие проблемы будут отображаться в консоли.
Подробнее о режиме отладки API Graph см. здесь.
SDK сообщает об отмене, если пользователь явно нажимает кнопку «Отмена» в диалоге «Вход» или если он вручную переключается обратно на ваше приложение (так называемая неявная отмена). Не следует включать процесс входа в жизненный цикл делегата приложения (например, запускать процесс входа в «application:openURL:sourceApplication:annotation:»), поскольку это будет имитировать неявную отмену. При необходимости запустите процесс входа позже в основной очереди, чтобы жизненный цикл делегата приложения успел завершиться до этого.
Диалог «Поделиться» оповещает методы «sharer:didCompleteWithResults:» и «sharerDidCancel:», когда пользователь совершает действие.
Если вы получаете неожиданные результаты при совершении запросов, включите режим отладки для «FBSDKGraphRequests». Перед каждым запросом добавьте следующий код:
[FBSDKSettings enableLoggingBehavior:FBSDKLoggingBehaviorNetworkRequests];
Вы сможете исправить любые ошибки, сравнив запросы и отклики серверов.
Проанализируйте другие константы «FBSDKLoggingBehavior*», определенные в «FBSDKSettings.h» для других действий, которые вы регистрируете.