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>
Восстановлено все, и это сработало.