Facebook iOS SDK и iOS6

В настоящее время я пытаюсь использовать официальный пакет Facebook SDK в его версии 3.14.1 (также пробовал 3,9, тот же результат), но я наткнулся на проблему.

Вот мой код:

self->_session = [[FBSession alloc] initWithAppID:[[self class] facebookAppId]
                                      permissions:self.mandatoryPermissions
                                  urlSchemeSuffix:nil
                               tokenCacheStrategy:[FBSessionTokenCachingStrategy defaultInstance]];


[self->_session openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView
               completionHandler:^(FBSession *session,
                                       FBSessionState state,
                                       NSError *error)
{
    [self sessionStateChanged:session
                        state:state
                        error:error];
}];

Это сильно вдохновлено примерами кода, предоставленными facebook: https://developers.facebook.com/docs/facebook-login/ios/v2.0 # Шаг 1b: откройте сеанс, используя пользовательский класс

Вот проблема:

dyld: lazy symbol binding failed: Symbol not found: _OSAtomicDecrement32
  Referenced from: /var/mobile/Applications/01DD5CE2-39A9-40AE-A8FC-170F7387D434/Dubb.app/Dubb
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _OSAtomicDecrement32
  Referenced from: /var/mobile/Applications/01DD5CE2-39A9-40AE-A8FC-170F7387D434/Dubb.app/Dubb
  Expected in: /usr/lib/libSystem.B.dylib

Посмотрев на их SDK-код, я не вижу резервные копии для OSAtomicDecrement32, если он не существует, и на самом деле он существует с iOS 7.1.

Любые советы?

Спасибо

Ответ 1

Я действительно понял, что произошло здесь, после того, как на iOS7.0 появилась такая же проблема.

Вызов OSAtomicIncrement32 определяется как его собственная функция на iOS >= 7.1, но он также определяется как встроенный вызов других функций для iOS < 7.1.

Правильное определение используется в зависимости от цели развертывания min, которая для меня была установлена ​​на "7.1" в моем подкоде. Измените его на:

platform :ios, '7.0'

исправлена ​​проблема!

Ответ 2

Я удалил, а затем снова установил свои контейнеры.

Затем мне пришлось изменить одно выражение #import:

#import <FacebookSDK/Facebook.h>

к

#import <FacebookSDK/FacebookSDK.h>

Восстановлено все, и это сработало.